Virtual characters in games and simulations often need to plan visually convincing
paths through a crowded environment. This paper describes how crowd density
information can be used to guide a large number of characters through a crowded environment.
Crowd density information helps characters avoid congested routes that could
lead to traffic jams. It also encourages characters to use a wide variety of routes to reach
their destination.
Our technique measures the desirability of a route by combining distance information
with crowd density information. We start by building a navigation mesh for the
walkable regions in a polygonal 2D or multi-layered 3D environment. The skeleton
of this navigation mesh is the medial axis. Each walkable region in the navigation
mesh maintains an up-to-date density value. This density value equals the area of all
characters inside a given region divided by the total area of this region. These density
values are mapped onto the medial axis to form a weighted graph. An A* search on
this graph yields a backbone path for each character, and forces are used to guide the
characters through the weighted environment. The characters periodically replan their
routes as the density values are updated. Our experiments show that we can compute
congestion-avoiding paths for tens of thousands of characters in real-time.
The steps of our algorithm are visualized in the movie below.
Technique
Results
Although it is common to steer characters along short paths to their destinations, high congestion
can lead to traffic jams that seem unnatural when many routes are underutilized in an
environment. To improve the realism of our simulations, we used crowd density information
to guide a large number of characters along a wide variety of routes. We did this by building
a navigation mesh and weighting the desirability of routes based on the crowd density along
the path. Our technique can guide tens of thousands of characters through a polygonal 2D or
multi-layered 3D environment in real-time. The movie highlights the effectiveness
of these techniques in both 2D and 2.5D environments.