Transcript PowerPoint
Retargetting Motion to New Characters Michael Gleicher Presented by David Del Vecchio Outline Motivation Working Toward a Solution Constraints and Objectives Traveling Through Space and Time Extensions Conclusions Motivation: Why Do We Care? Have one animated motion want another For characters with identical structure, but different proportions Manual tweaking is difficult and time consuming Want to preserve high-level properties that are hard to define Simple Try 1 Just reuse parameters of original motion in new motion with different character hmm … something’s not quite right … Simple Try 2 Need to meet constraints, for instance foot touches floor No problem, just use inverse kinematics to establish constraints each frame … better, but not very smooth … What’s the problem? No global notion of constraints Solving locally for each frame generates unwanted artifacts, can’t plan ahead Reason: introduced high frequency motions Try 2 with Filtering Ok, just apply a low-pass filter to remove unwanted high frequencies But, may violate constraints Want to preserve high frequencies in original motion, without introducing new ones Enough Failed Attempts Need a way to solve the constrained optimization problem that takes the whole motion into account Hmm … where have we seen this before? Spacetime Constraints Mathematically encode all constraints and objectives Not so easy to capture desirable aspects of original motion mathematically More constraints and more complicated objective functions take longer to solve Tools for Traveling through Space and Time Constraints Objective Functions Identify features that must be present Guide solution to be close to original Representation of Motion Starting Point Initial Solution for Solver Constraints qti = parameters of motion (joint angles) at time ti Define constraint as: f(qti) = c c is a constant Constraint examples Parameter’s value is in a certain range (joint limits) Point on character is in specific location or within a range Two points are a certain distance apart Vector between points has a certain orientation Objective Functions Goal: Minimize noticeable change Hard to define, choose something simple instead Minimize differences between new motion and original motions Define functions of motion parameters Original motion: m0 (t ) m(t ) m0 (t ) d (t ) New (retargeted) Motion: m(t ) Difference between the two: d (t ) 2 2 Objective Function: g (m) (m(t ) m0 (t )) d (t ) t t Representation Want to minimize introduction of high frequencies Choose representation of d (t ) to achieve this Cubic B-splines Control point spacing determines frequency limit Try having control points every 2, 4 or 8 frames (uniform spacing) Starting Point Good initial motion can speed numerical solver Start just by scaling motion to match scaled character If needed translate motion to get as close as possible to satisfying constraints Compute translation amount needed per frame (and low pass filter to remove high frequencies) Retargeting Procedure 1. 2. 3. 4. 5. Take original motion and identify constraints Scale and translate to find initial estimate for solution, m1(t) Choose representation for d(t), control point spacing Solve non-linear constraint problem: find d(t) that will satisfy constraints when added to motion estimate from step 2 (use spacetime) If constraints are not well satisfied, solve again using m1(t) + d(t) as initial motion in step 2 and choose a denser spacing in step 3 Solving the Constrained Optimization Problem Want to solve for control point values (call the vector of these x) Define constraints and objective functions in terms of these control points minimize g(x) subject to f(x) = c g(x) = ½ xMx (a weighted sum of squares, diagonal matrix M gives weights) In addition to SQP could use a non-linear least squares solver to minimize constraint residuals (distance from meeting constraints) Extensions Morphing characters When generating initial solution estimate, apply scaling and translation per frame Characters with different structure First use standard retargeting to a character whose dimensions roughly match those of the new character Find correspondences (manually) between features of original and new character, make these constraints Use retargeting with spacetime constraints again, to find a new motion that satisfies these constraints Conclusions Basic retargeting works for characters with same structure, different limb lengths Control point spacing is important for preserving desired frequencies Enforcing uniformity across time is a limitation Enforcing certain features of original motion may not produce natural retargeted motion