- skeleton_sample_anim( sk, w->anim_walk, t*walk_norm, apose );
- skeleton_sample_anim( sk, w->anim_run, t*run_norm, bpose );
-
- skeleton_lerp_pose( sk, apose, bpose, l, apose );
+ if( animator->run <= k_walkspeed ){
+ /* walk / idle */
+ f32 l = vg_minf( 1, (animator->run/k_walkspeed)*6.0f );
+ skeleton_sample_anim( sk, w->anim_idle, vg.time*0.1f, apose );
+ skeleton_sample_anim( sk, w->anim_walk, t*walk_norm, bpose );
+ skeleton_lerp_pose( sk, apose, bpose, l, apose );
+ }
+ else {
+ /* walk / run */
+ f32 l = (animator->run-k_walkspeed) / (k_runspeed-k_walkspeed);
+ skeleton_sample_anim( sk, w->anim_walk, t*walk_norm, apose );
+ skeleton_sample_anim( sk, w->anim_run, t*run_norm, bpose );
+ skeleton_lerp_pose( sk, apose, bpose, l, apose );
+ }