[Maya]Rigging 08 - IK FK Switch
Keywords: Animation, Maya, Rigging, IK FK Switch
Maya Rigging series of articles:
- [Maya]Rigging Overview
- [Maya]Rigging 01 - Joint
- [Maya]Rigging 02 - Skinning
- [Maya]Rigging 03 - Visualization
- [Maya]Rigging 04 - Controller
- [Maya]Rigging 05 - Attributes
- [Maya]Rigging 06 - Foundations of IK
- [Maya]Rigging 07 - IK for Leg
- [Maya]Rigging 08 - IK FK Switch
- [Maya]Rigging 09 - IK FK Blending (WIP)
- [Maya]Rigging 10 - Keyframe (WIP)
- [Maya]Rigging 11 - Common Tricks (WIP)
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.
3, Create an empty group, and match the transformation of group to the Control.
4, Clean the transformation of the group. (See: Offset Parent Matrix)
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.
References
Realtime Creature Rigging Workshop (9 / 19) : Control joints
https://www.youtube.com/watch?v=-3OE_uI24qs
中国古代战争史:巨鹿之战
巨鹿之战(或作钜鹿之战)是秦末民变中,项羽率领五万楚军(后期各诸侯军也参战),与秦将章邯、王离所率四十万秦军主力在巨鹿郡(今河北省邢台市巨鹿县)之一场重大决战。在各诸侯军畏缩不进时,项羽破釜沉舟,率先猛攻秦军粮道,带动诸侯军一起最终全歼王离军,并于八个月后,迫使章邯所部之二十万秦军投降。经此一役,秦朝灭亡在即,项羽确立在各路义军中之领袖地位。