Each stage of the optimization takes between 250-1000 iterations,
depending on the complexity of the problem. The total time to syn-
thesize each animation clip ranges between 2 to 10 minutes on a
quad-core 2.3GHz Intel Xeon machine.
5
Results
By using the tasks
b
described in section 4.3 we can synthesize a
wide variety of behaviors.
Getting Up, Walking, Climbing
By using only
stand
described
in section 4.3 and using an initial pose of the character lying on the
ground, we synthesize the motion of getting up. Different initial
poses (such as lying on the back, or on the stomach) result in differ-
ent getting up strategies, as seen in the accompanying video. If the
character is initially standing,
stand
is satisfied by simply continu-
ing to stand. By using
stand
task in combination with
pos
task and
an initially-standing pose, we induce walking. The pattern of foot
contacts typical of walking is not specified and emerges automati-
cally from our optimization.
pos
task is shown in the corresponding
video with a white crosshair.
By using only
stand
and
pos
tasks, but changing the environment
to include an obstacle, a range of strategies emerges from simply
stepping over the obstacle, to using hands to prop the character up,
to using hands to grip and climb a really tall obstacle. The coeffi-
cient of friction µ on the foot contacts is 2 to allow foot plants on
completely vertical slopes. Hand contact forces do not have friction
cone or positivity constraints to reflect the ability of hands to grip.
Handstands, Punches, Kicks
Modifying
stand
by swapping feet
for hands in the specification and commanding that feet should
point upwards, we create a handstand task
handstand
. When only
this task is active and the character is initially standing, they will
make a series of preparatory movements and prop themselves up
onto their hands.
handstand
can similarly be combined with
pos
and
dir
tasks.
To generate striking motions such as punches and kicks, we create
strike
task that specifies positions and velocities for limb end effec-
tors at various points in time. For punches, we specify random tar-
get at every second movement phase (every third phase for kicks).
We also add
dir
task to make the character face every target. The re-
sult is a character striking targets as if they were known in advance,
while staying balanced enough to make subsequent strikes.
Non-Human Character Morphologies
We also tested our algo-
rithm with characters of different morphologies, such as a biped
with a wide torso and quadruped with short legs. The optimiza-
tion was successful in getting up, walking and climbing scenarios,
with strategies appropriate for each morphology. For example, ani-
mal trot pattern of contacts (moving front leg and opposite hind leg
together) emerges for quadruped walking without explicitly being
specified.
Interaction with Objects
Additional prop objects can be intro-
duced and their trajectories included as variables in the optimiza-
tion. An object has auxiliary contact variables for every character’s
hand, indicating that the end effector is gripping the object. The
terms L
Physics
and L
CI
now apply to the object as well. The object
is able to generate contact forces that move it around, but L
CI
term
for object now requires that hand end effector has to be touching
the surface of the object.
Tasks similar to
pos
and
dir
are used to specify final position and
orientation of the object. From only these two tasks, the strategy of
the character having to pick up and carry the object to the destina-
tion emerges (in particular, no tasks are specified for the character).
Intuitively, the cost terms form the following dependency: to move
the object, L
Physics
requires contact forces, which requires active
contacts. Then L
CI
requires character’s hand end effectors to be
touching the object. Then limb length constraints require that char-
acter be close enough to the object to touch it. This may require
walking up to it, and so on.
Interaction Between Characters
Our algorithm can be ex-
tended to jointly optimizing for the motion of multiple characters.
For the task of moving the object above, multiple characters dis-
tribute the workload and cooperate to pass the object from one to
the other. We can control the workload distribution by increasing
the penalty on contact forces in equation (9) for one of the charac-
ters, and making the other character do most of the object carrying
work.
Two characters also cooperate to achieve tasks impossible for one,
such as
pos
for one of the characters specifying a target location
above character’s height. Because contacts can be made with the
surfaces of other characters, the task is achieved by one character
climbing on top of the other.
6
Conclusion and Future Work
In this paper we presented a fully automated framework for synthe-
sizing a wide range of movement behaviors, and demonstrated its
effectiveness on complex and rarely studied behaviors. Our frame-
work is agnostic to the morphology of the character, and indeed we
showed that movement behaviors can be created for significantly
different types of characters. The contact-invariant optimization
method could likely be applied to other domains where constraint-
driven phases bifurcate the optimization space making it very hard
to find solutions numerically. We developed an effective continua-
tion scheme suitable for our optimization method.
We also introduced a feature-based physics model that allows for
efficient consideration of dynamic aspects in the inner loop of the
optimization procedure. This relaxation naturally comes at a cost.
We model the character’s kinematics and contact interactions with
the environment in detail, but represent its dynamics as a single
rigid body and do not model the limb dynamics. This simplification
effectively results in limbs with infinitely strong muscles (and no
penalty for using them), which in turn can lead to energy-inefficient
motions such as using bent knees for support, having arms extended
against gravity, or occasional out of place sitting. The latter occurs
because sitting minimizes the sum of squared contact forces, but
does not consider the effort required to get back up. These lim-
itations may be removed by using full-body inverse dynamics to
calculate the character’s joint torques, and penalizing the torques or
some related quantity.
The key advantage of our framework is the simultaneous optimiza-
tion of contacts and smooth portions of the movement. This was
made possible by introducing an auxiliary decision variable for
each potential contact, and keeping these variables constant within
each phase. As a result, we were able to optimize very long and
temporally complex movement sequences that have previously re-
mained beyond the reach of numerical optimization methods. The
price we had to pay was that the potential contact points (or rather
patches) had to be pre-defined. We are of course penalizing pene-
trations everywhere, but this is not the same as actively optimizing
over active contacts. One way to remove this limitation is to sim-
ply increase the number of potential contacts and cover the entire