Interactive Motion Editing Presented by Troy McMahon Interactive Motion Editing Adapting existing motions to compensate for variations in characters and environments. Motivation Reusability: Interactive Motion Editing allows us to generate new motions using existing motion clips to This prevents us from having to capture these new motions. Video 1 Motivation Allows us to use motion capture date obtained for one character to animate another character of different dimensions. © Lee, Shinn, Siggraph 1999 Related Work Motion Warping, Siggraph 95 Michael Gleicher, “Retargeting Motion to New Characters”, Siggraph 98 S. Lee, G. Wolberg, and S. Y. Shin, “Scattered Data Interpolation With Multilevel B-Splines”, 1995 Overview Features of the target motion are represented as spacetime constraints. Modify existing motions to conform to these constraints. Goal: Satisfy constraints while preserving characteristics of original motion. This is an optimization problem Overview of Algorithm Intra-frame relationship Use inverse kinematics to satisfy constraints Inter-frame relationship Use curve fitting to make motions smoother Overview of Algorithm Use inverse kinematics to conform motion to constraints Use curve fitting to reduce jerkiness repeat Inverse Kinematics Constraints reduce the number of variables (by making some variables dependent on others) Use inverse kinematics to determine the optimal motion under these constraints “elbow circle” [Korein and Badler 82] Inverse Kinematics Solver Used to adjust each frame to conform to constraints This may introduce jerkiness Displacement Maps Spline curves: The displacement of a coordinate as a function of time Displacement maps: Array of spline curves over common knot sequence Motion Displacement Mapping Map a displacement vector, d(t), to the existing motion vector, m(t), to obtain a new motion vector, m’(t), that satisfies the constraints. m’(t)=m(t)d(t) d(t) is not known B-Spline Approximation technique © Lee, Shinn, Siggraph 1999 B-Spline Approximation technique Hill climbing algorithm Each iteration: add a curve, di, that brings the displacement closer to d(t) Curves go from course to fine For a sufficiently large h, d(t)d1…dh As hi, d1…dhid(t) Multilevel Spline Fitting f 0 f1 f0 f 0 f1 f 2 f1 f2 © Lee, Shinn, Siggraph 1999 Hieratical Motion Fitting mh=(..(mod1) d2)… dh) mi=(mi-1di) At each level this algorithm uses the approximation from the previous level to generate a new approximation Hieratical Motion Fitting At each level apply inverse kinetics to the motion from the previous level Compute the displacement for each frame Use curve fitting to calculate a displacement map Use the displacement map to generate a new motion Motion Fitting Algorithm For every constraint in C Input: Original Motion, Constraints Inverse Kinematics Solver Compute Displacement For Frame Compute Displacement Map, di Do h times Output: mh Choosing An Initial Guess The better the initial guess, the fewer levels you have to compute in order to obtain a good approximation. Guess obtained by shifting the root in the original motion. Knot Sequences The number of knots doubles with each iteration of motion fitting algorithm. The more knots, the more closely the motion conforms to the constraints © Lee, Shinn, Siggraph 1999 Results © Lee, Shinn, Siggraph 1999 Results Video 2 Video 3 Video 4 Analysis © Lee, Shinn, Siggraph 1999 Limitations Does not take into consideration physics of the motions. Resulting actions may not be natural or realistic. References Jehee Lee, Sung Yong Shin, “A Hierarchical Approach to Interactive Motion Editing”, Siggraph 99