Title: Flexible Automatic Motion Blending with Registration Curves
1Flexible Automatic Motion Blending with
Registration Curves
- Lucas Kovar
- Michael Gleicher
- University of Wisconsin-Madison
2Motion Blending
- Blending combines input motions according to
time-varying weights.
Interpolation
Transitions
Continuous Control
1
1
1
0
0
0
3Automatic Motion Blending
- The success of blending depends on the
information given about the input motions.
What if were not given any information?
- Registration Curves
- Encapsulate timing, coordinate frame, and
constraint relationships - Built automatically for arbitrarily many motions
(compare with Rose et al. 98, Park et al. 02)
4Outline
- Overview
- Building Registration Curves
- Blending with Registration Curves
- Results
5Outline
- Overview
- Building Registration Curves
- Blending with Registration Curves
- Results
6What is a Registration Curve?
- A data structure composed of three elements
Timewarp Curve
Timing
Coordinate Frame (Root Blending)
Alignment Curve
Constraint Matches
Constraints
7Registration Curves Overview
- Straw man algorithm linear blending
- ith blend frame combines ith frame of each input
- Combine skeletal poses by averaging data values
8Registration Curves Overview
9Outline
- Overview
- Building Registration Curves
- Blending with Registration Curves
- Results
10Building a Registration Curve
- A registration curve is composed of three
elements, built in order - Timewarp curve
- Alignment curve
- Constraint matches
11Timewarp Curves
- Each point is a set of corresponding frames
- Smooth and strictly increasing a 1-1 mapping
12Building Timewarp Curves Two Motions
- Idea similar poses are more likely to correspond
- Use the same distance metric as before
Make grid of distances dynamic programming finds
minimal-cost path
Motion 2 frames
Motion 1 frames
13Dynamic Programming Details
valid
not strictly increasing
not continuous
degenerate
Can compute path incrementally for better
efficiency
14Fitting the Timewarp Curve
- We now have discrete frame correspondenes.
- Almost a timewarp curve, but not quite.
Solution fit a strictly increasing spline
15Building Timewarp CurvesMore Than Two Motions
- Directly generalizing to more motions is costly.
- For k motions, dynamic timewarping is O(nk)
- Instead, create pairwise timewarp curves and
merge into a single curve. - O(k2)
- Storage is proportional to the number of input
frames (not quadratic)
16Alignment Curves
Each point on the timewarp curve gives a set of
frames
The alignment curve gives transformations that
align these frames. Align bodies are centered
at the same point and face the same direction.
17Frame Alignment Example
18Building Alignment Curves
- Recall When computing the distance between two
frames, we also found an aligning coordinate
transformation.
Use these to build the alignment curve.
19Constraint Matches
- Each motion is labeled with constraints.
Constraint intervals
Motion 1
Motion 2
Motion 3
Goal find sets of logically related constraints.
20Finding Constraint Matches
- Timewarp the constraint intervals
Group overlapping constraints, dropping or
splitting constraints as needed
21Outline
- Overview
- Building Registration Curves
- Blending with Registration Curves
- Results
22Blending with Registration Curves
- To create a frame of a blend
- Select which input frames to combine
- Position and orient these frames
- Average skeletal parameters
- Determine constraints
23Choosing Frames to Combine
Blend frames are generated in order. For each, a
point is chosen on the timewarp curve.
Motion 2 Frame
Motion 1 Frame
- Each motion votes on how fast to travel
- Select speed so motion plays at natural rate
- Average votes based on blend weights
24Positioning and Orienting Frames
- The alignment curve arranges frames into a
coherent block that may be rigidly transformed.
25Positioning and Orienting Frames
- Each motion votes on a transformation based on
the previous blend frames position/orientation
Intuitively, this is similar to blending root
velocities relative to the local coordinate frame.
26Creating the Blend Frame
- 1. Merge skeleton poses
- Average skeletal parameters (averaging and
normalizing quaternions works well in practice)
- 2. Find Constraints
- Average constraint intervals for each constraint
match
Motion 2 frames
Motion 1 frames
27Results
- Building a registration curve for 18 motions (10s
each 1800 frames total) took 3.3s. - Storage is 1-2 of original data.
- Blends of 10 motions can be done at 1000fps.
28Outline
- Overview
- Building Registration Curves
- Blending with Registration Curves
- Results
29Results
30Discussion
Blending is a powerful and general method. It
usually works when motions are reasonably
similar, but no guarantees.
- Registration curves make it quick and easy to
create and experiment with blends - From original data to creating blends in a few
seconds - Essential for large data sets (see next topic)