localplayer.holdout_time -= vg.time_frame_delta * 2.0f;
}
- v3_fill( pose->keyframes[ localplayer.id_eyes-1 ].co, sinf(vg.time) );
+ static float blinkt = 1.0f,
+ blinkl = 0.0f;
+
+ if( blinkt < 0.0f ){
+ blinkt = (1.0f-powf(vg_randf64(),4.0f))*4.0f;
+ blinkl = 0.08f;
+ }
+
+ pose->keyframes[ localplayer.id_eyes-1 ].s[1] = blinkl > 0.0f? 0.2f: 1.0f;
+
+ blinkt -= vg.time_delta;
+ blinkl -= vg.time_delta;
apply_full_skeleton_pose( sk, &localplayer.pose, localplayer.final_mtx );
skeleton_debug( sk, localplayer.final_mtx );
v3f *posemtx = final_mtx[i];
q_m3x3( kf->q, posemtx );
+ m3x3_scale( posemtx, kf->s );
v3_copy( kf->co, posemtx[3] );
}
return;
/* pose matrix */
mdl_keyframe *kf = &pose[i-1];
q_m3x3( kf->q, posemtx );
+ m3x3_scale( posemtx, kf->s );
v3_copy( kf->co, posemtx[3] );
v3_add( temp_delta, posemtx[3], posemtx[3] );