Search Unity

Huge problem blending animations (center of mass thing?)

Discussion in 'Animation' started by mikesawicki64, Feb 24, 2015.

  1. mikesawicki64

    mikesawicki64

    Joined:
    May 12, 2014
    Posts:
    33
    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
     
  2. Mecanim-Dev

    Mecanim-Dev

    Joined:
    Nov 26, 2012
    Posts:
    1,675
    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
     
  3. mikesawicki64

    mikesawicki64

    Joined:
    May 12, 2014
    Posts:
    33
    Awesome, thanks for taking a look at this. -- Case 675090

    If there's anything you need plz let me know
     
  4. Mecanim-Dev

    Mecanim-Dev

    Joined:
    Nov 26, 2012
    Posts:
    1,675
    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.
     
    theANMATOR2b likes this.
  5. mikesawicki64

    mikesawicki64

    Joined:
    May 12, 2014
    Posts:
    33
    Ha! the only thing I didn't check, go figure : P

    Thanks a million, that did it.