1
$\begingroup$

Edit: Original context moved to the bottom.

As I see it I have two problems:

Problem 1

Ignoring IK for a second, I need to be able to create multiple stashed NLA tracks. One with "Replace" or "Combine" blending (the base animation) and every other track with "Add" blending (the additive animations).

The issue I have is in creating these additive tracks.

Because they're additive, I need to be able to create their keyframes "on top of" an existing animation as a base, or reference. This is especially important when two hands are closely tracking an object.

In my case the base is the end pose of the Equip animation when the crate is raised.

In other words, I need to be able to add keyframes that only record the relative transform rather than the absolute transform applied to the bone. If I used the i menu I seem to only get options that apply the absolute transform, so the pose ends up being doubled when added to the base animation.

Whatever the solution, it does need to be exportable to glTF. It can't depend on constraints or drivers.

Problem 2

Because I have hands attached to arms, tracking an object, I use IK. Baking IK works well for the base animation because it's not additive.

When I attempt to bake an NLA track with "Add" blending I get the base animation baked in as well. This means the pose ends up being doubled when added to the base animation.q

If we can find a solution to Problem 1 I may be able to just manually bake keyframes from IK. But that depends on the solution.

Context

My current predicament:

I'm making a game and animating in blender. I have a crate object with a single bone. I have a linked armature from my player arms blend file with a library override.

The player arms and hands are IK constrained to track an empty each, called HandTarget.L/R. These are parented to a single bone that in-game is retargeted as the bone of the item being held. Let's call it ItemTarget. The empties provide offset and rotation for the player hand, and allow for fine control while animating.

I have an equip animation, which is baked from an IK animation of the ItemTarget target bone moving up into view. This is my base animation.

I want to add additive idle animations, use animations, etc.

If I'm not using IK and the idle animation is simple this is fine. I reset to rest pose and guess at the rotations required to get the desired outcome when added to the equipped pose. It's not accurate but for simple one-handed items it's fine.

But with two hands accurately tracking a held object I need to use IK.

And to use IK I need to bake my idle animations as additive animations on top of my base equip animation.

I've spent about 3 days attempting this in various ways and doing as much research as I can, but everything I've tried so far has either been badly mangled or has my base animation baked in.

Is there any way to do this in blender? I've also paid for and tried the Animation Layers addon but it has the exact same problem with IK baking from what I've found.

A screenshot of the setup

$\endgroup$
6
  • $\begingroup$ It sounds to me like you want to use an existing animation for most bones, but constrain to IK for the arms. Is that correct? If this is the case, duplicate armature, give it IK constraints, assign it the idle action (and mute all other actions), bake action with clear constraints and visual keying, rename action, assign to original armature, stash the action, and delete the duplicate. You may or may not want to delete keyframes on the IK constrained bones before the bake. $\endgroup$
    – Nathan
    Sep 22 at 2:05
  • $\begingroup$ Hi Nathan I don't think that's what I'm after. I've updated my question to clarify the two problems I'm facing. Hope that's a bit clearer. $\endgroup$ Sep 22 at 3:14
  • $\begingroup$ Also found this ancient blenderartists thread with the same issue and no replies. Might add some useful context. His solution doesn't work in my case as noted on the thread. $\endgroup$ Sep 22 at 4:10
  • $\begingroup$ So my understanding is, given animations A and animations B, you want animation X such that A +X = B? The general technique described there is accurate. Are you baking? Are you baking visual keys with clear constraints on both actions before trying to bake B-A? $\endgroup$
    – Nathan
    Sep 22 at 4:29
  • $\begingroup$ Cheers @Nathan I've replied on BA. General gist is: I failed to get your method working. Not sure what I did wrong. I did manage to get quite a long way towards what I needed with a single armature, by: 1. Adding an NLA track with add blending above my base animation 2. Switching to tweak mode (pressing Tab with the add track selected) 3. Manually entering keyframes where needed using loc/rot 4. Turning off the IK constraint, and muting the base animation NLA track 5. Baking the add layer into a replace layer $\endgroup$ Sep 26 at 2:41

0

You must log in to answer this question.

Browse other questions tagged .