The constraint-based approach involves the imposition of kinematic constraints on the motions of an animated object [Platt and Barr1988]. For example, one may constrain the motion trajectories of certain parts of a model to conform to user specified paths. Two techniques have been used to calculate motions that satisfy constraints: the inverse dynamics technique and the constrained optimization technique.

In inverse dynamics, the motion of an animated body is specified by solving the equations of motion. A set of ``constraint forces'' (or torques) is computed, which causes the animated body to act in accordance with the given constraints [Isaacs and Cohen1987, Barzel and Barr1988, Witkin and Welch1990]. The first two works deal with rigid bodies (for the special case of articulated figures), the third with non-rigid structures. Using inverse dynamics, the resulting motions are physically ``correct'' (in the sense that the animated body responds to forces in a realistic manner), but they may still look unnatural with respect to any specific form of animal locomotion. For example, when modeling the locomotion of a cat using inverse dynamics, the resulting motion may not resemble that of a cat, but rather that of a robot. This is because, as was discussed in the previous chapter, an animal's movement not only depends on the Newtonian laws of motion but also is subject to biomechanical principles. In particular, the locomotion of an animal is driven by its muscles, which have limited strength. Therefore, contrary to the assumption of the inverse dynamics technique, a real animal cannot produce arbitrary forces and torques so as to move along any pre-specified path.

The idea behind the constrained optimization technique is to represent
motion in the *state-time* space and then define an *objective
function* or *performance index* and cast motion control as an
optimization problem [Witkin and Kass1988, Liu, Gortler and Cohen1994]. The objective function
evaluates the resulting motion. The usual assumption is that motions
requiring less energy are preferable. An open-loop controller is
synthesized by searching for values of the state space trajectory, the
forces, and the torques that satisfy the constraints and minimize the
objective function. This is usually achieved by numerical methods
that iteratively refine a user supplied initial guess and that are
often computationally expensive. Moreover, it is possible for the
motion to be over-constrained, in which case the optimization
algorithm is given the responsibility of arbitrating between the user
defined constraints and the constraints induced by the laws of physics
[Funge1995]. Unfortunately, this means that the compromise
solutions produced may not lead to visually realistic motion,
especially if the laws of physics are compromised.

Xiaoyuan Tu | January 1996 |