+ {
+ mdl_keyframe
+ *kf_head = &dest->pose[av->id_head-1],
+ *kf_elbow_l = &dest->pose[av->id_ik_elbow_l-1],
+ *kf_elbow_r = &dest->pose[av->id_ik_elbow_r-1],
+ *kf_hand_l = &dest->pose[av->id_ik_hand_l-1],
+ *kf_hand_r = &dest->pose[av->id_ik_hand_r-1];
+
+ float warble = perlin1d( vg.time, 2.0f, 2, 300 );
+ warble *= vg_maxf(s->blend_grind,fabsf(s->blend_weight)) * 0.3f;
+
+ v4f qrot;
+ q_axis_angle( qrot, (v3f){0.8f,0.7f,0.6f}, warble );
+
+ v3f origin = {0.0f,0.2f,0.0f};
+ keyframe_rotate_around( kf_hand_l, origin,
+ av->sk.bones[av->id_ik_hand_l].co, qrot );
+ keyframe_rotate_around( kf_hand_r, origin,
+ av->sk.bones[av->id_ik_hand_r].co, qrot );
+ keyframe_rotate_around( kf_hip, origin,
+ av->sk.bones[av->id_hip].co, qrot );
+ keyframe_rotate_around( kf_elbow_r, origin,
+ av->sk.bones[av->id_ik_elbow_r].co, qrot );
+ keyframe_rotate_around( kf_elbow_l, origin,
+ av->sk.bones[av->id_ik_elbow_l].co, qrot );
+
+ q_inv( qrot, qrot );
+ q_mul( qrot, kf_head->q, kf_head->q );
+ q_normalize( kf_head->q );
+ }
+