Motion Graphs

Lucas Kovar, Michael Gleicher , and Fred Pighin

Download the paper (PDF)


This work takes a step toward the goal of directable motion capture. Given a database of motion capture, we automatically add seamless transitions to form a directed graph that we call a motion graph. Every edge on this motion graph is a clip of motion, and nodes serve as choice points connecting clips. Any sequence of nodes, or walk, is itself a valid motion. A user may exert control over the database by extracting walks that meet a set of constraints.

Path Fitting

In this work we focus on the problem of directing locomotion down user-specified paths. That is, the user draws a curve on the ground and we extract from the motion graph a motion that travels along this path. The following video shows some sample results:

(AVI, 37 MB, 1:46)

  1. First we show a simple example from a motion graph built out of a single, 12-second "sneaking" motion, along with the reflection of that motion. Even with such a small dataset, we can create nontrivial new motions.
  2. Second is an example from a larger walking dataset. The walking motion itself is about 54 seconds long, and it took about 57 seconds to generate. In general, in our experiments it took about as long to compute a motion as it took to play it.
  3. Next we fit to the same path, but this time using a dataset involving martial arts motions. Note that our methods work for motions that are not obviously locomotion.
  4. Finally, we show fits to another complicated path.

Path Fitting with Multiple Styles

The previous video showed examples where the character was performing only one kind of action while traveling down the path ("walking", "sneaking", etc.). However, we can also require the character to do different things on different portions of the path. The following video shows some results:

(AVI, 23MB, 1:47)

  1. We start with a simple example. The character is to walk on the yellow portions of the path, sneak on the green portions, and perform kicks on the purple portions.
  2. Next is a second example from the same walk-sneak-fight dataset. There are a total of six possible style-to-style transitions (e.g., walk-to-fight), and this motion shows an example of each.
  3. Finally, we show a fit to a more complicated path.

Interactive Control

We can use our technique to interactively control a character. For each node in the motion graph, we precompute fits to paths in a sampling of directions and store the first edge of each resulting graph walk. In effect we then have a lookup table that tells us which edge to take next given that we want to travel in a particular direction. The following video shows some results; it is being recorded interactively. Note that there is a delay between when the desired direction changes and the character itself changes direction. This is because it in general takes a bit of time for the character to position himself on the motion graph so as to perform the desired action.

The following video shows the technique applied to two datasets, one with walking motions and one with kicking motions.

(AVI, 9.9MB, 0:37)