Game Engine Architecture

(Ben Green) #1

554 11. Animation Systems


from the modifi ed local pose. Obviously, a post-processing operation
that does not require global pose information can be done between stag-
es 2 and 3, thus avoiding the need for global pose recalculation.


  1. Matrix palett e generation. Once the fi nal global pose has been generated,
    each joint’s global pose matrix is multiplied by the corresponding in-
    verse bind pose matrix. The output of this stage is a palett e of skinning
    matrices suitable for input to the rendering engine.
    A typical animation pipeline is depicted in Figure 11.44.


11.10.1. Data Structures
Every animation pipeline is architected diff erently, but most operate in terms
of data structures that are similar to the ones described in this section.

11.10.1.1. Shared Resource Data
As with all game engine systems, a strong distinction must be made between
shared resource data and per-instance state information. Each individual character
or object in the game has its own per-instance data structures, but characters
or objects of the same type typically share a single set of resource data. This
shared data typically includes the following:


  • Skeleton. The skeleton describes the joint hierarchy and its bind pose.

  • Skinned meshes. One or more meshes can be skinned to a single skeleton.
    Each vertex within a skinned mesh contains the indices of one or more


Outputs

Inputs

Decompression
and
Pose Extraction

Blend
Specification

Pose
Blending

Skinning
Matrix
Calc.

Global
Pose Calc.

Local Pose

Rendering
Engine

Matrix
Palette

ProcessingPost -

Skeleton

Clip(s)

Local
Clock(s)

Global
Pose

Game Play
Systems

Figure 11.44. A typical animation pipeline.
Free download pdf