Hierarchical Modeling and Inverse Kinematics


Most objects in the world have a complex structure composed of parts connected in some way with each other. When you apply a transformation (e.g. scaling, translation, rotation) to an object, you often want the transformation to apply to the entire object. But you also might want individual parts of an object to move independently of other parts.

Examples

In general, you want the option of transforming an object as a single unified whole. But you also want to allow a limited set of transformations on individual parts. In some cases, moving one part forces another part to move and in other cases the movement can be independent.

How do achieve this type of behavior? Answer: Hierarchical modeling.

Hierarchical Modeling

Examples:

Animation

Creating an appropriate hierarchy is particularly important when it comes to animating an object or character. And, given a hierarchical model, there are several approaches one can take. Forward kinematics (or just kinematics) are rules for motion based on the physics and the geometry of rigid objects connected with constrained joints. Given the beginning position and a rule of motion (e.g. move right with speed 10), the animation can be generated without the need for keyframing. Forward kinematics can be problematic when animating a person because you are often want to specify the final position (e.g. of a hand) rather than the initial position with rules of motion. Consider animating an arm with a shoulder, elbow, and hand. Using forward kinematics, you first set the position of the shoulder, the elbow (wrt the shoulder), the hand (wrt the elbow). Moving the shoulder effects how the elbow moves, which in turn effects how the hand moves.

Yet it is more intuitive to think in reverse. That is, we first decide where we want the hand and then the rest of the arm moves in whatever way is necessary to get the hand to where it wants to go, assuming it is physically possible. The "goal" of the action is determined by desired location of the hand. The technique called inverse kinematics uses this reverse approach where the position of the hand (effector) guides the movement of the shoulder and elbow. However, the normal hierarchical constraints are still in place. This is not a simple problem to solve. For example, it is often it is underconstrained meaning that there may be more than one solution. For example if you move your hand from point A to point B, there may be many ways the shoulder and elbow could move to accomadate the hand motion. Some solutions are more "realistic" than others. It is important to include contraints on the motion to limit the possible choices.

Some Terminology: Typically, each node or joint is refered to as a link in the chain. The structure is also often refered to as a skeleton, and the joints are bones. The node being moved (e.g. the hand) is called the effector.

In Moray you can set up a hierarchy using groups. Once the structure is created, you can specify the limits on the relative movements of the individual parts. Inverse kinematics can then be used to control the movement relative to the effector.

Dynamics refer to rules of motion based on the laws of physics.

Animation can also be generated using artificial intelligence. A virtual character makes decisions about how to move based on a set of internal goals.

Substances such as smoke, fire, explosions, etc are often done using particle systems.

Realistic human motion is very difficult to model using keyframing or the laws of physics. Instead, animators can rely on motion capture where sensors are attached to relevent points of a moving object and tracked to record their motion. The advantage of motion capture is that the motion is very realsitic. The disadvantage is that it is difficult or impossible to modify the motion.