From 1cbe5d7708fd8b47afd9708f484eff453db3401e Mon Sep 17 00:00:00 2001 From: bd_ Date: Tue, 1 Oct 2024 20:01:03 -0700 Subject: [PATCH] fix: ignore blendtree-only layers when determing animator WD state --- Editor/MergeAnimatorProcessor.cs | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/Editor/MergeAnimatorProcessor.cs b/Editor/MergeAnimatorProcessor.cs index 50efd939..b0af81ac 100644 --- a/Editor/MergeAnimatorProcessor.cs +++ b/Editor/MergeAnimatorProcessor.cs @@ -246,6 +246,18 @@ namespace nadena.dev.modular_avatar.core.editor var stateMachineQueue = new Queue(); foreach (var layer in controller.layers) { + // Special case: A layer with a single state, which contains a blend tree, is ignored for WD analysis. + // This is because WD ON blend trees have different behavior from most WD ON states, and can be safely + // used in a WD OFF animator. + + if (layer.stateMachine.states.Length == 1 + && layer.stateMachine.states[0].state.motion is BlendTree + && layer.stateMachine.stateMachines.Length == 0 + ) + { + continue; + } + stateMachineQueue.Enqueue(layer.stateMachine); }