Huge problem blending animations (center of mass thing?)

My question is, how can we ensure our character will always end up at the same position of a scripted animation while using mechanim to blend between idle / walk / etc /etc. — point a to point b and back with additional animations

We have 1 character in t-pose, no animation. This FBX is configured (humanoid) ((all bones mapped properly)) and is the avatar for all other animations.

We import another FBX (same skeleton/character) with just an idle animation. Again with a walk cycle - both are humanoid, using the t-pose avatar definition.

Mechanim is blending between these anims based off of bools (if player taps, if animation is finished, etc). The problem is that it seems to be shifting the characters position because the center of mass between the 2 anims are different. - this slight shift can even be seen in the animators preview window when previewing the transition.

IE - the character has “location a” at 0,0,0 and “location b” at 20,0,20. if the player taps on “location b”, the character walks over there. If the play taps again, the character walks back to “location a”. The problem is that the character doesn’t end up at 0,0,0. She’s slight off her mark, at something like 0.05,0,0.05 - (Mechanim?) has adjusted her mesh based off of her center of mass? The t-pose, idle, and walk cycle DO NOT have x and z translation keys on her hip, we are moving her position via an animation clip, which is why I’m pretty sure its Mechanim and center of mass or w/e

This is a huge problem: if the player taps between location a and location b just a few times, let alone many, she becomes further and further away from her mark - like it’s additive or something

Thanks, hopefully someone has some insight / workflow ideas

Please log a bug with your project, can be hard to find exactly what could be the source of this issue.
Send me your case number once you have it.

Thanks

Awesome, thanks for taking a look at this. – Case 675090

If there’s anything you need plz let me know

Hi mike,

So I did take a look at your project and the reason why it doesn’t work is because there is a bug in the root motion computing when the animation clip has Root transform position baked into pose ON. The bug was fixed in 5.0.

In the meantime since you are using a mix of two component and the Animation component is taking care of the root motion you should simply uncheck Animator.applyRootMotion, this way you will be sure that the animator component won’t affect your root game object.

1 Like

Ha! the only thing I didn’t check, go figure : P

Thanks a million, that did it.