Setting Up Inverse Kinematics
3 of 5

With the bones in place and Joint Compensation set, we're ready to set up the Inverse Kinematics (IK) chain. This will include setting the limits of rotation for the bones and setting the IK goals.


Setting IK Rotation Limits

First we'll set the rotation limits for each bone. This will help keep the knees and ankles from hyper-extending. It also makes it easier for LightWave to calculate the skeleton's motion by reducing the number of possible IK solutions.

Setting bone rotation limits consists of entering two values, a minimum limit and a maximum limit. This can either be done interactively in Layout using the keyboard shortcuts, or if the exact values are known, in the IK panel.


  1. Check that the mouse function is Rotate and that the Heading constraint is deselected.

    Select Bone (1) as the Current Item and rotate it backwards to a pitch of 55 degrees. Now press the { key (Shift + [).

    This sets the minimum pitch rotation limit to 55 degrees. Now the leg won't rotate further backwards than 55 degrees.

    Mouse Function

    Bone Rotation

    Leg rotated to minimum limit.


  2. Now rotate Bone (1) forward to a pitch of 185 degrees and press the } key (Shift + ]).

    This sets the maximum pitch rotation limit to 185 degrees.

    Bone Rotation

    Leg rotated to maximum limit.

    Now the leg won't rotate outside the limits we've set and will be much more manageable when working with IK.

    To reset the bone back to its normal position, press Shift + Right Arrow or select Reset from the layout controls.


  3. To check the results of steps 1 and 2, open the Inverse Kinematics panel by pressing the i key.

    Make sure the values match those we entered above. If you made a mistake or knew the values you wanted beforehand, you could have gone directly to the panel and entered them.

    Notice that the limits weren't set for Heading. When you set IK limits with the keyboard shortcuts, only those rotation axes with their constraints selected have their limits set. This won't be a problem for the animation as long as we leave the Heading constraint deselected for the bone.


  4. Set the rotation limits for the other bones using the values in the table below or use ones that seem most natural to you. These can be set interactively using the keyboard shortcuts or entered in the IK panels for each bone.

    Inverse Kinematics Limits for Bone Rotation
    Minimum Pitch Limit Maximum Pitch Limit
    Bone (2): -120 degrees -5 degrees
    Bone (3): 25 degrees 120 degrees
    Bone (4): 0 degrees 0 degrees

Setting IK Goals
  1. To make the leg move, we have to set up at least one IK goal. In LightWave these IK goals can be any object, but to make things easier we'll use Null Objects.

    Open the Objects panel and click Add Null Object. This creates the Null object we'll use as the goal for the IK chain.

    Go back to Layout and make Bone (4) the Selected Item. You may have difficulty doing this because when we added the Null object, it became the Selected Item and it has no bones. To fix this, make Objects the Edit item, then change the Selected Item from Null to legRough.lwo. Now make Bones the Edit item and choose Bone (4) for the Selected Item.


  2. When Bone (4) is selected, open the IK panel by pressing the i key. From the Goal Object pop-up menu select Null as the Goal Object. Leave the Goal Strength at 1, and select Full-time IK.

    By setting the Null object as the goal, we have told Bone (4) to reach out and try to "touch" or attain the goal's position. In doing this, it will cause the entire leg to rotate with the goal.

    When you close the IK panel, you should see the leg rotate into position to reach the goal.

    Leg object reaching for goal.

    The reason we chose Bone (4) rather than Bone (3) (the foot bone) has to do with the way IK works. Inverse Kinematics only forces the position of the last member of the chain towards the goal; it doesn't change the rotation of the last item in the chain. We added the null bone to give us an extra item to point at the goal. That way, we can rotate the bone we want to have rotate. In this case, Bone (3) the foot bone.


  3. Select the Null object and begin moving it around; the leg will move with it. Now move the leg instead; the leg will reach out and point at the null.

    You may notice that leg is a bit jumpy in some positions. This happens because there are a number of different solutions for the leg to reach the position of the goal. There are a couple of ways to solve this. If the bones did not have Rotation Limits set, this would be one place to check. We have already done this, so let's move on to the next solution. Multiple goals!


  4. Go to the Object Panel and add a second null object. The null object will be called Null (2). This Null can be used as a goal for two key areas along the leg: the knee joint or the ankle joint. We'll use it in this tutorial for the ankle joint. When you're done with the tutorial, you may want to try using the second goal on the knee.


  5. Select Bone (3), open the IK panel and select Null (2) as the goal object. Be sure to turn on Full-time IK.


  6. Select Null (2) and Move it around. We can see that Null (2) now controls the leg and the foot continues to point at Null (1).

    In using this set-up, Null (2) now becomes the main goal of the leg while Null (1) can be used as a fine tune control over the foot.

    Controlling the leg with Null (2).


  7. If you were going to make this leg walk, you wouldn't want to have to keep moving Null (1) to keep it up with the rest of the leg. To keep from having to do this, parent Null (1) to Null (2).

    To parent Null (1) to Null (2), make Null (1) the Selected Item and then click the Parent button. From the Parent requester, choose Null (2) on the pop-up menu.

    You should see Null (1) move to the position of Null (2).


  8. Move Null (1) out just beyond the end of the foot to about -3.2 in the Z axis and create a keyframe at frame 0.

    Before Moving Null (1)
    After Moving Null (1)

    Select Null (2) again and move it around. You can see that by parenting the two nulls together we have the added benefit of keeping the foot level. Try Moving the Leg object around, it will also react appropriately to the goals.


With the IK rotation limits and the IK goals set for the bones, we're done setting up the Inverse Kinematics chain. Now we can animate the leg.


Add the Skeleton Animate the Leg
This page copyright © 1996 NewTek Inc. All rights reserved.