NLA Additive Animation Layers: (Add/Subtract/Multiply)

Okay, I spent over a month re-writing this, multiple times. I think I'm mostly done now.
  • There was an error while using motion paths with how/when blender updates, causing them to not key correctly.

    Currently it fixes those keyframes correctly now but it may leave the pose in the incorrect visual change (just try to move the bone/object to update it correctly);
    It works but it’s best to just not try to animate with motion paths and layers.

    Also, if you animate with multiple objects, now you can animate them with layers for each, even if they aren’t selected (for example: animating empties using proportional editing).

  • Note: the toggle button is currently placed in the Info Header, because I want to always be able to toggle it, so that’s where I personally keep it. I will try to add an option to relocate it in the preferences window.

    • This version also includes a new version of the “Reset Layer Keyframe” button.
      Now, you can press Alt + G / R / S and it’ll run. There’s a slider next to the toggle button, for a range of 3 different values.
      You can blend between them if you want, as well as extend past the boundaries (100%) to overshoot the pose.

Additive_NLA_Layers.zip (15.3 KB) << edit: additive layer is bugged on 2.79 stable

There are still some small things to do before I say it's really ready, so I prefer to think of this as a version 2.0 beta, plus there's some new tools to add

There’s still a lot of debug and development code still laying around. It should be harmless but it leaves a possibility that a text message will be sent to the console, about a situation that the code isn’t set to fix but considers the possibility.

I’m planning to charge for certain/most tools, since the point of this free addon is the layered animation, and the other things are just a bonus.

  • ($) Made a layer baker that keeps keyframes but I gave up on it, a bit, and left it at only merging layers of the same blend type. So, for example, it can’t convert Replace to Add, and creates a separate strip for each type. It bakes scaled/repeating strips, so that’s something I guess.

    • Some more NLA controls, as well as a function to multiply values in a strip. For example, you could invert/double the offset of an additive layer, without having to duplicate the strip.
  • Also made a 2-part slow motion script [SlowMo] inspired by a feature from the Action Loader Addon

    • (free)
      Using a slider, you can dynamically slow down animation playback. This is useful for spotting issues in your animation.
      Blender doesn’t have a decent way of doing this correctly builtin, because if you just change the frame-rate, the animation gets blocky and doesn’t show you the transition between frames.
      The problem is this uses builtin the time-remapping option, which doesn’t allow you to insert keyframes correctly.
    • ($)
      This version actually changes the range of all animation data, allowing you to globally slowdown everything and be able to insert keyframes. You can apply the slowmo, or reset back to original timing, whenever you want.
    • I describe these as working for slow motion but they can also speed up animation, I just wouldn’t recommend it.
      • I plan to post the current version of both of these, along with video demonstration but if you want to try it now, you can purchase on gumroad for an older but working version.
  • Now that I got my script to work modularly, I can actually include the versions of things that I personally use, instead of clipping them for public usage. So, I can consider adding other tools I made, like.

    • Rig Layers panel, based on Rigify’s generated panel. Currently I use data from the Rigify and Bone Layer Management addons, but I’m now fairly certain that I’m competent enough to create my own data for this purpose, as well as import it from Rigify for people looking to use it with that.
    • buttons for quick motion paths generation
    • a usage for keyframe types, beyond just visibility
    • ability to quickly jump between keyframes (and just to start/mid/end of nla strips). There’s one addon I’m aware of that already adds the mid-keyframe jump but it’s slow, so I made my own.
If you run into issues, please let me know.
  • However, there’s one issue with the Alt +G/R/S reset that I’m very well aware of and can do nothing about:

    When your layers contain extremely small decimal values (like .000012068), when they’re added together and applied to the current keyframe, the value is either inserted or read incorrecty.

    The math should be something like (.000012068 + -.000012068 == 0)
    but the result is more like (.000012068 + -.000012068 == .000000513)

    The resulting difference is VERY minute but it’s a difference none the less, and your poses will show as something like 0.0001 instead of the 0.0 you would expect.

If you know how to solve this, please feel free to tell me.

The lines you would be looking at to try to fix it yourself would be around #1163-1175 (get) and #1229-1241 (set)

2 Likes