Simulating interactions among multiple characters
Abstract
In this thesis, we attack a challenging problem in the field of character animation:
synthesizing interactions among multiple virtual characters in real-time. Although
there are heavy demands in the gaming and animation industries, no systemic
solution has been proposed due to the difficulties to model the complex behaviors
of the characters.
We represent the continuous interactions among characters as a discrete Markov
Decision Process, and design a general objective function to evaluate the immediate
rewards of launching an action. By applying game theory such as tree expansion
and min-max search, the optimal actions that benefit the character the most in
the future are selected. The simulated characters can interact competitively while
achieving the requests from animators cooperatively.
Since the interactions between two characters depend on a lot of criteria, it is
difficult to exhaustively precompute the optimal actions for all variations of these
criteria. We design an off-policy approach that samples and precomputes only
meaningful interactions. With the precomputed policy, the optimal movements
under different situations can be evaluated in real-time.
To simulate the interactions for a large number of characters with minimal
computational overhead, we propose a method to precompute short durations of
interactions between two characters as connectable patches. The patches are concatenated
spatially to generate interactions with multiple characters, and temporally
to generate longer interactions. Based on the optional instructions given by
the animators, our system automatically applies concatenations to create a huge
scene of interacting crowd.
We demonstrate our system by creating scenes with high quality interactions.
On one hand, our algorithm can automatically generate artistic scenes of interactions
such as the fighting scenes in movies that involve hundreds of characters. On
the other hand, it can create controllable, intelligent characters that interact with
the opponents for real-time applications such as 3D computer games.