730 likes | 971 Views
Introduction to Data-driven Animation. Jinxiang Chai Computer Science and Engineering Texas A&M University. Outline. Data-driven animation - Motion graphs - Motion interpolations - Statistical motion synthesis. Motivations for Data-driven Approaches.
E N D
Introduction to Data-driven Animation Jinxiang Chai Computer Science and Engineering Texas A&M University
Outline Data-driven animation - Motion graphs - Motion interpolations - Statistical motion synthesis
Motivations for Data-driven Approaches Motion capture data are easy to capture But we cannot capture all kinds of motion variations - different subjects - different styles - different emotions Key idea: reuse prerecorded motion data to achieve new goals!
Data-driven Animation Motion processing Goal: convert motion data into a usable form. Motion data Motion User specifications Motion model • Can we automate this? • Must preserve realism and provide control
Outline Data-driven animation - Motion graphs - Motion interpolations - Statistical motion synthesis
Motion Graphs: Key Ideas Given: lots of prerecorded motion clips Concatenate them to create new motions!
Motion Graphs: Key Ideas Given: lots of prerecorded motion clips Concatenate them to create new motions!
Motion Concatenation Motion capture region Virtual environment Sketched path Obstacles
Motion Concatenation Motion capture region Virtual environment
Unstructured Input Data A number of motion clips • Each clip contains many frames • Each frame represents a pose
Unstructured Input Data Connecting transition • Between similar frames
Building Motion Graphs So how can we find transition points between motion clips?
Building Motion Graphs Motion 1 Frames Motion 2 Frames - Every pair of frames has a distance. - Transitions are local minima below a threshold.
Finding Similar Frames • Need derivatives (velocity, acceleration, etc.) • Compare motion in joint angle space or 3d point space? • Must account for coordinate invariance • Different camera ≠ different motion!
Distance Metric For more detail, refer to [Kovar and Gleicher, Lee et al]
Finding Transition Points Transition thresholds control quality vs. flexibility tradeoff. Threshold = 0 cm Threshold = 8 cm Threshold = 16 cm
Structures of Motion Graphs Motion data structure: a graph of frames/poses Avoid dead-ends:finding strongly connected components Contact states:avoid transition to dissimilar contact state
Interacting with Motion Graphs So given a motion graph, how can we generate an animation sequence?
Interacting with Motion Graphs So given a motion graph, how can we generate an animation sequence? - Random graph walk: Any sequence of edges is a motion!
Using Motion Graphs How can we control synthesized motions (e.g., moving from point A to point B, speeds, walking directions)? - Graph search: Find graph walks that minimize a cost function.
Path Synthesis Goal: extract motion that follows a path. User’s path ( ) Motion’s path ( ) Minimize
Motion Control Goal: extract motion (M) that satisfied constraints (C) specified by the user Minimize
Results See videos [click here]!
Discussion Pros: + Fully automatic: work on unstructured data + High-quality animation: motion concatenations + Easy to control: graph search Cons - Poor generalization: cannot produce new poses - Control accuracy: cannot generalize new poses - Not compact: needs to retain original mocap data - Scalability
Outline Data-driven animation - Motion graphs - Motion interpolations - Statistical motion synthesis
Motion Interpolations: Key Ideas Given: lots of prerecorded motion clips Interpolating motions to achieve new goals!
Motion Interpolations: Key Ideas In research: more than decades [e.g., Rose et al. 98] In games for a long time - Interpolating motions needs build correspondences between motion examples - Thus, motion interpolations require structurally similar motion examples!
Motion Decomposition w(t) t t Canonical timeline Time warping functions
Motion Decomposition w(t) Reference motion t t Canonical timeline Time warping functions
Motion Decomposition w(t) Contact Transitions t t Canonical timeline Time warping functions
Motion Decomposition w(t) Motion 1 t t Canonical timeline Time warping functions
Motion Decomposition w(t) t t Canonical timeline Time warping functions
Motion Decomposition w(t) t t Canonical timeline Time warping functions
Motion Decomposition w(t) Using dynamic time warping! t t Canonical timeline Time warping functions
Motion Decomposition w(t) t t Canonical timeline Time warping functions
Motion Decomposition w(t) Motion 2 t t Canonical timeline Time warping functions
Motion Decomposition w(t) t t Canonical timeline Time warping functions
Motion Decomposition w(t) t t Canonical timeline Time warping functions
Motion Decomposition w(t) t t Canonical timeline Time warping functions
Motion Decomposition w(t) t t Canonical timeline Time warping functions
Motion Decomposition w(t) t t Canonical timeline Time warping functions
Motion Representation Contact Transitions Registered motions Time warping functions
Motion Annotation Preprocessed motions mi
Motion Annotation Preprocessed motions mi For each motion mi, we annotate the motion with control parameters si - such as walking speed, direction, step size, kicking directions and positions, etc.
Motion Annotation Motion space: m Preprocessed motions mi Control parameter space: s
Motion Interpolations and Control Motion space: m Preprocessed motions mi How can we generate an animation that achieves the goals specified c* by the user? Control parameter space: s
Motion Interpolations and Control Motion space: m Preprocessed motions mi How can we generate an animation that achieves the goals specified c* by the user? Scattered data interpolation Control parameter space: s
Scatter Data Interpolations Motion space: m Preprocessed motions mi How can we generate an animation that achieves the goals specified c* by the user? Scattered data interpolation Control parameter space: s