The characters in a game have skeletons. Similar to our own skeleton, this is a hidden series of objects that connect with and move in relation to each other. Using a technique called parenting, a target object (the child) is assigned to another object (the parent). Every time the parent object moves, the child object will follow according to the attributes assigned to it. A complete hierarchy can be created with objects that have children and parents. Here's an example for a human character:
Once the skeleton is created and all of the parenting controls put in place, the character is animated. Probably the most popular method of character animation relies on inverse kinematics. This technique moves the child object to where the animator wants it, causing the parent object and all other attached objects to follow. Another method that's popular for games is motion capture, which uses a suit of sensors on a real person to transmit a series of coordinates to a computer system. The coordinates are mapped to the skeleton of a game character and translated into fluid, realistic motion.
Each character's range of motion is programmed into the game. Here's a typical sequence of events:
- You press a button on the controller to make the character move forward.
- The button completes a circuit, and the controller sends the resulting data to the console.
- The controller chip in the console processes the data and forwards it to the game application logic.
- The game logic determines what the appropriate action at that point in the game is (move the character forward).
- The game logic analyzes all factors involved in making the movement (shadows, collision models, change of viewing angle).
- The game logic sends the new coordinates for the character's skeleton, and all other changes, to the rendering engine.
- The rendering engine renders the scene with new polygons for each affected object, redrawing the scene about 60 times each second.
- You see the character move forward.