Keywords: Animation, Maya Rigging, Controller, Pole Vector, Space Swapping, IK Controller

Maya Rigging series of articles:

Space Swapping - Pole Vector Controller

1, Create a locator named swappos_arm_ik_l.

2, Match Transformations from swappos_arm_ik_l to the Pole Vector controller (ctrl_arm_pv_l).

3, Parent locator swappos_arm_ik_l to the arm IK controller (ctrl_arm_ik_l).

Now ctrl_arm_pv_l moved follow with IK controller.

4, Don’t forget optimize the Offset Parent Matrix of swappos_arm_ik_l.

5, Build the driven process for ctrl_arm_pv_l.
the blendMatrix isn’t the required node in current step, we will use this node later.

6, When rotate the root controller, the ctrl_arm_pv_l moved to the wrong position.

Solution:
Blend the root controller transformation using multMatrix node.
Result:

7, Create attribute named Follow in ctrl_arm_pv_l.

8, Build the driven process for the switch Follow.

9, When switch to the World Space, the ctrl_arm_pv_l moved to the wrong position.

This is because the input argument Input Matrix of blendMatrix node wasn’t initialized.
We need to pass the transformation of swappos_arm_ik_l into Input Matrix of blendMatrix node.
Solution: Connect swappos_arm_ik_l to the blendMatrix node, then disconnect it, then the transfromation of swappos_arm_ik_l was remained in.
Now the switch Follow works right.

Space Swapping - Hand IK Controller

1, Create a switch named Follow in hand IK controller ctrl_arm_ik_l.

2, Create 3 locators: swappos_torso_l, swappos_hip_l and swappos_clavicle_l.

3, Match Transformations from these 3 locators to the ctrl_arm_ik_l.

4, Parent these 3 locators to ctrl_torso, ctrl_hip_ik and ctrl_arm_root_l. (hotkey: P).

5, Build the driven process.
Connect ctrl_arm_ik_l to the blendMatrix node, then disconnect it to remain transformation value into the blendMatrix node.

Then connnect swappos_torso_l, swappos_hip_l and swappos_clavicle_l to the blendMatrix node.
Then Add floatCondition nodes as switch for different enum (space types).
Set the Input 2D[1] as -1, -2 and -3, because the enum values of switch Follow is 0(World), 1(Torso), 2(Hip), 3(Clavicle).
Set the Float A as 0, and set Float B as 1.
At last, connect Output Matrix of blendMatrix node to the Offset Parent Matrix of ctrl_arm_ik_l.
Result:

Build the drive process for legs likes above.

References

Realtime Creature Rigging Workshop (14 / 19) : Space swapping
https://www.youtube.com/watch?v=CTvZntXh7Bs


战国战争史:韩灭郑之战
韩灭郑之战,是公元前423年至前375年间韩国为了灭亡郑国而进行的多场战役的总称。 韩灭郑之战是战国时期一次重大的兼并战争,韩国通过多次进攻消灭了具有悠久历史的郑国,国力迅速上升,成为战国七雄之一。但当时韩国地处黄河中游地区,东部、北部被魏国包围、西有秦国、南有楚国,国土面积十分狭小,因而发展空间极其有限。