Need help with additive animation

I have a rigged hand model which I bought from Turbosquid. I don’t know much about Maya / animation / rigging so I’m kinda fumbling through trying to achieve something here, and I’m a bit stuck.

I want to be able to control different parts of the rig independently. Let’s say I want to be able to control the fingers independently. So I’ve created an animation (just a pose really, in each case) for these three cases:

  • hand flat
  • first finger curled
  • second finger curled

My understanding is that I want to combine animations using the ‘Apply Additive’ node, and I’m driving them by variables like this:

https://i.imgur.com/dCFZMyK.jpg

However, when I do this, some crazy warping occurs. Here is a video showing what happens when I first increment Finger1CurlAlpha, and then Finger2CurlAlpha as well, and then remove each one in the reverse order:

[video]https://i.imgur.com/6w9Oyhk.mp4[/video]

I’ve zoomed way out (so you can’t see the hand in its neutral/flat pose) so that you can see how intense the mesh distortion is.

Without really knowing what I’m doing, my feeling is this might be to do with the rest pose for the mesh.

Here is what the mesh looks like in Maya:

https://i.imgur.com/TOZM9xk.jpg

And here is what it looks like when I import it as a Skeletal Mesh into UE4:

https://i.imgur.com/pdoi9Ke.jpg

So it’s flipped. However, when I import animations, they are the correct orientation:

https://i.imgur.com/JYQD4Lv.jpg

So my guess is that the person who made this model flipped it over and reoriented it at some point in the process, which means that these transformations are included in every animation. So that even though I’m only animating one finger bending, the whole rig has lots of other transformations baked into it at that point, so when I try to use them additively, it’s going crazy. Of course, I might be way off base here, because I really don’t know what I’m doing.

I’ve tried doing various things in Maya to fix this, for example doing Constrain->Set Rest Position on all the constraints, but that doesn’t seem to have helped.

Is there anyone out there who can help me figure this out?

Well there are two types of animation. Additive and Absolute.

Additive will take the current state and “add” the animation data based on a reference pose. With out seeing the asset in full the type of additive of the animation can cause strange behavior but based on the description of what you want to do it sounds that Absolute would work better for you.

“I want to be able to control different parts of the rig independently.”

Absolute animation will replace the current state of a assigned parent joint with whatever is contained with in the animation data set and can be layered starting from the toes to the top of the head in a progressive manner.

For example you can have a layer for locomotion followed by a layer for action states to the torso followed by a layer for things like eye blinks, facial expressions or even lip sync using clusters.

In this case the node to use is Blend per Bone where you can target the blend to occur at the selected joint with in the animation migration path of the animgraph

As for the strange behavior of the animation example it could be a few things but as a guess keeping in mind that additive will take the current state and add animation to the rig but if the skeleton has been non-uniformed scale, say the scale is set to 100%,110%,90%, then the animation as an additive would be added to the scale values progressively increasing and decreasing the scale of the object that it is bound to it. .

Did you for any reason change the scale of the hand in Maya?

The fact that there is some strange things going on when importing the arms is a problem you should be fixing first in any case.

1 Like

Thanks so much for this explanation, it’s very helpful.

I haven’t changed the scale (or anything else) in Maya, but perhaps the person who made the asset has done so somewhere. I’m finding Maya really hard to navigate and understand (I’ve been using Houdini and Modo for everything up to this point) so I’ve got a bit of a learning curve ahead of me understanding how this rig has been put together.

However, I’ve just had a quick go at using ‘Layered blend per bone’ and indeed it does seem to be what I need - thanks! Although I’d love to understand why the model has different orientations for the skeletal mesh and the animations, it doesn’t actually seem to matter right now, I hope.

This is a topic I would really like to learn about, are you able to recommend some resources/tutorials for learning these aspects of animation in UE4? It seems like something I need to get my head around for some stuff coming up in this project.