THREE.JS / FOUNDATIONS 98

One rig. Three kinds of motion.

Compare action crossfades, simultaneous normal weights, and a converted additive clip on the same RobotExpressive rig.

Initializing -

Preparing three independent mixers and their animation actions.

Base
-
Target
-
Additive
-
Tracks
-
Clip inputsshared source / cloned actions

Each lane owns a mixer. Only the additive lane converts its overlay clip into relative keyframes.

Crossfade lane-
1.00s

The destination action is reset, played, then blended in with AnimationAction.crossFadeTo().

Weighted lane-
0.35
Base weight
0.65
Target weight
0.35

Both normal actions play at once; the visible pose is the weighted result of their shared property bindings.

Additive lane-
0.65
0.00
0

-

Animation action lifecycle
clone clips->clipAction->set weights->crossFade / update->render

AnimationAction weights are observable at runtime; additive conversion changes the clip blend mode.

The three characters share the same model source but use separate mixer state. Add ?forceWebGL=1 for a WebGL2 comparison.

Next: depth conventions ->
LAB 98 / ANIMATION BLENDING