Game Engine Architecture

(Ben Green) #1

564 11. Animation Systems


we must use a cascaded binary tree with the additive clips always applied to
the additive inputs, as shown in Figure 11.53.

11.10.4. Cross-Fading Architectures
As we saw in Section 11.6.2.2, cross-fading between animations is generally
accomplished by LERP blending from the previous animation to the next one.
Cross-fades can be implemented in one of two ways, depending on whether
your animation engine uses the fl at weighted average architecture or the ex-
pression tree architecture. In this section, we’ll take a look at both implemen-
tations.

11.10.4.1. Cross-Fades with a Flat Weighted Average
In an animation engine that employs the fl at weighted average architecture,
cross-fades are implemented by adjusting the weights of the clips themselves.
Recall that any clip whose weight wi = 0 will not contribute to the current pose
of the character, while those whose weights are non-zero are averaged togeth-
er to generate the fi nal pose. If we wish to transition smoothly from clip A to
clip B, we simply ramp up clip B’s weight, wB , while simultaneously ramping
down clip A’s weight, wA. This is illustrated in Figure 11.54.
Cross-fading in a weighted average architecture becomes a bit trickier
when we wish to transition from one complex blend to another. As an ex-
ample, let’s say we wish to transition the character from walking to jumping.

Clip A

β 1

Diff Clip B

+

β 2

Diff Clip C

+
Output Pose

β 3

Diff Clip D

+

Figure 11.53. In order to additively blend more than one difference pose onto a regular “base”
pose, a cascaded binary expression tree must be used.

t

w
1

0
tsta rt ten d

wA wB

Figure 11.54. A simple cross-fade from clip A to clip B, as implemented in a weighted average
animation architecture.
Free download pdf