Blend sequence

A Blend sequence is a $sequence
that can move smoothly between up to nine sub-$animation
s based on a one-dimensional 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 pose rather than an animation you can get away with just two; one for each extreme. You may find it easier to work with a third animation for the zero position as well.
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!