Dynamo (DYNAmic MOtion capture) is an approach to controlling
animated characters in a dynamic virtual world. Leveraging
existing methods, characters are simultaneously physically simulated
and driven to perform kinematic motion (from mocap or other
sources). Continuous simulation allows characters to interact more
realistically than methods that alternate between ragdoll simulation
and pure motion capture.
The novel contributions of Dynamo are world-space torques for increased
stability and a weak root spring for plausible balance. Promoting
joint target angles from the traditional parent-bone reference
frame to the world-space reference frame allows a character
to set and maintain poses robust to dynamic interactions. It also
produces physically plausible transitions between motions without
explicit blending. These properties are maintained over a wide
range of servo gain constants, making Dynamo significantly easier
to tune than parent-space control systems. The weak root spring
tempers our world-space model to account for external constraints
that should break balance. This root spring provides an adjustable
parameter that allows characters to fall when significantly unbalanced
or struck with extreme force.
We demonstrate Dynamo through in-game simulations of characters
walking, running, jumping, and fighting on uneven terrain
while experiencing dynamic external forces. We show that
an implementation using standard physics (ODE) and graphics
(G3D/OpenGL) engines can drive game-like applications with hundreds
of rigid bodies and tens of characters, using about 0.002s of
CPU time per frame.