Many motion editing algorithms, including transitioning and multitarget interpolation, can be represented as instances of a more general operation called motion blending. We introduce a novel data structure called a registration curve that expands the class of motions that can be successfully blended without manual input. Registration curves achieve this by automatically determining relationships involving the timing, local coordinate frame, and constraints of the input motions. We show how registration curves improve upon existing automatic blending methods and demonstrate their use in common blending operations.
All videos on this page are compressed with Microsoft MPEG4. You can either download a movie (33.9 MB, 5:30; audio) explaining registration curves and demonstrating their use in practice, or you can view shorter movies concerning specific topics:
Blending involves combining frames of the input motions according to time-varying weights. An important factor in the success of a blend is the decision of which frames to combine. Intuitively, we would like to combine sets of logically corresponding frames; for example, if we were blending punching motions, we should combine frames corresponding to the same point in the strike (extension, apex, and retraction). However, in general corresponding events will not occur at the same absolute time. To address this, registration curves store timing information in a timewarp curve, which is a strictly increasing function that returns sets of corresponding frames, one from each input motion.
Traditional blending methods combine root parameters by averaging - that is, the root configuration (position and orientation) of the blend is found by averaging the root configuration of the input motions according to the blend weights. When the root paths have nontrivially distinct trajectories, this can cause serious artifacts. For example, say we use blending to create a halfway interpolation of a walk that curves to the left and a walk that curves to the right. We expect the character to walk straight forward. Instead, it appears to slide to a stop as its feet continue to move in a normal walk cycle, and toward the end of the motion it suddenly flips around 180 degrees (see video).
These problems can be removed by exploiting the fact that a motion is unchanged by a translation in the floor plane and a rotation about the gravity axis. For instance, a walk is unchanged if we aim it north rather than southwest, or start it at the origin versus ten feet to the side. Registration curves contain a coordinate alignment curve that stores collections of 2D coordinate transformation that mutually align every set of frames in the timewarp curve. This can be used to incrementally blend root parameters, preventing collapsing artifacts like with the differently curving walks.
A constraint is a property that must hold over some interval of time. For example, many motions have footplant constraints, which require that part of a foot remain stationary on the ground over some set of frames. It is important that we know what constraints exist on a blend, because we may need to adjust it so those constraints are satisfied. However, some motions that seem natural to blend contain fundamentally different sets of constraints. For example, a walking motion always has at least one foot planted on the ground, while a running motion has periods of flight during which there are no footplants.
Registration curves help determine constraints on a blended motion through constraint correspondences, which are logically associated constraints from the input motions. The intervals over which each of these constraints is active may simply be blended as with other motion parameters.
Registration curves interface seamlessly with standard blending operations. One important operation is transitioning, or seamlessly attaching motions together. Another is interpolation, or creating motions "in between" the example set. This can be used to create parameterized spaces of actions. Finally, by continuously varying blend weights, we can interactively control a character's actions.