Animation Layers

by Tal Hershko in Scripts and Addons

Animation Layers v1.9

How does it work?
When Adding the first Animation layer, the addon will create a base layer with a new action inside of it.
If you are currently already animating an action, then your current action will become the base layer and another new empty layer on top of it will be added automatically.

Each object and armature will have their own separate layers.

When you change or create a new action either from the action editor or directly from Anim Layers UI, it will update and load it automatically into your current selected Layer.

Layer Icons

 Add or remove layers.

 Move layers up or down.

 Mutes Layer. When Turned off the layer doesn't influence the animation.

 Lock Layer. When Turned on, The properties of the layer will not be visible and the layer's action will not be activated when selected.

 Solo Layer. View only the Layer with the star turned on (Mutes all other layer).
*Animation Layers are using a different solo property then the Solo property in the NLA. it is better to avoid using NLA's Solo while using Animation Layers.

Influence - Influence of the layer on the result of the animation. It is using the NLA's strip influence property. If you want to animate it then you will need to turn on the key (+) icon. 

Merge / Bake
Bake Type: The new Bake Type of Anim Layers can now also bake upwards, and can merge additive layers into a new additive layer. It also has a faster smart bake.
The old method (Blender NLA's Bake), is also still available from the options, but with its limitations, it can only bake/merge down. However it has also a clear constraint option. and might work better in some cases.

Bake Operator: Bake into a new layer on top of the selected layer, or Merge the layers, which will remove the old layers and merge them into one baked layer.

Bake Direction: Bake from the current selected layer downward or upward, or bake them all.
Only Bake Type of Anim Layers can bake upwards, and can bake/merge additive layers into a new additive layer.
When baking upward from an additive layer, it will bake up to the top or until the next Layer with a "Replace" Blend Mode.

*It is possible to exclude layers from a bake also by Muting them with the eye icon.

Clear constraints - Available only with Blender's Bake, Will include the constraints influence and remove it after bake.

Merge Fcurves Modifiers- When selected the Fcurves modifiers such as noise and cyclic will be included in the bake and turned off after the bake (but not removed). When deselected they will not be included in the bake but will be kept as Fcurves modifiers

Smart bake - use If you want to keep the same amount of overall keyframes instead of a keyframe per frame.
Smart bake will restore the keyframe values, time, interpolation and handle types of the overall Baked Layers. However it will not restore the tangent handle values.
For a better precision it is better to avoid smart bake, and instead bake on every frame, Hopefully soon it will be able to recreate the new handle values of the new curve also with smart bake.

If you are animating with Cyclic Fcurve modifiers, then using Smart Bake together with Merge Fcurve Modifiers will duplicate the keyframes along the time range and remove the Cyclic modifier.

Only selected Bones- when selected then only the selected bones during the merging will be baked. When turned off, then every bone .that has keyframes in all the merged layers will be baked

Bake Time Range - Anim Layers Bake is always using the time range from the Timeline editor

Duplicate Layer - Duplicates the layer and its action. Use the  link button to keep the action either linked or with a new user.

Active action - You can select the action directly from the Animation Layers UI, as well as from the action editor.
The active action will load automatically into the selected Layer.

Select Bones in Layer An operator, that select all the bones that have keyframes in the current selected layer

Reset key Layer - adds a reset key (mostly value of 0) to the selected bones or object in the current layer.
When using the hotkey alt+g/r/s in Blender to reset the location/rotation/scale, it's resetting the values for the overall layers. When using Reset key Layer it will reset only the values in the current selected layer

Cyclic Fcurves -  It's possible to add cyclic Fcurves to your actions directly from the addon UI. It is similar to using shift + E in Blender's animation editors, however it works in the 3d viewport and on per selected object or armature bone. If you have other modifiers such as noise modifier, it will add the Cyclic modifier bellow the other modifiers.

Keyframes from Multiple Layersadds a channel group called "Anim Layers" with a channel for each layer and its overall keyframes. It's currently available only from the Timeline and Dope sheet editors, and still not available from the graph editor.
The keyframe channels are locked by default. Use Edit to unlock them and edit keyframes from multiple layers.

Type: choose how to display the keyframes from the other layers

Only selected Bones: will make only the keyframes of the selected bones from the rest of the layers visible.

It is possible to exclude layers when viewing multiple using the Layer's Lock icon.


NLA in the background
If you turn Animation Layers on an object that already has tracks inside the NLA editor, a message box will appear. You can choose either to remove the NLA Tracks and have a fresh start, or to use them as Animation Layers. 

Tracks that have more or less then a one strip will be always locked within Animation Layers.
Animation Layer = one Track, one Strip, one Action

Animation layers are using NLA track's editor blending modes.
The Base layer will automatically get a "replace" blending mode, and every layer on top of it will get automatically "additive" blending mode.
It is better to avoid using the NLA editor when using the animation layers, in order to avoid any conflicts.

For every animation layer that is created, there is a new NLA track with 1 strip and 1 action created.
The length of the stip and action is always getting automatically updated with the length of your scene.

Inside the NLA editor there will be a track in the top of all the channels, which always substructs the current layer action that is being edited, in order to avoid double influence of the current action and avoiding NLA's tweak mode.

Current Known Issues and limitations that need to be solved.

  • If you load a completely different action on top of your animation and your character explodes , then you probably need to change the blending mode to "Replace". Only actions that were created in an additive layer can be used in additive layers.
  • Influence property - When deleting the keyframes directly from the influence slider (and not from the animation editors) it will update only after you moved to a new frame in the timeline.
  • If you have extra properties in your rig, it is better not to keyframe them above the first layer, since NLA will calculate them as well and create strange results
    It is better to keyframe only the location, rotation and scale channels in the secondary channels.
  • Push down operator in the action editor can create conflicts between the NLA editor and Animation Layers. It is better not to use it or any other operator related to the NLA while using Animation layers, until i'll manage to make them work together with the Addon.