Editing NLA Strips
In this page we are going to talk only about action strips’ edition, not the keyframes’ one: even though you do can re-time them in the NLA Editor, it’s not very easy, and much less “featureful” than the Action Editor. And anyway, their edition is nearly the same as the Action Editor’s one…
So you should avoid to edit keyframes in the NLA editor, and more widely in the action and Ipo curve editors as well when an action strip is active in the NLA: even though you might think you edit this action strip, you would in fact affect all the strips that use this action…
The selection tools are available through the Select menu, and of course through their own shortcuts.
There are four different selectable elements:
- The keyframes (gray/yellow diamonds) and action strips (pink/yellow strips).
- The channels (in their left list).
- The markers.
- Select/Deselect All Channels (A), Select/Deselect All Markers (CtrlA), Select/Deselect All Keys (A)
- These three entries (de)select respectively all the channels, all the markers, and all the keyframes/action strips.
- Note that the same shortcut (A) is used for channels and keyframes/action strips, the affected elements depend on where is the mouse cursor…
- Border Select Markers (CtrlB), Border Select (B)
- These two entries start the border-select tool, respectively for the markers and for the keyframes/action strips.
- As usual with border-select tools, the LMB click-and-drag adds to the current selection, whereas the RMB (or AltLMB ) click-and-drag removes from the current selection.
You have four ways to add an action strip to an object in the NLA (which will also always add a new track, as there can be only one strip per track…):
- From an existing action
- Using ⇧ ShiftA (or Strip » Add Action Strip), you can add any action datablock existing in the current Blender file – an Add Action Strip to: <object_name> menu will pops-up, with all available actions. The new action strip will be added so that it starts at the current frame (green cursor), and is as long as its underlying action.
- A brand new (and empty) action
- The NLA can also create for you new empty actions, using ⇧ ShiftN (or Strip » Add Blank Action Strip). As this new action has obviously no keyframes yet, its properties are set so that it starts at the current frame, and is as long as necessary to end at the end frame of your animation.
- Convert an action into a NLA strip
- C (or Strip » Convert Action to NLA Strip) will “convert” the current active action (as shown in the mid-level track) into a new action strip. The difference with the first option is that this strip is synchronized with the action, i.e. it starts and ends at the same frames.
- Duplicating an existing action strip
- ⇧ ShiftD (or Strip » Duplicate) will make copies of the selected action strips, which allows you to keep their redefined properties (like length, etc.). As usual, the copies remain the only selected strips, and are placed in grab mode…
Whatever method you choose, note that new strips are always added at the bottom of their stack (see below for details).
There is one very important thing you must know about strip actions: the last (i.e. bottom-most) ones override the previous ones. This means that, excepted during cross-fading, see below, if several strips affecting a same Ipo curve are superposed, the bottom-most strip action will always be the effective, “played” one. Keeping this in mind while editing your strips will avoid you many problems…
You can move and scale the selected strips with the usual grab (G) and scale (S) tools. Note that the scaling is done using the current frame (green cursor) as center “point” – so if you want e.g. to scale a strip without modifying its starting point, place the current frame at its start. And even though it might seem that you can get a negative scaling this way (i.e. a reversed action), you won’t – the strip (i.e. start and end points) will appear to be mirrored around the green line, but if you look at the keyframes in the mid-level channel, you’ll see that they are still in the “straight” order…
There is also one more transformation specific to this window (inherited from the Action Editor one), also available through the Strip » Transform sub-menu:
- Grab/Extend from Frame (E)
- This will start a standard “grab” operation, but only with the selected strips that are “on the same side” of the current frame as the mouse cursor. Selected strips that are “crossing” the current frame green line will not be moved, but rather scaled, as if you only moved their “good-side” ends (i.e. the other end, on the “wrong side” of the frame cursor, wont move at all, unlike in standard scaling…
As usual, you also have some transform (or auto) snapping options, available both through modifier keys or the Auto-Snap Strips/Keyframes drop-down list to the right of the window’s header:
- No Snap
- Default behavior, no modifier.
- Frame Step (Ctrl)
- Transformations are constrained on whole-frame steps (i.e. integer step values).
- Nearest Frame (⇧ Shift)
- Transformations are constrained so that both ends of the affected strips always exactly lay on (the nearest) frames (i.e. integer frame values).
- Nearest Marker (Alt)
- Transformations are constrained so that both ends of the affected strips always exactly lay on (the nearest) markers (note that as markers always lay on whole frames, this implies the previous behavior as well).
Apart from the “time” transformations (X-axis), you can also move up and down the action strips (inside their own stack), using CtrlPageUp/CtrlPageDown (or Strip » Move Up/Move Down entries). Remember that the last (bottom-most) strips are the highest-priority ones!
Finally, you also have standard, non-interactive snapping options (⇧ ShiftS, or Strip » Snap » …), either to:
- The nearest frame (⇧ ShiftS1 NumPad or Nearest Frame entry).
- The current frame (⇧ ShiftS2 NumPad or Current Frame entry).
Mode: all modes
The Transform Properties panel of the action strips is a very important place, as this is here that nearly all advanced NLA features are available – and it also gives you a precise way to control the basic strips timing properties.
- Timeline Range
- This set of controls manage the timing of your action strip, as well as what part of the underlying action is used.
- The first two numeric fields, Strip Start and Strip End, control the first and last frame of the strip in the NLA timeline (i.e. its position and length), and hence also the speed at which the action is played (as the selected piece of action is “stretched” to fill the strip’s length). Note that a strip’s “speed” is the same thing as its “scale”, which means that these settings also indirectly control (and are controlled by) the Scale value.
- The small “lock” button, to the left of the second row, is enabled by default. This means that the strip will always contain all the keyframes of its action – Blender will automatically update its length if you add/remove extremity-keyframes in the action, so that the strip keeps its current speed/scale.
- The rest of the second row is used by two numeric fields, Action Start and Action End, which represent the part of the action used by the strip. Obviously, when the “lock” button is enabled, they are not editable, only informative. Note that Action End is not allowed to be less than Action Start, which means you cannot reverse an action in the NLA timeline…
- These three controls allow you to fade in or out the strip’s effects. You can either manually enter the fade in/out lengths (in frames) in the In/Out numeric fields, or enable the Auto-Blending button, which will adjust the In and Out values to match the immediate upper/lower strips.
- The fading parts of a strip are materialized as increasing/decreasing slopes at their ends (the third strip in NLA strips example is fade-out over five frames).
- This button has the same effect as the “eye” one in the channels’ headers: it mutes the strips!
- The first strip in (NLA strips example) is muted.
- The number of times the Action range should repeat.
- Note that:
- You can specify a non-integer value (e.g. 1.5 will repeat just the first half of the strip once).
- This setting implicitly affects the length of the strip (and hence its Strip End value).
- It is ignored if Stride Path is enabled (see below).
- Repeated strips are materialized as multiple strips one after the other, as the first strip in NLA strips example (repeated “three” times).
- This might as well have been called “speed” – it represents the ratio between the original (selected part of the) action’s length, and the actual strip’s length. So values higher than '1.0 results in slowed-down action, and lower ones, in fasten-up actions!
- This is an armature/pose specific setting. When a valid bone’s name is entered here, its translation from start and end of the strip is used as a translation offset to all root bones of the armature when repeating this action.
- This only concerns one or more of the Loc… properties of the root bones, depending on whether you enable one or more of the Use… buttons that appear once you have entered a valid bone name:
- Without any button enabled, Blender makes its best guess to find one and only one of the X/Y/Z location to offset (I suppose it chooses the channel having the highest delta between start and end…).
- If you enable one or more of these three buttons, the corresponding location components will be offset.
- So you get a sort of “cyclic extrapolation” of the translation over the repetitions of the action, affecting all root bones (i.e. bones not parented to another bone), whether they are keyed or not, but without affecting the armature object itself.
- This setting is only useful when Repeat is higher that 1.0, and Stride Path is not used! It’s a sort of simplified “stride bone” stuff which allows you to quickly and easily setup walk cycles, for example. Note however that as the offset is done inside the armature, at the bone’s level, and not on the whole object, you should avoid to use it in most cases (it’s better to move the armature object as a whole, rather than all the bones inside it!).
- By default, once the end of an action strip is reached, it has no more effect on the NLA animation. If you enable this button, the last “frame” (i.e. end values) of the action strip will be “played” forever, unless it is overridden by another (lower) strip. This is a way to have a sort of “background” state to which the animated object always returns when there is no other lower (i.e. higher priority) strip present…
- “Held” strips are materialized as “ghosts” strips from their en point to infinity, as the second strip in NLA strips example.
- Specifies that the effects of this strip should add to any existing animation data, instead of overriding it – this is the only “mix” possibility between different strips.
- Stride Path
- This tool, dedicated to armatures, allows you to repeat the strip along a path (for example, to make a walk cycle). See this page for details.
- Add Modifier
- Yes, NLA strips can have modifiers… Well, in fact, this seems not to be a key feature, but at least one modifier is implemented – see this page for details.
Strip Scaling Tools
Mode: all modes
You have a few commands to apply/revert the scaling done to a strip to/from the underlying action, available either in the Strip menu, or the Action Strip Scale pop-up menu (AltS):
- Reset Strip Scale will expand/shrink the strip so that its scale goes back to 1.0 (i.e. action and strip speeds are the same). It won’t touch to the part of the action used by the strip, unlike the next option.
- Remap Action Start/End (or Reset Action Start/End…) will “put back” the whole action in the strip, exactly as if the “lock” button in the second row of Time Range settings (strip’s Transform Properties panel, N) was enabled again – see above. Hence, this command has obviously only an effect if you disabled the “lock” and modified the part of the action the strip uses!
- Apply Scale (or Apply Strip Scaling…) will apply the current strip’s scale to the underlying action. Warning: this will affect all strips using this action, whatever object they belong to…
Mode: all modes
As usual in Blender, you can delete the selected strips by hitting X (or Strip » Delete), and confirming the pop-up message. This will obviously not delete the underlying action!