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.