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 backupand 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