516 11. Animation Systems
imation authored for one of these skeletons should work on any of them. The
only requirement is that the engine be capable of ignoring animation channels
for joints that cannot be found in the skeleton being animated.
Other more-advanced techniques exist for retargeting animations au-
thored for one skeleton so that they work on a diff erent skeleton. This is an
active area of research, and a full discussion of the topic is beyond the scope
of this book. For more information, see for example htt p://portal.acm.org/cita-
tion.cfm?id=1450621 and htt p://chrishecker.com/Real-time_Motion_Retarget-
ing_to_Highly_Varied_User-Created_Morphologies.
11.4.5. Continuous Channel Functions
The samples of an animation clip are really just defi nitions of continuous func-
tions over time. You can think of these as 10 scalar-valued functions of time
per joint, or as two vector-valued functions and one quaternion-valued func-
tion per joint. Theoretically, these channel functions are smooth and continu-
ous across the entire clip’s local time line, as shown in Figure 11.21 (with the
exception of explicitly authored discontinuities like camera cuts). In practice,
however, many game engines interpolate linearly between the samples, in
which case the functions actually used are piece-wise linear approximations to
the underlying continuous functions. This is depicted in Figure 11.22.
Figure 11.21. The animation samples in a clip defi ne continuous functions over time.
t
Qy 3
Samples
012345678910
Figure 11.22. Many game engines use a piece-wise linear approximation when interpolating
channel functions.