Search Issue Tracker
Won't Fix
Votes
0
Found in
2021.3.39f1
2022.3.33f1
6000.0.6f1
Issue ID
UUM-73640
Regression
No
Animation Rig gets mangled when nested AnimationLayerMixerPlayable is used
Reproduction steps:
1. Open the attached “BugRepro” project
2. Open the “Assets/LayerMixerIssue/Scenes/Spawner” Scene
3. Enter Play Mode
4. In the Game View, press the “React Timeline“ button
5. Observe the character
Expected result: The character’s Rig remains intact
Actual result: The character’s Rig is mangled/deformed
Reproducible with: 2021.3.39f1, 2022.3.33f1, 6000.0.6f1
Reproducible on: Windows 10, Windows 11
Not reproducible on: No other environment tested
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
- Crash on when D3D12RenderPass::SetupDeviceResources when opening FBX animation preview
- Serialization errors are thrown when "com.unity.render-pipelines.core" is added as a custom package and Graphics window is opened
- Character Joints unexpectedly rotate when a ragdoll is created using the Ragdoll Wizard
- Crash on GfxDeviceD3D11Base::DrawBuffersBatchMode when rendering the Scene view
- The shared EditorBuildSettings.asset file of symlinked projects is not updated when changing the order of the Scenes in Build Settings in one of the projects
Resolution Note:
This bug is coming from the way AnimationLayerMixer is implemented. AnimationLayerMixerPlayable is not meant to be used in a nested context.
An additive layer will set its input additive flag which will pull an additive pose from the AnimationClipPlayable.
Any subsequent AnimationLayerMixer if its input is set to override will reset this flag and pull a normal pose instead that will be applied as an additive pose which is why the rig appears broken.
Unfortunately changing this behavior is too risky as it would enable systems that do not support additive animation (like Timeline) to process additive animation and lead to more issues and possible regressions.
As a workaround An AnimationScriptPlayable with a custom IAnimationJob can be used to substract a pose input from the Timeline output so that the result is an additive animation applied as such.