Misalignment with Additive Animations?

Shouldn’t this base animation:

Blended additively with this additive animation:

Which uses this base reference pose:
image

Result in this?:

Because that isn’t happening in-engine. Instead, I’m getting a very undesirable misalignment of the left hand onto the magazine (ignore the weapon itself not being animated, that’s not the issue):

Captured with this setup:


image

What am I getting wrong? Why isn’t this working?

(For context, this all started because I wanted to be able to play my reload animation with another movement-only animation playing on top, for equipping/dashing/swaying the weapon, etc.)

You need to set up an IK system.

And no, the engine is taking the forward hand position and calculation the animation based on that, which is why rotations are thrown off a smidg.

Adding IK on top of it would almost always correct any issue, so that’s how it’s normally handled.

Or, you could just bake out the animation from whatever you are using and use that as a single animation which will always be perfect.

Btw, try swapping the base and the additive around. Calcs will still be off, but maybe less / the hand shouldn’t fly off as badly.

Thanks for replying. I ended up fixing the issue just now, without IK. As you suggested the reason this was happening was that my additive animation included left-hand rotations (deviating from the identity pose), and that deviation was being added to the left hand which caused the misalignment. It would have been more obvious that this was also happening on the right hand, would the weapon not be attached to it. The additive animation I really needed was a completely non-animated character, in the identity pose, moving together with my weapon.

For future seekers, posting my approach:

The solution I used only works with my scenario - where the additive animation was in respect to my grip bone. This let me use this linked anim graph I built:

Using some bone copying and a dynamic additive blend node I was able to create an additive pose in-engine, without actually needing to create one in blender/other external software.

The final result looks like so:

1 Like