180 likes | 277 Views
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
E N D
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 • Identify features that must be present • Objective Functions • 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: • New (retargeted) Motion: • Difference between the two: • Objective Function:
Representation • Want to minimize introduction of high frequencies • Choose representation of 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 • 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