Blend sequence: Difference between revisions
(→Example: correction, example of addlayer) |
No edit summary |
||
Line 1: | Line 1: | ||
[[Image:Blend sequence.jpg|thumb|250px|A blend sequence altering the yaw of an NPC's aim. A second blend sequence will be needed to control pitch.]] | [[Image:Blend sequence.jpg|thumb|250px|A blend sequence altering the yaw of an NPC's aim. A second blend sequence will be needed to control pitch.]] | ||
Line 40: | Line 38: | ||
== Animating for blend sequences == | == Animating for blend sequences == | ||
There is nothing particularly special about the individual animations which make up a blend sequence. However: | |||
* It is important that each animation is the same length and plays at the same framerate | |||
* Use <code>[[$animation#World movement|walkframe]]</code> if the animation is intended for movement | |||
* In your modelling package, make sure that any root bone keyframes are set to linear interpolation (i.e. a straight line) to avoid velocity "wobble" when looping | |||
== See also == | == See also == |
Revision as of 06:47, 7 July 2011

A Blend sequence is a $sequence
that can move smoothly between $animation
s based on one or two sliding 'blend scale' values. This allows the animation's state to be easily controlled by code.
Walking and aiming direction are almost always determined by blend sequences.
Creating blend sequences
The ideal number of animations in a blend sequence depends on how precise the motion needs to be, and on how much variation there is to be along the blend scale. Valve use nine for their walking blends (see the example below). With blends that produce a still pose rather than an animation you can get away with one for each extreme, but may find it easier to work with a third, central animation for the zero position.
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.
blend <string name> <float min> <float max>
- Defines a blend controller. The first controller moves up/down through the blend, the second (if present) left/right.
blendwidth <int width>
- How many columns of animations the blend contains. The number of rows is determined automatically.
Example
// Define all nine walk_* $animations above this command (use walkframe!)
$sequence walk {
walk_SW walk_S walk_SE
walk_W walk_C walk_E
walk_NW walk_N walk_NE // line breaks are for readability only
blendwidth 3
blend move_x -1 1
blend move_y -1 1
addlayer look // blends look/aim direction on top of walk direction
}
Animating for blend sequences
There is nothing particularly special about the individual animations which make up a blend sequence. However:
- It is important that each animation is the same length and plays at the same framerate
- Use
walkframe
if the animation is intended for movement - In your modelling package, make sure that any root bone keyframes are set to linear interpolation (i.e. a straight line) to avoid velocity "wobble" when looping