Keywords: Animation, Maya Rigging, Spine IK system, Spine FK system

Maya Rigging series of articles:

Neck Control and Head Control

1, Create controllers for neck and head: ctrl_neck, ctrl_head.

2, But you will notice an issue: the pivot orientation of ctrl_neck and neck FK joint(also included neck IK joint) isn’t match.

3, Match Pivots for neck controller and neck joints.

The reason for keeping the pivot orientation of the Neck Controller and the Neck Joint matching is because we will be driving the Neck Joint using Neck Controller later in the subsequent flow.

Now the pivot orientation of Neck Controller is matched to Neck Joint.

4, Match Pivots for Head Controller and Head Joints in the same way.

5, Don’t forget to optimize the Offet Parent Matrix. (for more details, see: Transform Offset Method 2nd: Offset Parent Matrix)

6, Create constraint for neck controller: Select spine tail controller and shoulder controller first, then select neck controller, then Parent Constraint.

Result:

7, Now the neck controller will follow with spine controller. But you may notice that the rotation weight of neck controller isn’t 100% (equals 1).

Because there’re two switch in the neck constraint, so we can modify the constraint value to switch weight.
Setup the driven process for neck constraints in Node Editor.
We can also check the neck constraint effect in spine IK system.

8, Now will setup rotation for the neck controller.
As the following image show: rotate neck controller doesn’t work.

This is because the translation and rotation was driven by constranint (from shoulder IK controller and spine tail FK controller).
Now we will use neck controller to drive neck IK joint and neck FK joint.
Before do that make sure the Offset Parent Matrix of neck joint (IK and FK) was optimized.
The driven process from neck controller to neck joints:
Result:

9, Now we will set up the driven process for head controller.
Select neck controller first, then select head controller, build contstraint without rotation.

Result:

10, From this step, we will setup local space and world space swith for head joint.

Add a Locator first, modify name and shape scaling for better visualization.

11, Place the locator into rig_systems group, just for better look on hierarchy, it doesn’t affect the result.

12, Select locator first and select neck controller fist, then select head controller, Parent Constraint without translation.

Result:

13, Select head controller first, then select head joint of original skeleton, then Parent Constraint.

If disable constraint of neck controller, and enable constraint of locator (World Space), the head controller will keep orientation to WorldSpace Locator.

14, Add an attribute named Orient Neck as a switch.

Set up the driven process for Orient Neck switch.
Finally we can switch World Space and Local Space for the head orientation while rotating spine.

Head Control
References

Realtime Creature Rigging Workshop (11 / 19) : Neck, head, and eyes
https://www.youtube.com/watch?v=3TVuA_mBomk


中国古代战争史:巨鹿之战
巨鹿之战(或作钜鹿之战)是秦末民变中,项羽率领五万楚军(后期各诸侯军也参战),与秦将章邯、王离所率四十万秦军主力在巨鹿郡(今河北省邢台市巨鹿县)之一场重大决战。在各诸侯军畏缩不进时,项羽破釜沉舟,率先猛攻秦军粮道,带动诸侯军一起最终全歼王离军,并于八个月后,迫使章邯所部之二十万秦军投降。经此一役,秦朝灭亡在即,项羽确立在各路义军中之领袖地位。