Rigging for Forward Kinematics

From TOI-Pedia

Forward Kinematics is a way of animating in which you rotate the joints themselves one by one to create the desired movement. It moves the character from the top of the hierarchy down. So, for instance to get a character to walk, you separately animate the hip joint first which also causes all the joint underneath it in the hierarchy to move along, then you rotate the knee joint, the ankle joint etc to get the walking motion.


Important!! Check before you start rigging that:
  • the skeleton fits the character
  • the hierarchy of the skeleton is correct
  • the skeleton is placed at the origin of the scene
  • maybe most important, your joints are oriented correctly (skeleton > orient joint)


Forward Kinematics for a leg

Rotating joints

In Forward Kinematics the way to move your skeleton is by rotating the joints from the top of the hierarchy on. To move one of the legs you can use the rotate tool and select the hip joint and rotate it. Then select the knee joint and rotate it, then the ankle joint etc.


In this way you rotate the joints manually, and it can happen that the joints already have a rotation which they got from creating the skeleton, so if you want a joint to have a specific rotation you have to add or subtract that value to the angle the joint already had. This can cause you more work than necessary. It can be very convenient to create a curve which has the default 0 and 1 values to begin with to control the rotation of the joint, this will be easier to use when we start animating. We call this curve a FK control curve. We can do this manually as described in the section below 'Creating a FK control curve' for each joint separately, but we also have a MEL script that does the same thing automatically. How to use this script is described in the section 'Creating FK control curves by using a MEL script'.

Creating a FK control curve

First we'll create the curve. In this case we use the leg as example, so we want a control curve for the hip, the knee and the ankle. Because we only need to rotate the joint, a circle will be a convenient curve. We will create a nurbs circle in the origin which has its normal axis directed in the x direction (turn interactive placement off first) by going to create > nurbs primitives > optionbox. Choose for the normal axis X and press create:

Skeleton23.jpg

Then point snap the circle to the ankle joint. Now we have to give the circle the same orientation as the joint, so we first select the ankle joint, then with shift pressed the circle, and go to Constrain > Orient:

Skeleton24.jpg

We only used the orient constraint to get the circle at the right spot and rotation angle, so we can now delete the constraint by selecting it in the hypergraph and pressing delete.

Now if we select our circle, we can see that it still has the inconvenient values. To get these values to 0's and 1's we use a little trick. First we create an empty group (we call this a null group) by selecting nothing and pressing ctrl + G on our keyboard. We can see in our hypergraph that a group with the name 'null1' has been created. We point snap this group to the ankle joint as well and we also orient constrain it to the joint by again selecting the ankle joint, then with shift the null group and going to constrain > orient again:

Skeleton25.jpg

Again we only oriented the group to the joint to give it the right orientation, so again we don't need the orient constrain and we delete it from our hypergraph. Now parent the nurbs circle to this null group by dragging it with your middle mouse button onto null1 in the hypergraph:

Skeleton26.jpg

Now if we select the circle (not the group!) we see that the rotate values are set to 0's, so we'll have a clean starting angle. If the translate values are not set to 0's you can freeze the circle's transformations by selecting the circle and going to modify > freeze transformations:

Skeleton27.jpg

Now all we have to do is to make the ankle joint follow the circle's rotation, so we orient constrain the joint to the circle by first selecting the circle, then with shift the ankle joint and then going to constrain > orient.

When you have done this and you select and rotate the circle you see that the foot will rotate along. You can also see that when you have selected the circle the foot becomes purple. This means that the foot has a construction history with the circle and that adjusting the circle will have effect on the leg:

Skeleton28.jpg

Now give the control group and circle a convenient name and parent the group to the joint above it in the hierarchy.

You can create a control curve for the rotation of the hip and the knee as well.

As you only want to rotate the leg around the Z xis of the circle, it can be convenient to lock (or lock and hide) all other translations by selecting the text in the channel box, clicking on it with your right mouse button and letting go above 'lock selected' or 'lock and hide selected'.

Creating a FK control curve by using a MEL script

Forward Kinematics for an arm

Just like with the leg you can create control curves for the shoulder, elbow and wrist.




Back to Skeletons


Overview of Maya topics

Maya main index

Personal tools
Actions
Navigation
Tools