|
|
Inverse Kinematics
The form of animation that is directly supported by systems like VRML97 builds on forward kinematics, however using advanced scripting, it is possible to implement inverse kinematics (IK). IK, implemented this way tends to be used for simulation than animation, however. A number of 3D animation packages support the use of IK, which can make the creation of certain types of animation easier. Using a modelling tool that supports IK, you can relatively easily use IK to create the keyframes needed to animate an object using foreward kinematics. Forward kinematicsThe most common way to think of transformations in a scene graph is top-down. Transformations propagate down through the graph. If you transform a group of objects then all of the children move, but if you transform a child group then the parent group is not affected by the change. Inverse kinematicsIn general, foreward kinematics works well but in some cases it can be difficult to use because if the hierarchy is deep then many objects need to be animated individually. Inverse kinematics enables us to view things differently. Using IK, if an animation is applied to a child object then the system attempts to determine the transformation of the parent, so that transformations are propagated up a hierarchy. For example, if you move the the lower arm of a humanoid then the upper arm would move too, taking into account the fact that it is fixed at the shoulder. The object hierarchy of an IK model works rather differently to a forward kinematics hierarcy in that it behave rather like a chain. In most modelling systems the hierarchy is refered to as a skeleton and the joints as bones. The end of a branch of the hierarchy is called the effector while the node higher up in the hierarchy that is filled is called the root. Each bone has constraints that determine how it can be moved and rotated. Some systems restrict rotations to one plane, since that is less mathematically complex and therefore more efficient to calculate in real time. IK is particularly useful more modelling humans. See the literature (e.g. "Principles of three-dimensional computer animation") and the user guide for whatever 3D modelling/animation software you are using for more details. |
|
|
Michael Louka, October 10, 2001 |