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
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
Add comment
All about bugs
View bugs we have successfully reproduced, and vote for the bugs you want to see fixed most urgently.
Latest issues
- VFX Graph link contrasts fail WCAG guidelines
- D3D12 PSO disk cache feature crashes if paths contain non-ASCII characters
- Different colors are present when Alpha channel is unclamped
- Visual Effects Forums link leads to generic Unity Forums
- The dithering node returns a blocky effect when the Render Scale is set to some values below 1
Resolution Note:
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.