Search Issue Tracker

By Design

Votes

0

Found in

2018.3.0a1

2018.4.0f1

2019.1.0a1

2019.2.0a1

2019.2.2f1

2019.3.0a1

2020.1.0a1

Issue ID

1179527

Regression

No

AnimationLayerMixer messes up Animation when mixing 2 AnimatorControllerPlayables with the second playable set to Additive

Animation

-

Customer using AnimationLayerMixerPlayable to mix up AnimatorControllerPlayable, however, if one of the AnimatorControllerPlayable is set to additive using SetLayerAdditive API, the Animation messes up

To reproduce:

1. Download attached "AnimationLayerMixerPlayable.zip" project and open in Unity
2. Open "SampleScene" scene
3. Enter to Play mode
4. Observe that AnimationLayerMixer messes up Animation when mixing 2 AnimatorControllerPlayables with the second playable set to Additive

Notes:
- Mixing AnimatorControllerPlayable with AnimationClipPlayable works as expected
- Could not check for Regression on Unity 2017.4 because the project becomes Corrupted

Reproduced on Unity 2018.3.14f1, 2018.4.7f1, 2019.1.14f1, 2019.2.3f1, 2019.3.0b1 and 2020.1.0a1

  1. Response avatar

    Resolution Note (fix version ):

    We can't support animation controller on additive layer. There is too many edge case that won't works like root motion so we can't build a generic solution that will works for everybody.
    By definition an additive layer doesn't blend the animation like an override layer and need additive animation to works.
    The only supported way to generate additive animation is with an animation clip setup with a reference pose.

    That been said if the user want to experiment stuff on his own he can use animation jobs with AnimationScriptPlayable and build his own additive controller

    The playable connection would look like this
    LayerMixer.Layer1.input <--- MyScriptPlayable <-- Controller

    in your animation job for MyScriptPlayable you will need to iterate over all the animation stream values to subtract a reference pose to yield an additive animation stream.
    But there is no guarantee that it will work for your use case.

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.