Dynamically Simulated Characters in Virtual Environments



Virtual environments and games often include animated characters that must respond to the actions of the user. The unpredictable actions of the user require a highly interactive environment that is not amenable to motion generation techniques based on a library of predefined sequences. In this paper, we present one approach to populating interactive virtual environments: using dynamic simulation to generate the motion of characters that respond in real time to the actions of the user. Simulation provides an effective way to generate realistic and compelling motion for virtual environment applications in which realism is essential.

[Virtual Environments]

To illustrate the use of simulation in virtual environments, we have built two environments with interactive characters. The first is a game in which a herd of one-legged hopping robots moves around the environment. The user navigates by steering and pedaling a stationary Tectrix bicycle and attempts to herd the robots into a corral. Each robot has knowledge of the locations of the other robots and of the user and uses that knowledge to avoid collisions in a reactive fashion. This environment served as an aggressive testbed for control algorithms for dynamically simulated robot groups and as a driving application for distributed computing.

The second environment is a virtual recreation of the Atlanta Bicycle Road Race of the 1996 Olympics. The goal is to create a virtual environment where an athlete can experience the course both visually and physically in the presence of simulated bicyclists. Such an environment should prove valuable to the avid biker or professional racer who is limited by time, money, bad weather conditions, or insufficient situational training. For example, the racers at the Olympics are allowed only limited training time on the course without traffic and might benefit from additional time to tune their racing strategies to a particular course or field of competitors. We plan to explore the use of this system for both physical and strategic training for individuals and teams.

The virtual environment is designed to accurately reflect the terrain of the road race. Using topographic maps of Atlanta, we digitized and modeled the 13 km course, preserving dimensions and height information. The user rides a racing bicycle mounted on a motion platform that pitches fore/aft by +/-12 degrees to allow simulation of hills. The bicycle is instrumented to measure the speed of the rear wheel and the turning angle of the front wheel (+/-20 degrees). The rear wheel is mounted on a generator and flywheel to allow limited freewheeling and to match the wheel load to the terrain angle. The system will eventually model such effects as wind drag and increased efficiency from drafting.

Much of the visual interest of the virtual environment comes from the synthetic bicyclists. Each actor is dynamically simulated and pedals in a realistic fashion around the race course. We have implemented a distributed system that allows us to simulate multiple bikes in nearly real time and to display the graphical environment at 15 frames per second. The dynamic simulations are computationally intensive and are distributed one per processor on an SGI Power Challenge with 12 R8000 processors. A software barrier enforces synchronization between simulations to maintain a consistent world state via shared memory. Graphical information is shipped via sockets to a dedicated graphics server.

Although the presence of the simulated bicyclists in the environment adds greatly to the visual appeal of the scene, we are just beginning to develop algorithms that will allow the synthetic cyclists to mimic the sophisticated racing strategies of human cyclists for drafting, blocking, and breakaways. We expect that the addition of racing strategies will result in a useful training environment by providing the user with virtual opponents and teammates and allowing the exploration of biking and team strategies for a particular race.

Publications

Project Members