Keywords: Animation, Maya, Rigging, IK FK Switch

Maya Rigging series of articles:

Control’s switch to IK and FK joints

Take left arm joints as an example.

1, Duplicate the skeleton for IK and FK using.

Make sure the distance between original skeleton and replicas are equal, because we will using position offset which was required same distance for IK and FK afterward.

2, Cull the unused joints for IK and FK, and create Control for rigging.

Make sure the transformation of group has been zeroed and normalized, otherwise it will lead to deforming issue in the subsequent flow.

3, Create an empty group, and match the transformation of group to the Control.

4, Optimize the transformation of the group. (See: Offset Parent Matrix)

Why we don’t zero and normalize (Freeze Transfromations) the group grp_arm_l instead of Offset Parent Matrix?
Because we need to utilize the transformation of group grp_arm_l to drive joints, this requires that the transformation of joint and controller are equal.

5, Drive the Offset Parent Matrix from Control in the Node Editor.

After the connection has been done, you will see the Offset Parent Matrix has been flag with yellow color.

6, Move the joints of IK and FK into the group.

Now you can drive the IK and FK using Control.

7, Create attribute on Control, this attribute is the switch to swap IK and FK.

8, Create Parent Constraint to IK FK joint and source joint.

Caution: Uncheck the Maintain offset before applying.
If there are multiple node need to be as child in another node simultaneously, the transformation (position and rotation ) of parent node was calculated from transformation averages of child node by default.
But in current scenario, we don’t expect that parent’s (original joints) position was effected by the position IK and FK joints, and we want to maintain the position of parent by self, this is why need to keep the same distance between IK FK joints and original skeleton that mentioned above.

Then you will see two switches which were used to enable or disable Offset Matrix have been created on Constraint. They’re the final switch to IK and FK afterward.

We can test the switch for IK and FK.

9, Continue to setup the Constraints for the rest of joint for left arm.

The all constraints of left arm.

10, Tweak the switch on constraint directly isn’t intuitive to animator, so we need to provide an visible switch.
Open Node Editor, and add nodes for constraints.

Then connect IK_FK_Switch to all the FK switches.

Then hit Tab to open command line, and create a reverse node.

Then connect the IK_FK_Switch to all the IK switches, pass through reverse node.

Finally we can switch IK and FK using the attribute of arm Control.

11, Create two curve controls to visual tips. (How to create letter curve, see: Type Curves)

Drive the attribute for visibility.

Fantastic! the switch worked as expected.

12, We can change the display color of IK and FK joints to distinguish them.

13, At last, restore the position of IK FK joints to original skeleton.

14, Setup the hierarchy for other limbs: right arm, left leg and right leg.

We can setup the IK FK system for left arm and legs in the same way.

References

Realtime Creature Rigging Workshop (9 / 19) : Control joints
https://www.youtube.com/watch?v=-3OE_uI24qs


紫光阁名录:瓜尔佳·富德
富德(1695年—1776年),清朝瓜尔佳氏,驻防吉林,满洲正黄旗人,军机大臣。
乾隆初年,由护军升为三等侍卫,乾隆十三年(1748年),随大学士傅恒征讨大金川,官至副都统。乾隆二十年(1755年),征准噶尔,为正黄旗蒙古都统。乾隆二十四年(1759年),随兆惠征大小和卓,兵至巴达克山,因功进封一等清远成勇侯,官至御前大臣。乾隆二十五年(1760年)二月,富德入直军机处。二十七年(1762年)九月富德革。因为索贿和用人不当,两次下狱。乾隆三十八年(1773年)随军征讨小金川。乾隆四十年(1775年),金川平定,因为滥赏贪污,押送京师杀害。