340 likes | 493 Views
Dynamo Dynamic, Data-driven Character Control with Adjustable Balance. Pawel Wrotek Electronic Arts Chad Jenkins Brown University Morgan McGuire Williams College. First, a video…. Character Motion. An integral part of modern video games. FIFA 2006 (EA). San Andreas (Rockstar).
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