Animation Layers similar to 3ds Max?

Hi, everyone. I’m looking for something in Blender that works similarly to the biped layers tool in 3ds Max. It’s a tool to easily adjust full animations by making just a few keyframes that will affect the whole animation.

For example, say you have a full walk cycle. Then you add a layer, and in that layer you make one keyframe that tilts the head down and bends the spine over. This one change would then propagate to all keyframes in the animation below it, making a hunched over walk cycle. I hope that makes sense.

Anyway, is there a tool like this in Blender?

Thanks in advance.

Hey, Richard, thanks for the link. I’m working from a different vocabulary so it’s hard to find what I’m looking for.

The NLA Editor is more like the Motion Mixer in Max. So far I can’t get it to work how I need it to but I’ll keep fiddling with it.

I also struggled with the NLA editor. I think the add option there should do what you want, but it doesn´t work like it is supposed to do with bones I guess. It works if you move the bones in the Fcurves editor, but not in the 3d view. Anyone who got that to work - please correct me and tell me how to do it :slight_smile:

Anyway, I figured out a way without the NLA editor. I copy the armature. Then I add a copy rotation constraint with the offset option and copy from the original bone to the copy. Then it is super easy to add rotation to the existing animation.

I made a little script to fast add the constraints. So if you want to try this workflow:

  1. Copy the rig
  2. Delete the animation and contraints on the copied rig (from the pose menu in the header). I also clear all rotation and location (alt+R,alt+G)
  3. Select all bones in the copied rig (in pose mode) and try this script. I have a copy location constraint here too, but maybe you only need that on the hips bone. You have to change the name to what your rig is named in the second line (here named Armature).
import bpy


Arm=bpy.data.objects['Armature']
bones=bpy.context.selected_pose_bones


for bone in bones:
    bonename = bone.name


    bonecon =bone.constraints
    boneloc=bonecon.new(type='COPY_LOCATION')
    boneloc.target = Arm
    boneloc.subtarget=bonename
    boneloc.target_space = 'LOCAL'
    boneloc.owner_space = 'LOCAL'
    
    bonerot=bonecon.new(type='COPY_ROTATION')
    bonerot.target = Arm
    bonerot.subtarget=bonename
    bonerot.use_offset = True
    bonerot.target_space = 'LOCAL'
    bonerot.owner_space = 'LOCAL'
  1. On the model, change the armature deformer in modifiers to the copied armature instead.
  2. Animate the copied armature to add to your existing animation.

Richard is right, you would use the NLA.

The thing about the NLA is that until you convert a fcurve based keyframe animation into a strip, the new keyframes keep building up on the single strip. So you need to plan your animation as your would in 3DSMAx.

EXAMPLE:
Make some leg animation, click the snow flake icon (In the NLA window) to convert it into an NLA strip.
Now make some arm movement keyframes. Once again click the snow flake icon in the NLA to create a new strip with just ARM movement.
Now make your back bending animation. Click the snow flake icon and you will have three strips.

Once you have strips you can loop them, time stretch them and or relocate them in time. Each strip also has an influence ramp so you can ease into or out of a particular keyframe set.

In this example scenario, each strip controls an aspect of the entire animation. So you can refine and reuse as needed.

Press the N-KEY while your mouse is over the NLA window to bring up the numeric properties panel for the selected strip. Inside the panel you will find the options I mention.

Thanks, colorina. I’ll give that a try today.

Thanks, Atom. I figured out how to use the NLA Editor, in that I know I have to convert the animations to strips. I got them to transition between one another, but I would like to have more control over how much it transitions. I’ll try using the numeric properties.

The Add option sort of worked, but not how I expected. Also, it only worked in one direction–clip 1 on top of clip 2 affected the output animation, but if I swapped the clips, clip 2 on top of clip 1 did nothing. Also, the NLA Editor felt very clunky to me. It will take some getting use to.

I’ll work on this a little more this week. Thanks again for all the tips.