Empty Animator changes humanoid pose on play
I'm struggling to use a humanoid animation, as the pose jumps to a different position when unity is played. Out of frustration, I deleted everything and started again, but got to exactly the same place.
I created a model, rig and simple right-arm wave animation in Blender. All works fine. I imported to Unity as an FBX. I set the rig animation type to Humanoid and Avatar to Create from this Model. I checked the Configuration and all the bones linked up correctly. I checked the import animation under the Animation tab and I can see the correct animation in the preview pane.
When I drop the model into a new scene, it looks correctly posed (default T Pose). When I play unity it stays correct. But if I set the Animator component's Controller field to a new, empty animation controller and play unity, now my model changes pose. The knees, elbows etc all have bends added to them.
What's causing this? The pose generated on play is not one I have created.
I noticed that if I choose Generic instead of Humanoid for the rig, this doesn't happen. But I am hoping to use Humanoid for later IK stuff.
Unity 2017.2.0p1. Blender 2.79
Thanks :) David
Answer by theANMATOR2b · Nov 30, 2017 at 09:59 PM
Confirm the avatar definition of the animation matches the avatar definition of the character.
Yes - the avatar is correct.
What I found is that an empty animation controller seems to create a different default pose. To get around this, I had to create an "animation" of the proper default pose and insert that into the animation controller.
I also got unexpected results if I used the mask function within the Animation Import tab. Unmasked bones behaved as expected, but masked bones animated to the alternative default pose, rather than just be left unchanged. Using a specifically defined mask (project>right click>create mask) and using it in the layers of the animation controller did work as expected.