Animation layers addon

Edit your animation or mocap data quickly using a standard animation layers UI and workflow directly in your 3D viewport.


Animation Layers is an addon that simplifies the work with the NLA Editor into a standard animation layers workflow. You can quickly select and edit each layer without the need to go into NLA’s tweak mode, and always seeing the end result while working on any layer.
Add or Remove Layers quickly, or control their Influence using NLA’s “Mute, Influence, Solo and its Blending modes” options.
When you are happy with your animation, you can always merge down your layers, which would bake all the layers from your current selected layer down to the Base layer.
If you want to keep the same amount of the overall keyframes after baking, then you can also use the smart bake option.

More details including “current known issues that still need to be solved” are in the blender market documentation page

Feel free and let me know what you think

5 Likes

watching the video I understood you are using NLA tracks. but how to do a track solo?
and how to override with the area not opened? (I need the same on the outliner too…I don’t find a way to select a collection)

Looks really interesting! Is there any documentation available? Edit: Oops, my bad! I hadn’t look up the Blendermarket link :sweat_smile:

I would recommend to work on a lower level, instead of using operators if possible. For example
bpy.data.collections[0].hide_viewport = True
To hide a certain collection, or whatever you need from the outliner (you would access directly the objects or collections)
If you really have to use an operator and in a certain area, which might not be open, then you can store an area in a variable like area_old, switch to the necessery area, do the operator with override, and then switch the old area back.
So for example something like this

    obj = bpy.context.object
    window = bpy.context.window_manager.windows[0]
    old_area = window.screen.areas[0].type
    screen = window.screen
    bpy.context.window_manager.windows[0].screen.areas[0].type = 'NLA_EDITOR'
    area = screen.areas[0]
    override = {'window': window, 'screen': screen, 'area': area}
    bpy.ops.anim.channels_move(override, direction=dir)
    
    bpy.context.window_manager.windows[0].screen.areas[0].type = old_area   

It’s not a clean way of achieving things, but it works. However I would recommend to avoid as much as possible tof using this method and to work on a lowerer level instead

Is it available for Blender 2.91? Also, is it available elsewhere outside the BlenderMarket (like Gumroad)?

Hi, yes. It works with Blender 2.91 as well and is currently available only in the blendermarket

1 Like

Oki, I guess I’ll have to create an account there then. Thanks!