Inverse Kinematic Systems
by Brian Immel
Inverse Kinematic Systems |
Inverse Kinematic Systems
IK (Inverse Kinematics) are used to control a series of FK joints via a end effect handle. By default, there are three types of IK: IK RP solver, IK SC solver, and IK Spline Handle. IK Ideally, you want to use RP solvers to handle joint chains such as arms and legs when you want these FK chains to stay put.
Why would you want to keep a skeleton chain to stay put? Making a skeleton system that keeps the ends of a skeleton system on the ground while performing functions such as walk cycles. If you don’t use an IK on a FK chain that is being used for a leg system is that, your character will look like he’s skating all the time instead of keeping his feet planted firmly.
How to Set up IKs
1. Start/end locations
- Activate the IK tool and select the first joint you wish to include in the chain of influence.
- Click on the last joint you want to include in the IK chain. Maya will create the IK handle at the location of the last selected joint.
- If you do not have a slight bend in the FK joints, this will cause the IK solver not to function properly. Before you start building an IK chain, you should bend at least one joint in the opposite direction you want the IK to bend the FK chain.
2. IK handles
- To move the IK chain of influence, select the IK handle and translate it. The IK handle tells all the FKs within the selected chain to rotate according the translation.
3. Before you start clicking away on making your IK setup, make sure you enable the attribute called Sticky. This attribute will make the IK chain stick to its current position and orientation. For whatever reason, this attribute is off by default.
Just to keep things organized when naming an IK chain, I use
a suffix of _IK. Example: Ankle_IK, Elbow_IK.
Example of Use #1: Legs
Use IK setups to keep legs in place (on the ground), to manage walk, jog, and run cycles better than FK systems alone.
Example of Use #2: Arms
Use IK setups to place the arm according to one (or more) control(s) rather than painstaking laboring over rotating each joint to place the arm in one pose.
Controlling IKs
IKs rotate the FK joints they are controlling. IKs are typically
controlled by translating the handles in world space. However, IK handles
cannot rotate. For this reason, you may need to set up a control object
to give the IK systems the ability to rotate.
Setting up Control Objects for IKs
If you try rotating an IK handle, you will notice that it has no effect on the FK chain that it is suppose to be influencing. To make the IK handle rotate, you will need to parent the IK handle to a control object (something like an NURBS curves). From now on, only select the control object to move the entire FK/IK chain. You may want to turn off the visibility of the IK handle so that you don’t accidentally select it and move it out of the control object.
Legs
1. For a more in depth process of creating IKs for legs, please review the tutorials on Immel’s website called Generic IK Leg Setup and Foot Rolls.
2. Activate the IK tool and start with the Hip joint. Click on the Ankle Joint. Name this IK Ankle_IK.
3. Re-activate the IK tool and start on the Ankle joint. Click the Ball joint. Name this IK Ball IK.
4. Re-activate the IK tool one last time and start on the Toe joint. Click on the Ball joint. Name this IK Toe IK.
5. Parent the Toe IK to the Ball IK.
6. Parent the Ankle IK to the Ball IK.
7. Create a control object out of a NURBS curve and snap-move it to the center of the foot (usually centered around the ball joint).
8. Parent the Ball IK to the foot control object. By parenting all these IKs to a control object, you give the IK chain the ability to move as one unit, rotate the entire IK chain and maintain the individual ability to move each IK within this leg hierarchy.
9. Repeat this process for the other leg. Don’t forget to use the proper suffix for naming the IKs and control objects (_R and _L).
Arms
1. For a more in depth process of creating IKs for arms, please review the tutorials on Immel’s website called Generic IK Arm Setup.
2. Activate the IK tool and start on the Shoulder joint.
3. End the IK on the Wrist joint.
4. Name this IK Arm_IK.
5. Create another IK from the Palm joint to the Wrist joint.
6. Name this IK Wrist_IK.
7. Parent the Wrist_IK to the Arm_IK. You want to do this because when you move the Arm_IK, it move the Wrist_IK with it in controlled and predictable fashion. Otherwise, the Wrist_IK will stay behind and stretch and pull your geometry.