Pushing People Around

SCA 2005

Abstract

We present an algorithm for animating characters being pushed by an external source such as a user or a game environment. We start with a collection of motions of a real person responding to being pushed. When a character is pushed, we synthesize new motions by picking a motion from the recorded collection and modifying it so that the character responds to the push from the desired direction and location on its body. Determining the deformation parameters that realistically modify a recorded response motion is difficult. Choosing the response motion that will look best when modified is also non-trivial, especially in real-time. To estimate the envelope of deformation parameters that yield visually plausible modifications of a given motion, and to find the best motion to modify, we introduce an oracle. The oracle is trained using a set of synthesized response motions that are identified by a user as good and bad. Once trained, the oracle can, in real-time, estimate the visual quality of all motions in the collection and required deformation parameters to serve a desired push. Our method performs better than a baseline algorithm of picking the closest response motion in configuration space, because our method can find visually plausible transitions that do not necessarily correspond to similar motions in terms of configuration. Our method can also start with a limited set of recorded motions and modify them so that they can be used to serve different pushes on the upper body.

Back home

Citation

Okan Arikan, David A. Forsyth, James F. O'Brien. Pushing People Around. SCA '05: Proceedings of the 2005 ACM SIGGRAPH/Eurographics symposium on Computer animation, pp.59--66.

Results

Please see the video

This figure is a time lapsed shot of a motion synthesized using our method. Character receives a push on the chest from left (indicated as the red arrow) and takes protective steps backwards to restore balance.

Our deformation model modifies a recorded motion as a function of parameters (q). Some of these parameters may result in good motions and some may produce bad motions. The character on the left is a frame from an original response motion where the actor was pushed from behind. The middle figure is the corresponding frame from a modified version of the same motion. The deformation parameters for the middle character produce a plausible motion, because the configuration of the character is reasonable. The character on the right is the corresponding frame that is modified with a different set of parameters. The con- figuration of the character is implausible, and hence the corresponding deformation parameters should be avoided.

Baseline

Our method

Our method (without deformations)

The left figure is the motion synthesized using a baseline algorithm where we simply transition to the closest (in terms of configuration) recorded motion. The push direction and location is indicated with the red arrow. The closest push that the baseline algorithm can transition, is not pushed from the right direction, because the the character is pushed on the shoulder laterally. The middle figure shows the motion synthesized using our algorithm without any deformation applied. Since our oracle is not limited by numerical similarity between the configurations that we transition between, we can synthesize a recovery motion that is pushed from the correct direction. The motion on the right is synthesized using our algorithm with deformations. The oracle presented in Section 5 prevents deformations that create visual artifacts. The motion with deformations responds to the direction of the push better.

This figure shows an illustration of our real-time interface. The user can push the character anytime from any direction (indicated as red arrows on the ground). See the attached video for a real-time demonstration of this interface.

Our method can be used to handle interactions in a virtual environment. This figure demonstrates 20 characters populating a space. Whenever characters bump into each other or hit the boundary of the space (indicated as the red square), they are pushed away. See the attached video for the animation.

Back home