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
- Error “Shader error in 'YSCloudCover': call to 'tex3D' is ambiguous at Assets/YSCloudCoverText.shader(606) (on d3d11)“ is present when compiling tex3D shader with DXC
- Placeholder asset is not loaded with Advertisement Legacy sample when using the latest version of the package
- Addressables content build fails but the Player build is successful when building a development build
- Out-of-bounds memory access with multiple CanvasRenderers under a Canvas when using Mesh API
- Inspector tries to access file after it was deleted when the file was locked in Inspector window
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.