Change the way animations masks work

Hello, fellow unity developers,

I wanted to bring to light something (I hope) many of you have run into a problem with - the way Avatar masks combine animations. I think the problem is that the bones are not just copied as you would expect, just attached to the parent bone and inherit all its rotations without an option to disable it! But you know a video is worth a million words, so here it is:

On the left is the hacky way I have done it to show how I think it should work, on the right is the way Unity does it. I wouldn’t be bothered by it if my way was perfect, but it’s must be done in LateUpdate, so you lose the ability to do IK and for now, it works only with one layer!

Am I missing something, or has Unity made a mistake in the way the animations are combined? It doesn’t work this way in Unreal (at least as I can remember), there the animations are combined as on the right.

We have noticed this strange behaviour too while working on our AI. And solved it like you, fix it in late update.

Actually, we use a combo of manipulating transforms in LateUpdate and additive animations. Additive animations are a plus since the transforms are not incorrect in the Update methods, which makes it less error prone. Here is our method in action.