NLA ? (Non Legal Advisor ?)

by Malefico

With the appearance of Publisher a few lucky guys could enjoy the new Non Linear Animation feature. Now that Blender 2.25 was set free for the public by the Blender Foundation everyone can has the chance to explore the many advnatages this new feature has (and write tutorials like this one) though the official documentation is somewhat "concise" to say the least.

In this "concise" tutorial I'll try to transmit more or less clearly what can you do with all this.

WARNING: This tutorial assumes that you have previous Blender skills, like armature and character animation setup, which will not be explained here (anyway, there are lots of tutorials about that, believe me)

To follow this tute, you'll need Blender Publisher 2.25 which can be downloaded from Blender Dot Org).

Old Troubles

First of all let me remind you briefly how we animate characters using armatures in Blender. As you know (or should know if you read the warning) we normally define "actions" with the different poses our charcater is going to acquire along the timeline. The problem start to get obvious when we try to animate ciclic actions (like a walkcycle) and at the same time we want the character to do something else (like blinking, sneezing or shake his head like nuts).

The more rational aproach to this is not to define a unique action with all the stuff but to define several simple actions and then to compone everything together combining the single actions. Otherwise the actions could not be reusable in a single fashion in new scenes and everything will be ugly and bad :-P.

When there was no NLA in Blender, the character animator struggled with this problem: to be able to combine different actions, it was required a new action that could act as a "store" for the chain of actions, a place where you could paste sets of keyframes from the previously defined actions in sequence (thus the term "Linear Animation"). And if two or more actions were supposed to take place simultaneously, the only way to do it was to copy the required keyframes and insert them among the existing ones in the proper time of the timeline. This was a tedious and prone to error work.

New Solutions

Now that you are more or less convinced that everything was bad and dark in the past, let me introduce you to Non Linear Animation or NLA, the friend of children and defender of illegal aliens !!.

But, before even think of it we'll need a character, an armature and a couple of actions for it. If you don't know where to find them just download this. Remember: never go out for tutoring without a blend at hand ;-)

When you open the scene you'll find four windows: a ĚD window with a character (criticism are not allowed), an action window, and IPO window and finally a NLA window. If you select the armature and check the action window, you'll see two actions defined: "caminar" (spanish for "to walk") and "brazos" (spanish for "arms"). In each one of these actions there are oly keyframes for the moving bones of teh armature, for instance in "caminar" there are keyframes only for the legs, and in "arms" ... well, you'll figure it out.

The main idea behind this is to work on each single movement and the combine everything in the NLA window.

To add actions in the NLA window we have to locate the mouse pointer over the armature's channel and press SHIFT+A. A menu with all available actions will pop up. If we don't locate the pointer over an armature channel an error message "ERROR: Not an armature" will pop up instead.

It is convenient that at the moment of adding actions that no action is selected for the current armature. Why ? Because instead of a NLA strip, we'll see the individual keyframes of the action being inserted in the armature channel and this keyframes will override any prior animation strips we could have added so far. Anyway, if you do insert an action in this way, you can always convert the keyframes into a NLA strip by pressing the "C" key.

So, place the pointer over the armature strip and press SHIFT+A and add the "caminar" action. It will appear as a yellow NLA strip when selected, or a pink one otherwise.

Once again if you have the keyframes, you can convert it to a NLA strip by pressing "C". This also deselect the action from the action window (but doesn't delete it).

As this particular action is a walkcycle, we are interested in repeating it over and over with the time. But before starting a "copy and paste" fever, move the pointer over the strip and press "N".

Now we are able to edit the action strip's properties as follows:

Here we see several things. Among them is the number of frames the action has (Action Range) and its duration along the animation timeline (Timeline Range) indicated by its starting and ending frame numebers. If we modify the last pair of numbers we could "stretch" an action in time or otherwise "accelerate" it. Let's focus on the "Repeat" parameter. As you may have figured out, it specifies the number of times the action cycle is repeated along the timeline. As our sample action has 25 frames and the whole timeline is 100 frames, I thought it might be a good idea to repeat it 4 times. However I could have chosen a different number and Blender would have adjust everything so as to keep the animation running smoothly. Try 7 instead and you'll see the character walking faster.

For the animation doesn't start nor end briskly we can use the BlendIn and BlendOut options, where we can set the number of frames used to blend actions and in this way doing a more natural transition between them.

Now oif you press ALT+A in the 3D Window you will see the walkcycle repeating over and over smoothly. Of course we have not seen anything really new up to now. Get back to the NLA window and add another action strip, this time choose "brazos" which animates the character's arms. This action is shorter than the walkcycle (21 frames) but we will also repeat it 4 times and will set the timeline range to 100 frames too (well, actually these parameters are already set in the sample blend but you can always check it by pressing "N" while keeping the mouse over the strip, ok ?). We can play with the number of repetitions, the start and end frame of the timeline range or adding Blendin or Blendout frames. If you test the animation you will see how the character wave its arms naturally as it walks. .

NLA Magic

This would be nothing if we were ot able to make the character displace from one place to another. To do this we have the "Use Path" and "Stride" options. If we parent the armature to a PATH curve and we activate the "Use Path" option, the action will fit to the armature displacement along the path accordingly to the "Stride" parameter. For instance if we set Stride=8 the armature will displace 8 PATH frames once the action cycle is finished (remember that the path length is set in the animation buttons).

To see this working in the sample blend file, change the scene to PATH and press ALT+A in the 3D Window. You will see our fat fellow walking among some boxes. I have modified the BlendIn and BlendOut of the walkcycle action and also the Speed curve of the path (check the IPO window) to make the movement linear (without acceleration in the beginning and end ). You can see that the NLA strip's properties are different in each scene.

A little extra spice

There is a couple of options we haven't commented yet: "Add" and "Hold".

By activating "ADD" we can add the effects of the precedent actions gaining wider and longer movements (if the actions act over the same bones).

"Hold" is used to "freeze" the last frame of an action once reached. For instance we could have set up a "TurnHead" action and set the NLA strip to "Hold" so as the character kept its head turned for the rest of the animation.

Well, there is no much left to say about NLA and armatures. Now it is time for you to experiment and to show the results of your work to the world. One last recommendation though: it is possible to edit keyframes in the NLA window. We can duplicate frames (shift+D), grab keyframes (G key) and also erase keyframes (X key), but if you do erase keyframes be careful because they will be lost forever from the currently selected action. So be careful and always convert to NLA strip before erasing anything.

Bye and good luck blenderheads !!