Animating with Forward Kinematics

The default method of manipulating a hierarchy uses a technique called forward kinematics.

The basic principles employed by this technique are:

You animate the objects of a hierarchy in much the same way you animate anything else. Turn on the Auto Key button and transform members of the hierarchy at different frames. However, you need to be aware of a few special issues for animating hierarchies.

How Links and Pivots Work

Once two objects are linked together, the child object maintains its position, rotation, and scale transforms relative to its parent object. These transforms are measured from the pivot of the parent to the pivot of the child.

For example, consider the two boxes in the following figure. The larger box is the parent of the smaller. The pivots and link between the boxes are indicated to show how the link works. The link extends from the pivot of the parent and connects to the pivot of the child. You can think of the child’s pivot as being the joint between the parent and child.

Parent and child objects linked by their pivot points.

Rotating the parent affects the position and orientation of the child object.

Rotating the child does not affect the parent.

Links act as a one-way conduit to transmit the transforms of a parent object to its child object. If you move, rotate, or scale the parent, the child is moved, rotated, or scaled by the same amount. Because hierarchical links are one-way, moving, rotating, or scaling the child has no effect on its parent.

The end result is that transforms applied to a child object are applied in addition to any transforms inherited from the child’s parent.

Animating a Parent Object

Only transforms are passed from parent to child. Animating a parent object using move, rotate, or scale animates the parent and the subtree attached to the parent.

Animating a parent's modifiers or creation parameters has no effect on its descendants.

Moving the root parent moves the whole hierarchy.

Rotation of a parent object is passed to all the child objects.

Animating a Child Object

With forward kinematics, a child is not constrained by its link to a parent. You can move, rotate, and scale children independent of their parents.

Moving the last child object does not affect any of the previous objects in the hierarchy.

Rotating a child object in the middle of the hierarchy affects all the descendants but none of the parents.

If you want to manipulate parent objects by moving the last child in the chain, use inverse kinematics.

Manipulating the Hierarchy

A child object inherits the transforms of its parent, and the parent inherits the transforms of its ancestors all the way up the hierarchy to the root object. Because forward kinematics employs this method of inheritance, you must position and animate your hierarchies using a top-down method.

Manipulating the hierarchy of a leg.

Consider the linked mannequin in the figure. If you want to position the mannequin’s right foot to rest on top of the soccer ball beside it, you perform the following steps:

  1. Rotate the right thigh so the entire leg is above the soccer ball.
  2. Rotate the right shin so the foot is near the top of the soccer ball.
  3. Rotate the right foot so it is parallel with the top.
  4. Repeat steps 1 through 3 until the foot is properly placed.

You always start transforming objects at the highest-level parent affected by the motion and work your way down the hierarchy to the last child.

You have considerable control over the exact placement of every object in the hierarchy using forward kinematics. However, the process can become tedious with large and complex hierarchies. In such situations, you might want to use inverse kinematics.

  • Using Dummy Objects

    The primary use of dummy helper objects is to assist in creating complex motions and building complex hierarchies. Because dummies are invisible when rendered, they are an excellent choice for offset joints, connectors between objects, and handles for complex hierarchies. Dummies and Points can act as null objects that function as controls for transforming parts of an IK chain.

  • Animating Links

    You assign a Link constraint to an object to animate links from one parent to another. You use a link constraint instead of using the regular Select and Link and Unlink Selection buttons on the toolbar. (See Animation Constraints.)

  • Adjusting Object Transforms

    You use the features on the Adjust Transform rollout to transform objects after they have been linked without transforming descendents, and to reset an object's transform.

  • Locking Object Transforms

    You can lock an object’s ability to move, rotate, or scale about any of its local axes by selecting objects and then setting options on the Locks rollout of the Hierarchy panel.

  • Animating Attachment

    You assign an Attachment constraint to cause an object to hold a position on the surface of another object.

  • Changing Link Inheritance

    Links can transmit transform information from a parent to a child. By default, a child inherits all of the transforms of its parent. To set an object's ability to inherit the move, rotate, and scale transforms of its parent, you use the Inherit rollout of the Hierarchy panel. Use its settings to limit which transforms a child inherits.

  • Link Inheritance (Selected) Utility

    The Link Inheritance (Selected) utility constrains the links between multiple objects in a selection set for any axis of position, rotation, or scale.