340 likes | 357 Views
Explore character motion in modern video games, including procedural animation and motion control approaches like ragdolls and physics simulation. Understand the autonomous physical motion control problem and its solutions in world space control. Discover the feedback motion control methods like PD-servo and world space PD-servo for stable control.
E N D
Dynamo Dynamic, Data-driven Character Control with Adjustable Balance Pawel WrotekElectronic Arts Chad Jenkins Brown University Morgan McGuireWilliams College
Character Motion • An integral part of modern video games FIFA 2006 (EA) San Andreas (Rockstar) Antigrav (Harmonix)
Kinematic Character Motion • Expressed by rigid body kinematics • Rigid bodies connected by joints • Character pose defined by rotation of joints • Vector θ(t) represents pose at a given instant of time
Motion Generation:Mocap and Keyframing • (+) path of least resistance • (+) absolute control “wyciwyg” • (-) not physically dynamic • static and partial snapshot of the dynamics occurred at the time of creation • Production animation, not interactive games God of War 2 (Sony)
Motion Generation:Procedural Animation • Rules/algorithms to automatically generate motion • Three categories of approaches: • Indirectly emulate physical plausibility • [Perlin,Goldberg 94] [Popovic, Witkin 99] [Kovar et al. 02] • Simulate physics only when necessary • [Shapiro et al. 03] [Zordan et al. 05] • Simulate physics directly and persistently • [Hodgins et al. 95] [Laszlo et al. 00]
Procedural Animation • Indirectly emulate physical plausibility • Scripting [Perlin,Goldberg 94] • Blending [Rose et al. 98] • Optimization [Liu et al. 05] [Arikan et al. 03] (+) creators retain control Creators define all rules for movement (-) violates the “checks and balances” of motion Motion control abuses its power over physics (-) limits emergent behavior
Procedural Animation • Simulate physics directly • Ragdolls • Controllers to generate motor forces [Zordan, Hodgins 02] [Faloutsos et al. 01] [Popovic et al. 00] • (+) proper “separation of powers” • Physics, control, AI • Allows for emergent, natural interactions • (-) inherit problems that plague robotics Controller Physics
Procedural Animation • Simulate physics only when necessary • Dynamic response: [Shapiro et al. 03] [Zordan et al. 2005] [Natural Motion Endorphin] • Mocap for “normal” dynamics • Simulation for disturbance dynamics (+) the best of mocap and simulation (-) limited to passive response • Falling, getting hit, etc. • No persistent interaction
Fundamental Question • Can we have practical methods for physically simulated characters? • Revisit the broader picture for autonomous control • Decision making (AI): objectives, current state (x[t]) → desired motion (xd[t]) • Motion Control: desired motion (xd[t]), current state (x[t]) → motor forces (u[t]) • Physics: current state (x[t]) → next state (x[t+1]) xd[t]=AI(x[t]) u[t]=MC(xd[t]-x[t]) x[t+1]=P(x[t],u[t]) Decision Making xd[t] Motion Control u[t] Physics objectives x[t+1]
The Autonomous Physical Motion Control Problem xd[t]=AI(x[t]) u[t]=MC(xd[t]-x[t]) x[t+1]=P(x[t],u[t]) Decision Making xd[t] Motion Control u[t] u[t] Physics objectives x[t+1]
The Autonomous Physical Motion Control Problem xd[t]=AI(x[t]) u[t]=MC(xd[t]-x[t]) • Simulating physics • Download ODE • Buy Havoc • Implement Guendelman et al. 03 Decision Making xd[t] Motion Control u[t] objectives x[t+1]
The Autonomous Motion Control Problem u[t]=MC(xd[t]-x[t]) • AI for autonomous decision making • Someone else’s problem • Interface point for decision making • Focus on motion control • Motion capture as decision making placeholder xd[t] Motion Control u[t] Mocap data x[t+1]
Motion Control: Impediments u[t]=MC(xd[t]-x[t]) • Gain tuning for motion control • Balance for upright motion xd[t] Motion Control u[t] Mocap data x[t+1]
Motion Control: Impediments u[t]=MC(xd[t]-x[t]) • Gain tuning for motion control • Balance for upright motion xd[t] Motion Control u[t] Mocap data x[t+1] Problem: parent space control?
Motion Control: Impediments u[t]=MC(xd[t]-x[t]) • Gain tuning for motion control • Balance for upright motion xd[t] Motion Control u[t] Mocap data x[t+1] Problem: parent space control? Solution: world space control?
. . u[t]=kp(θd[t] - θ[t])+ kd(θd[t] - θ[t]) Feedback Motion Control • Parent PD-servo • Torque u about an axis • Appropriate kp and kd values are necessary for stable control • Tedious and difficult • Holdover from robot rotational sensing u D. Brogan
World Space PD-Servo • τ = kp (v · θ)+ kd(ωd– ωa) Wd = desired world space rotation matrix Wa = actual world space rotation matrix T = Wd * Wa-1(transformation from Wa to Wd) v, θ = rotation axis, angle derived from T ωd= desired world space angular velocity ωa= actual world space angular velocity θ Wa v Wd
A Note about Axis-Angle(Source code in the paper) • Torques determined by desired angular acceleration • i.e., Proportional to 2nd derivative of rotation • 1D Hinge [Hodgins95]: t 2q/t2 • 3D Ball joint: t 2[rotation]/t2 • …but Matrix/Quat derivatives produce denormalized results under ODE’s Euler integration and are awkward to convert to torques • Rotation axis is fixed anyway during the Euler timestep, so reduce to a 1D problem… • 3D Ball joint:
Early Results • Gain Tuning • Cartwheel with object
Super-balancing • An artifact of world space control • Retain “separation of powers” • Desired pose relative to character root (Person space) • Desired root orientation specified by AI • Actual position and orientation determined by physics
Root-spring control • Spring only opposes gravity (no rotation about FG) • Torque-limited and breaks under excessive strain Applied Torque t t = maximum t =tbalance t = 0 tbalance Torque limit Breaking point
Results • Obstacle course • Parent space • Person space • User interaction • Balance comparison • Ballistic • Person space (meathook) • Person space (root spring), Parent space • In-game boxing Parent space Dynamo
Results • Obstacle course • Parent space • Personspace • User interaction • Balance comparison • Ballistic • Person space (meathook) • Person space (root spring), Parent space • In-game boxing
Results • Obstacle course • Parent space • Personspace • User interaction • Balance comparison • Ballistic • Person space (meathook) • Person space (root spring), Parent space • In-game boxing
Results • Obstacle course • Parent space • Personspace • User interaction • Balance comparison • Ballistic • Person space (meathook) • Person space (root spring), Parent space • In-game boxing
Results • Obstacle course • Parent space • Personspace • User interaction • Balance comparison • Ballistic • Person space (meathook) • Person space (root spring), Parent space • In-game boxing
Future Work • AI for goal-oriented motion generation • Experimental parent vs. world analysis • Biomechanical character constraints • Embodied perception
Conclusion • Physically dynamic characters are practical • World-space control yields • Implicit character balance • Easier gain tuning • Path to emergent behavior for interactive characters
Acknowledgements • NSF Award IIS-0534858 • Dan Byers • Sam Howell • mocap.cs.cmu.edu • G3D and ODE user communities • “Innovating Game Development” Guest Lecturers • A-Lab
RoboCup Dynamical Soccer • cjenkins@cs.brown.edu • morgan@cs.williams.edu