Synthesis of Motion from Simple Animations
Introduction Produce realistic character motion from simple animation Non-skilled animator can quickly produce believable animation sequences System is based on constraints of input motion
Examples
Examples
Examples
Examples
Realism Character must satisfy laws of physics Many possible muscle configurations Small subset appear realistic Computing correct dynamics complex math Tradeoff Level of control by animator Artistic freedom vs. physical correctness
Process Animator creates rough sketch of desired animation Small set of essential keyframes System can make recommendations System infers environmental constraints Focus on forces essential to realistic animation No need to solve for all muscle forces
Model
Model Input to system Spacetime optimization Articulated character with mass distribution Values of joint angles at each frame Spacetime optimization Solve for unknowns Values of joint angles Angular and linear momentums
Four Key Stages Constraint and stage detection Automatically detect environment constraints Separate original sequence into constrained and unconstrained stages Transition pose generation Establish poses between constrained and unconstrained stages
Four Key Stages Momentum control Objective function generation Generate physical constraints Based on Newtonian laws and biomechanics Objective function generation Construct the objective function Smooth animation, similar to original, and balanced
Constraints & Stage Detection Positional constraints Parameters of detection Minimal frames required, Tolerance of intersections, & constrainable body parts
Constraints & Stage Detection Positional constraints Wi: Matrix that transforms point p to world coordinates xi = Wip At time i + 1, p is transformed to: Wi+1Wi-1Wip Define Ti+1 = Wi+1Wi-1
Constraints & Stage Detection Positional constraints Constraint on point p from time 1 to n implies T1 through Tn all bring p to same global position Tixi = xi, or (Ti – I)xi = 0 Solution can be either point, line, or plane
Constraints & Stage Detection Sliding constraints Instead of fixing a point, allow it to slide along a line (or plane) e.g. foot of a figure skater Point p constrained to line L: minp,l ∑ Dist(TiWip,L) Minimize sum of distances between xi and the line L at each frame
Constraints & Stage Detection Given detected constraints, separate original animation Unconstrained (flight) Constrained (ground) Different physics/biomechanics rules for each During unconstrained, gravity is the only external force
Transition Pose Generation Transition poses occur at boundaries of stages Store parameters about transition poses for example motions Generated by animators Motion captured data Update database of motions
Transition Pose Generation Training input parameters (e.g. jump) Flight distance Landing angle Average horizontal speed, etc. Output is three center of mass points Lower body Upper body Two arms
Transition Pose Generation Predict a candidate pose K nearest neighbor algorithm Select at most k similar examples Compute candidate pose Three center of mass points Interpolate poses of selected neighbors Weighted by similarities to input sequence
Transition Pose Generation Construct full character pose Inverse kinematics problem Minimize deviation between suggested and original poses Advantages to estimating small set of parameters Joint angles not uniformly scaled Same motion capture database for different skeletal structures
Transition Pose Generation Transition to different skeletal structure CA: COM output parameter of character A ĈA, ĈB: Corresponding COM for default pose Intuitively, displace COM parameter by rescaled difference between default and suggested pose of character in database
Momentum Control Momentum during unconstrained stages Gravity only external force Acts on COM Angular momentum is zero
Momentum Control Momentum during constrained stages No complex physical simulation Based on biomechanics studies and behavior of motion captured data Natural dynamic motion First store energy (momentum decreases) Energy burst (small overshoot)
Momentum Control Enforce C1 continuous at p1 and p4 p2 < p1 d1 > d2 p2 < p4 < p3
Objective Function Final check on realism Minimum mass displacement Compute integral of mass displacement over body Achieves natural joint movement Example: bending at waist instead of knees Minimal velocity of DOFs For time coherence (smoother) Effectively minimize velocity of joint angles
Objective Function Static balance During constrained stages where character is standing still Analyze COM when projected onto plane normal to gravity Spacetime objective function is a weighted sum of these
Conclusion Environment constraints Transition pose constraints Partition motion into constrained and unconstrained stages Transition pose constraints Defined between motion phases by pose estimator (or user) Momentum constraints Dictate behavior of linear/angular momentum
References C. Karen Liu, Zoran Popovic. Synthesis of Dynamic Character Motion from Simple Animations. SIGGRAPH 2002. http://grail.cs.washington.edu/projects/charanim/