Search Unity

Resolved Layer blending issues with animations from Mixamo

Discussion in 'Animation' started by Flylake, Apr 15, 2022.

  1. Flylake

    Flylake

    Joined:
    Feb 26, 2014
    Posts:
    12
    I´ve been developing a pet project of mine for some time and have run into some issues with the animations.

    I downloaded some basic assets from Mixamo to replace the current "programming art" and as an attempt to educate myself on the Mecanim system and how to blend animations.

    However, after some time tinkering, I´ve run into something of a wall...

    Animations are essentially a collection of keyframes that apply localized rotations/translations to 'bones'.
    And layer blending is merely the process of masking which bones get which data from a series of animation frames.

    I attempted to merge two pretty simple animations, one is a running animation, and one is firing a bow animation.

    And while not being masked or blended they both work fine. However, the differences in the initial hip bone orientation (which is by default the root bone), for the animations cause the top-body animation to distort, meaning that the character no longer fires straight forward, but rather off to the side.

    I´ve tried both generic and humanoid rigging (although since it's imported from Mixamo I'm guessing 'Generic' in this case is probably pretty close to Humanoid anyway)

    To my understanding, there isn´t really anything that can be done about this short of altering the animations themselves... Things are working as they should, But it just isn´t possible to achieve my desired end result without some external systems forcing bone overrides; which begs the following question:

    "Can animations with different root-bone orientations even be seamlessly blended?"

    I´ve pondered a few solutions to my problem below

    Option0) Manually create a "Run-And-Shoot" Animation and use this instead when attempting to run and shoot and skip the whole blending nonsense

    Option1) Import model and animations to a 3D modeling software and add an intermediate bone between hips and spine (force this bone with orientation 0,0,0, and no skin weight) and making this the new root, this would mean that animations could be split into upper/lower body and the 'first bone' in the animation would always originate from a Vector3.Zero Orientation

    Option2) Import model and animations to a 3D modeling software and cull information from nodes that affect the other body part, I.E Cull lower-body information for an animation that only plays on the upper body. There are some issues with this solution as I would likely still want the 'full-version' of the animation to play if the other body part isn´t being overridden currently

    Option3) Manually override bone transform (using software such as Final-IK) to achieve desired results

    Option4) Quit, admit defeat and step away from the development business because I'm just too damn stupid to solve this on my own

    Option5) Get a betting animation package that is designed to be blendable (is this even a thing?)

    I would appreciate it if someone could shed some light on this issue for me, and maybe share some best-practice solutions for solving problems like this.
     
  2. Flylake

    Flylake

    Joined:
    Feb 26, 2014
    Posts:
    12
    UPDATE!

    Situation was resolved by throwing money at the problem.

    I went with Option 3 and bought Final IK during the sale