Introduction to Data-Driven Animation:
Programming with Motion Capture
(Siggraph ASIA 2010 Course)
Seoul National
University
(Organizer &
Presenter)
Abstract
Data-driven animation
using motion capture data has become a standard practice in character
animation. A number of techniques have been developed to add flexibility on
captured human motion data by editing joint trajectories, warping motion paths,
blending a family of parameterized motions, splicing motion segments, and
adapting motion to new characters and environments. Even with the abundance of
motion capture data and the popularity of data-driven animation techniques,
programming with motion capture data is still not easy. A single clip of motion
data encompasses a lot of heterogeneous information including joint angles, the
position and orientation of the skeletal root, their temporal trajectories, and
a number of coordinate systems. Due to this complexity, even simple operations
on motion data, such as linear interpolation, are rarely described as succinct
mathematical equations in articles. This course provides not only a solid
mathematical background but also a practical guide to programming with motion
capture data. The course will begin with the brief review of affine geometry
and coordinate-invariant (conventionally called coordinate-free) geometric
programming, which will generalize incrementally to deal with three-dimensional
rotations/orientations, the poses of an articulated figure, and full-body
motion data. It will lead to identifying a collection of coordinate-invariant
operations on full-body motion data and their object-oriented implementation.
Finally, we will discuss the practical use of our programming framework in a
variety of contexts ranging from data-driven manipulation/interpolation to
state-of-the-art biped locomotion con
Course Schedule
Introduction
and Overview (5 minutes)
1. Data-driven
animation using motion capture data
2. Why
is it difficult to do programming with motion capture data?
3. Course
overview
Coordinate-Invariant
Programming with Points and Vectors
(20 minutes)
1. What
is coordinate-invariant geometric programming?
2. Affine
geometry
3. Coordinate-invariant
operations between points and vectors
Programming
with Orientations and Rotations (35 minutes)
1. Representing
orientations and rotations
2. Analogy
between points/vectors and orientations/rotations
3. Coordinate-invariant
operations with orientations and rotations
Programming
with Motion Capture Data (10 minutes)
1. Representing
motion data and motion displacements
2. Coordinate-invariant
operations for motion data
Practical
examples (30 minutes)
1. Motion
exaggeration and style transfer
2. Hierarchical
displacement mapping
3. Interpolation
and transitioning