Controlling physically based characters is an ongoing
problem in animation. Motions that involve a large of
changing contacts with the environment are especially
problematic. In this thesis we present techniques for
controlling contact rich motions, specifically rolling and
falling motions. For rolling we present a method for
controlling the full body orientation of a multibody
character. We use this to describe a roll for the character
to perform in terms of the character's goal orientation,
linear velocity and angular velocity. We then use
a quadratic programming controller to compute the torques to
best achieve these goals. To deal with the many and
constantly varying contacts we introduce a heuristic that
selects only the most important contact points to be active
in the quadratic program. Falling is similar except it
requires time varying orientation and position goals for the
character. We automatically compute these goals by defining
a function to evaluate the quality of a fall and use
sampling based optimization to find the best way to control
the character for a given fall. We demonstrate our rolling
controller for several different rolls in different
environments and our falling controller on a variety of
different falls.