<%@LANGUAGE="JAVASCRIPT" CODEPAGE="1252"%> MAXTD - MAX, TD, Character Rigging
 

(CAUTION: This paper was written for 3ds max r3. Things might have changed with subsequent versions)

FORWARD KINEMATICS AND INVERSE KINEMATICS STRUCTURES

In order to understand clearly how to prepare a character for believable animation and posing, we must first have a very clear idea of two of the most widely used hierarchical setups: forward kinematics and inverse kinematics. Both have their pros and cons, which we'll analyze to know when each type of structure is needed.

FORWARD KINEMATICS

This is the most basic form of hierarchical animated relationships. To test this type of structure, just create in your 3d program of choice one rectangle. Move it's pivot point to one of it's short sides (if not already there). Now, copy it and move the new rectangle aside so its pivot point is just near the first rectangle. Now, link the second rectangle to the first one (the first one becomes the parent of the second). Now, if you rotate the first rectangle, you'll notice that the second rectangle moves with it, so it always stays in the same relative position and orientation. This is a phenomenon known as inheritance. This means that the children will always 'inherit' the transformations that occur to their parents. In some 3d programs, such as 3D Studio MAX, inheritances can be turned on or off on a per-transformation, per-axis basis. This allows users a high degree of control during animation. Here, when you transform a parent, the children follow.

INVERSE KINEMATICS

Forward kinematics allows a great deal of control during character posing and certain animated movements. However, some tasks, as locking a character's hands on a wall, become quite a headache with this kind of structure. Here's where inverse kinematics comes in handy. An inverse kinematics chain behaves exactly the opposite way as a forward kinematics chain. In this kind of chain, when you transform a children, the parent follows. This allows for very quick animation and for very easy object locking. When you create an inverse kinematics chain, you require what it's called as an effector to move it. Effectors drive the transformations of the chain at certain points. For example, if you create a chain to animate the arm of a character, you'd create an effector at the wrist, so that moving this effector would move the entire arm. I must say that you almost never will animate the effector directly. Effectors are linked to dummy objects or null objects, because these objects can be parented or lined to any other parts of the structure, whereas effectors cannot. Once linked, the effector will try to match the position of the null or dummy object (in the case of position effectors) as closely as it can within the specified threshold range (in some apps). The same goes for rotation effectors. These effectors drive the rotations of the bones in the chain, and if linked to anything, they'll follow the rotations of the control object as closely as they can. In any case, it's almost always desirable to set the position and rotation thresholds to 0, so the effector will always match the exact position and orientation of the control object.

Effectors have also a weight. This weight determines how much the effector's position/orientation contributes to the final IK solution. Weights are relative, which means that assigning to two effectors a weight of 10 and 20 respectively, is the same as assigning them weights of 1 and 2. An effector with a higher weight value is more important to the IK solution. Consider this carefully when handling various effectors in an IK chain.

©Sergio Muciño. maxTD 2000.

smucino@maxtd.com