Search Issue Tracker

By Design

Votes

0

Found in

2017.2.2f1

Issue ID

1047141

Regression

No

The same animtion exported from MotionBuilder plays different in Unity

Animation

-

The keyframes of the legs were deleted in MotionBuilder and in the program, the legs do not move while when imported in Unity in .fbx format the character's legs move.

How to reproduce:
1. Open attached project "Animation Unity.zip" and scene "AnimTest"
2. Enter Play mode
3. Observe feet in Game view

Expected result: during the animation feet do not move
Actual result: during the animation feet moves

Reproducible with: 2017.5f1, 2017.4.8f1, 2018.3.0a7

  1. Resolution Note:

    This is expected since the skeleton in the rig model (mannequin.fbx) and the one used as a motion file (H_Talk_Stand_ex.fbx) are not identical. Humanoid is compensating for the differences in proportions between the two skeletons and their respective configuration poses. FootIK compensates for this difference by directly reaching for the original global foot position. If the leg is longer for example, this will cause a bend in the leg, in order to reach this original foot position. This movement is also caused by differences in the configuration pose. The Humanoid Configuration will take any “valid” pose (T-Stance) or else will try to make it valid by rotating joints, but this does not mean that the pose is “perfect”. It will be close, but not perfect. In this case, the mannequin.fbx is in a perfect T-Stance, but this is not the case with H_Talk_Stand_ex.fbx. Ideally, the H_Talk_Stand_ex.fbx motion file would use Copy From Other Avatar, using the “mannequinAvatar”, but this is only possible if both skeleton match, which is not the case here. When this is not possible, make sure both skeletons have a perfect T-Stance. Yes, leg joints are perfectly straight, no flex in them for the configuration pose. This varies depending on how your character was skinned, but in this case straight joints == full leg extension, so this is what you want. Bottom line, the pose needs to reflect the full extension of the leg (no flex, no hyper extension). Remember that even if this pose is perfect, differences in limb length (not the exact same skeleton) will impact the resulting solve when animation is applied.

    In order to have a perfect configuration pose, we recommend posing the character ideally before, if not after importing it into Unity. This will avoid having to correct the configuration pose repeatedly in Unity. The character’s pose is imported from the scene pose in your DCC application. So, the way to avoid this issue would be to pose the character in a perfect T-Stance before importing into Unity. The importer will take the scene pose and use it for both the Humanoid configuration pose and default pose in the Unity scene.

Add comment

Log in to post comment

All about bugs

View bugs we have successfully reproduced, and vote for the bugs you want to see fixed most urgently.