Physically based animation
or “why I quit my job to play with Boxie for three years”
Danny Chapman (rowlhouse@gmail.com) - Oxford Video Games meetup - 31 Jan 2024
“Ragdoll physics” in games
NaturalMotion: Morpheme + Physics + Euphoria
2007-2017
Character physics in Unreal Engine
2020-
“Ragdoll physics” in games
“Ragdoll physics” in films/VFX
2017-2020
Marcus Ottosson
WeightShift is born!
Danny Chapman
Physics Programmer
C++, Engine, Simulation
Marcus Ottosson
Technical animator
Tools, Python, Maya
Tim Daoust
Application developer
C++, Python, Tools
An animator working at a company like Pixar is expected to produce around one second of final quality animation per day.
Our mission is to double that.
Using WeightShift AI
How it works
WeightShift Solver
Scene description
Animation Input
Evaluators
Controls
Animation Output
WeightShift Solver
Scene description
Animation input
Evaluators
Controls
Animation Output & Optimal Control Plan
Control Plans
Simulation
What’s a Control Plan?
WeightShift Solver
Canon controls are: angle a and speed s
What should a and s be to minimise the cost?
Cost of missing the target
Speed (s)
Angle (a)
Low cost
High cost
Optimise by sampling: CMA-ES
Angle (a)
Speed (s)
Now on Boxie
| | |
Input scene | | |
Animation | None | |
Controls | Speed and Angle | |
Evaluators | Distance to target | Distance to animation target |
Output | | |
Need: Input scene, animation, controls, evaluators
Input Scene
Input/Target Animation
N/A
Controls
Evaluators
Cost = d2
Cost per frame = d1 + d2 + c1 + ...
Output Animation and Control Plan
For implementers
Trajectory Optimisation
Trajectory Optimisation is the process of designing a trajectory that minimises (or maximises) some measure of performance while satisfying a set of constraints.
Model Predictive Control
Model predictive control (MPC) is an optimal control technique in which the calculated control actions minimize a cost function for a constrained dynamical system over a finite, receding, horizon.
Model Predictive Control
Model predictive control (MPC) is an optimal control technique in which the calculated control actions minimize a cost function for a constrained dynamical system over a finite, receding, horizon.
WeightShift AI - Examples
Motion generation
Meet Boxie! Simple procedural motion.
Fully procedural motion generation
Direct and indirect control
Motion tracking - changed environment
Motion transfer - to a new environment
Motion tracking - changed character
Run with limp (cost for using the left leg)
Everything - backpack, terrain
Miscellaneous!
Summary
If you have:
Trajectory Optimisation or Model Predictive Control
might be your friend!
Even if they’re not, have fun trying!
Thanks to Epic for letting me show you Boxie!
More WeightShift Dynamics examples
More WeightShift AI Examples
Properties of CMA-ES
Pro:
Properties of CMA-ES
Cons: