On Creating Cool Real-Time 3D

Hierarchy of Separate Objects
  
On Creating Cool Real Time 3D

 Page 1

 Page 2

 Page 3

Page 4
       

Characters of this type have a separate object for each body part in the character. These separate objects are connected together in some form of hierarchy. Then, by applying rotations and translations to each body part, you can create fluid motion. You see this type of character in many games, but some classic examples of this technique include Virtua Fighter and Tomb Raider.

Frame 1: A character created from separate objects
[zoom]
Figure 1:
A character created from separate objects

Benefits of this method:

  • Characters that are created from a hierarchy of separate objects are very adaptable.
  • You only need to store a transformation for each object and the vertex information once, thus the animation file is very small.
  • By having the character in a hierarchy, it is fairly easy to create new animations. If your engine supports an Inverse Kinematic (IK) or Dynamic system, you can actually generate new animations on the fly. This is the key benefit of creating your characters this way.

Drawbacks of this method:

  • Since the actual position of each vertex in the model is determined by the hierarchy, you need to do some extra work to get the mesh to the screen. Each object in the mesh must be transformed by the complete hierarchy above it. This makes for quite a bit more math per vertex. For example, if your hierarchy looks like figure 2 (see below), the mesh of the left hand must be transformed by the hips, chest, chest2, left collar, left upper arm, left lower arm, and finally the left hand.
  • Where the objects in the character connect, you get gaps. Since the objects in the character are separate, you need to consider how they go together. By clever modeling, you can hide these seams, but this is not always possible. You may notice that many characters of this type wear armor or clothing that hides these seams.

Figure 2: A sample character hierarchy Figure 2:
A sample character hierarchy



Single Mesh Characters