Additive Layer Disparity: Maya & Unity

maya
animation

#1

Hi,

So, the problem is the discrepency I’m seeing between animations in Maya and Unity.

We have a simple, static pose in Maya, with an additive Breathing cycle layer.

In the Gif, the white woman has the Pose and Breathign Cycle exported as separate FBXs, then the Breathing is applied as an additive layer in Unity.

The brown woman has the entire thing exported as a single FBX from Maya and played in Unity.

You can see how very different the chest position/movement range is with the Layered-In-Unity version.

Can anyone shed any light as to why this might be?

AnimationDiscrepency001


#2

Are you using retargeting at all? Are the animation compression settings any different?
Does the static pose line up with frame 0 of the fully exported animation?


#3

Hey thanks for replying.

No, there’s no retargeting, nor any differences in the compression settings. They’re all set to Off.

And lastly, no, none of these FBXs begin at frame 0.

Static Pose Only is on frames 7-10, with a neutral reference Pose at 0 (In case it was necessary).
Breathing Cycle Only is frames 10-40, with a neutral reference Pose at 0.
Breathing & Pose Together is frames 10-40, of their respective FBXs. (So that the breathing layer baked in definitely matches the Loop of the Breathing Only FBX)


#4

I’ve seen Unity do strange things with leaf joints on rigs that have been declared ‘humanoid’ (specifically, cape joints and such). I’ve had luck switching the rig type to ‘generic’, if you can sacrifice the humanoid functionality.


#5

Same.
Its been a year or so (maybe longer now?) since I last really dug into it, but I remember encountering situations where it appeared that Humanoid was still technically retargeting my animations even though the source and target skeletons shared the same avatar definition.


#6

Hey,

I did test the rigs declared as ‘humanoid’, just to try out the in-built IK stuff. It’S useful, but obliterates the animation of half out bones. So, we aren’t using it.

Everything’s set to ‘generic’.

Honestly, I’ve made some progress though.

Been testing the Rotation Oder. the API and the Internets state Unity’s rotation order is ZXY.
We were animating on XYZ order in Maya.

Interestingly we get the least (but not zero) disparity when using ZYX in Maya once imported into Unity.