Blend sequence

From Valve Developer Community
Revision as of 09:11, 4 May 2008 by TomEdwards (talk | contribs)
Jump to navigation Jump to search

Stub

This article or section is a stub. You can help by expanding it.

A blend sequence altering the yaw of an NPC's aim. A second blend sequence will be needed to control pitch.
HLMV's 'Sequence' tab can control blends. This character is running backwards and aiming slightly upwards.

A Blend sequence is a $sequence that can move smoothly between up to nine sub-$animations 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 $animations 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...

Tip.pngTip:The $animations 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!

See also