xmoonproductions.org
https://www.xmoonproductions.org/

About script and animation
https://www.xmoonproductions.org/viewtopic.php?f=27&t=3559
Page 1 of 1

Author:  Croicroi [ Sun Dec 28, 2014 7:18 pm ]
Post subject:  About script and animation

First of all, sorry for my english

I wonder if it is possible to combined animation?

for example \init\std\base\char\brain\code\task\task_backass.dat

laying is
pose_type = BUTT_BACK0;

and the gesture is
SetGesture (BUTT_BACK0_LEG);

I would like combined with
SetGesture (HAND_BACK);

I see that it is possible to do so "task_blowjob.dat"
where the gesture is "SetGesture (STROKE), or SetGesture (SCARED);"
and the animation "I supose" does not apply to hand.

my first question is:
is it possible to dissect an animation by bia a parameter of collition
for example, eliminate the hand of annimation or legs ... just stating that the animation only affects the body
via:
move_type
int2_type
scoll_type
coll_type
ia_type
vwcoll_type


and my second question:
what is
loc.sm.layer = 3;
loc.sm.action = DOWIGGLE;
loc.sm.wig_speed = 0.25;
loc.sm.wig_max = 0.2;
SetMovieAction(loc.sm);

loc.sm2.layer = 3;
loc.sm2.action = NEXT;
loc.sm2.speed = 0.5;
SetMovieAction(loc.sm2);

the return is
[state.dyn.me.movie.event3 == WIGGLE1]
[state.dyn.me.movie.event3 == WIGGLE0]

for me it is the index put on animation
animation go pointer 0 to 1 and return to pointeur 0
i have nothing to read the animation file "*.bvh" and with hex texte edidor i found nothing interesting.
i am wrong? and where can i foud WIGGLE index

and my last question:
what do and what is the difference between
task_set_timer(0);
and
do_set_timer(0);
and why if i remove it it's won't work?

i have cup all i can on task_backass.dat
it is a simple animation with:
[MOVE] // for init
[PUSH_IN]
[PULL_OUT]


if you copy past the folow exemple in
\init\std\base\char\brain\code\task\task_backass.dat
Don't forgot backup
and change "SetGesture(BUTT_BACK0_LEG);"
with another gesture foud in init\std\base\char\char_base.dat
exemple "SetGesture(SQUAT_LEG);"
you can see the animation ingame when you start backass job.

    //-------------------------------------------

    <start_task_backass>

    [state.dyn.me.do.task == BACKASS] return;

    // Set task
    state.dyn.me.do.task = BACKASS;

    // Start start state
    set_task_backass_state(MOVE);

    // Init counters
    state.dyn.me.task.backass.speed_count = 0;

    </start_task_backass>

    //-------------------------------------------

    <stop_task_backass>

    [state.dyn.me.do.task != BACKASS] return;

    // Reset gesture
    SetGesture(NONE);

    // Reset task
    state.dyn.me.do.task = NONE;

    </stop_task_backass>

    //-------------------------------------------

    <task_backass_talk>

    // Talk
    talk.s = par;

    </task_backass_talk>

    //-------------------------------------------

    <init_task_backass>

    // We should be in backass task
    [state.dyn.me.do.task != BACKASS] Error("Should be in backass task");

    // Derive state
    case (state.dyn.me.task.backass.state)
    {
    [MOVE]
    [PUSH_IN]
    [PULL_OUT]

    state.dyn.me.task.backass.state = MOVE;

    }

    // Init state
    set_task_backass_state(state.dyn.me.task.backass.state);

    </init_task_backass>

    //-------------------------------------------

    <init_task_backass_state>

    // Set next state
    set_task_backass_state(MOVE);

    </init_task_backass_state>

    //-------------------------------------------

    <set_task_backass_state>

    // Set state
    state.dyn.me.task.backass.state = par;

    // Init task data
    state.dyn.me.task.ts = null;

    </set_task_backass_state>

    //-------------------------------------------

    <run_task_backass>

    case (state.dyn.me.task.backass.state)
    {


    [MOVE]
    {
    // if i remove "task_set_timer(0);" won't work ?
    task_set_timer(0);
    loc.speed = 1.1;

    state.dyn.me.task.backass.speed = loc.speed;
    loc.ts = GetTs();
    [loc.ts >= state.dyn.me.task.ts]
    {
    state.dyn.me.movie.event3 = null;

    SetGesture(BUTT_BACK0_LEG);

    // Stop at markers
    loc.sm.layer = 3;
    loc.sm.action = DOWIGGLE;
    loc.sm.wig_speed = 0.6;
    loc.sm.wig_max = 0.6;
    SetMovieAction(loc.sm);

    // We are at marker0
    // Goto marker1
    loc.sm2.layer = 3;
    loc.sm2.action = NEXT;
    loc.sm2.speed = 0.6;
    SetMovieAction(loc.sm2);

    state.dyn.me.task.backass.state = PUSH_IN;
    }
    }
    [PUSH_IN]
    {
    // If pushed in
    [state.dyn.me.movie.event3 == WIGGLE1]
    {
    // Pull back
    loc.sm2.layer = 3;
    loc.sm2.action = NEXT;
    loc.sm2.speed = state.dyn.me.task.backass.speed;
    SetMovieAction(loc.sm2);

    state.dyn.me.movie.event3 = null;

    state.dyn.me.task.backass.state = PULL_OUT;
    }
    }
    [PULL_OUT]
    {
    // If pulled out
    [state.dyn.me.movie.event3 == WIGGLE0]
    {
    state.dyn.me.task.backass.state = PULL_OUT;
    loc.ts = GetTs();
    [loc.ts < state.dyn.me.task.ts] return;
    // Push in
    loc.sm2.layer = 3;
    loc.sm2.action = NEXT;
    loc.sm2.speed = state.dyn.me.task.backass.speed;
    SetMovieAction(loc.sm2);

    // Increase speed
    //state.dyn.me.task.backass.speed += 0.1;

    state.dyn.me.movie.event3 = null;

    state.dyn.me.task.backass.state = PUSH_IN;
    }
    }
    }
    </run_task_backass>

    //-------------------------------------------


thank you for answering

Page 1 of 1 All times are UTC
Powered by phpBB® Forum Software © phpBB Group
http://www.phpbb.com/