Generic IK Arms

by Brian Immel

In this tutorial, you will set up a very generic IK system for controlling an arm setup.

This tutorial assumes that the user has a basic understanding of IKs, how to use the Hypergraph, snapping, moving pivots, constraints, and parenting.

1. This setup works best if you have the following FK joint setup:

  1. Shoulder
  2. Elbow
  3. Forearm
  4. Wrist
  5. Palm

2. This setup uses two IKs. Place the first starting on the Shoulder joint and ending on the Wrist joint (Figure 2). Rename this IK to IK_shoulder. If the sticky option was not enabled when you created the IK, make sure it is enabled. We’ll need to have the sticky option enabled for the next IK as well.

3. The seconds IK starts on the Palm joint and ends on the Wrist joint (Figure 3). Rename this IK to IK_wrist.

4. Create a NURBS curve and snap-move it to rest over the Wrist joint. Name this curve Arm_Control. This control object should have all your hand controls and arm movement attributes (translate and rotate).

5. Select both IKs and parent them to the Arm_Control. Now the arm should follow the Arm_Control wherever you move and rotate it. However, you may notice that the elbow and forearm may act up a little. We’ll need to act a pole vector to the elbow and lock some of the attributes of the Forearm joint.

6. Select the Forearm joint and lock all the attributes except for the one that allows the forearm to orbit below the elbow. Figure 4 shows Rotate X is the only attribute allowed to change. Usually, the X axis points to the next joint and in this case, this is the attribute you want to use to orbit the forearm.

7. Next, lets create a control object to help manage the Elbow joint. Create a Locator and snap-move it to the Elbow joint. Now, move the locator back behind the Elbow joint. In Figure 5, I moved the locator 2.5 units behind the Elbow joint. Rename the locator to Elbow_vector.

8. Select Elbow_vector and shift-select the IK_shoulder. Go to Constrain > Pole Vector. Now we can translate the Elbow_vector to control the orientation and position of the Elbow joint. Depending on how you want to set up your animation motions, you can either parent the Elbow_vector to the Arm_Control or the root joint of your character rig.

9. Finally, we should hide the IKs so that we don’t accidentally keyframe them. Select both the IKs and set the visibility attribute to off.

 

Bye-bye!