Blend sequence

A Blend sequence is a $sequence
that can move smoothly between up to nine sub-$animation
s based on a one-dimensional 'blend scale' sliding value.
This allows for precise programmatic positioning of parts of a model. For instance, you might create two blend sequences to handle the direction in which an NPC points a weapon - one for pitch and one for yaw. By changing the blends' float input values, any AI controlling the model will be able to aim at targets in the world.
Another very common use for blend sequences is walking direction. A full 360 degrees can be blended between within the same sequence.
Creating blend sequences
Blend sequences make use of the advanced form of $sequence
, so you'll need to define some $animation
s before you can begin.
Their ideal number depends on how precise the movement needs to be, and how much variation there is to be along the blend scale. Valve use nine for their walking blends (see the example below), but for blends that produce a still pose rather than an animation you can get away with one for each extreme. You may well find it easier to work with a third, central animation for the zero position too however.
Once you have your $animations, simply list them within the $sequence's keyvalue block in the desired order. They will be evenly distributed along the blend scale.
Incomplete...
blend <string|name> <float|min value> <float|max value>
blendwidth <int|width>
- "Instead of just 1x1, 2x1, 3x1, 2x2, and 3x3 blends, by blending width, you can now have any size rectangular blends such as 7x1, 3x4, 2x9, etc."
Example
$sequence walk_all { a_walkS a_walkSE a_walkE a_walkNE a_walkN a_walkNW a_walkW a_walkSW a_walkS blendwidth 9 blend move_yaw -180 180 ACT_WALK 1 node "walking" }
Animating for blend sequences
To do...

$animation
s used in blends are usually still poses, as movement is generated by other animations that play on top. If they aren't, e.g. for walking blends, it is important that each $animation used is the same length and plays at the same framerate!