Summary
This paper introduces a new method for synthesizing streams of motions based on an existing collection of motion capture information by creating a directed graph data structure called a motion graph. Motion graphs solve the motion synthesis problem by transforming it into a problem of selecting a sequence of nodes, allowing for a degree of control over synthesized motions. Topics covered in this paper include an explanation of what a motion graph is, how to construct a motion graph, and how to use a motion graph to generate movements along a path.
Key Ideas
1. A motion graph is a directed graph where all edges correspond to clips of motion. Nodes are points connecting these clips or subdivision points of individual clips and can be thought of as poses that these motions move to and away from.
2. In order to generate a motion graph with a high degree of connectivity and a wide range of possible graph walks, transitions must be computed to seamlessly connect two segments of original motion data.
3. Transitions are created by first detecting possible candidate points for transitions between some pair of motions. This is done by using a similarity metric that measures the distance between two frames of animation in terms of a point cloud driven by the skeletal mesh of the character. Candidate transition points are those that represent a local minima of difference between frames of the two motions. Transition points are then selected from the pool of candidates using an empirically determined threshold that guarantees that only transitions with the smallest difference error are used. Transition motions are created by blending frames of one original motion with the other. Once a motion graph has been generated with these transitions, the graph is pruned of nodes that aren't part of any well-structured motion cycles. This pruning helps remove logical discontinuities.
4. Once a motion graph has been generated, using it to extract motion can be achieved by solving an optimization problem on the graph walk from some starting node to the end node.
Contributions
Motion graphs are constructed automatically, unlike other similar graph structures representing motion that are created manually.