From 26ea852d4250de8ca8d030d8433880afadd473c9 Mon Sep 17 00:00:00 2001 From: bd_ Date: Sun, 9 Mar 2025 16:26:53 -0700 Subject: [PATCH] refactor: use VirtualControllerContext.Controllers --- Editor/Animation/GameObjectDisableDelayPass.cs | 2 +- Editor/MergeAnimatorProcessor.cs | 2 +- Editor/MergeBlendTreePass.cs | 8 ++++---- .../AnimationGeneration/ReactiveObjectPass.cs | 6 ++---- Editor/ReactiveObjects/ParameterAssignerPass.cs | 3 +-- Editor/RenameParametersHook.cs | 2 +- .../ActiveAnimationRetargeterTests.cs | 2 +- 7 files changed, 11 insertions(+), 14 deletions(-) diff --git a/Editor/Animation/GameObjectDisableDelayPass.cs b/Editor/Animation/GameObjectDisableDelayPass.cs index 33e5b37f..d8542f2a 100644 --- a/Editor/Animation/GameObjectDisableDelayPass.cs +++ b/Editor/Animation/GameObjectDisableDelayPass.cs @@ -23,7 +23,7 @@ namespace nadena.dev.modular_avatar.animation var activeProxies = context.GetState().proxyProps; if (activeProxies.Count == 0) return; - var fx = asc.ControllerContext[VRCAvatarDescriptor.AnimLayerType.FX]; + var fx = asc.ControllerContext.Controllers[VRCAvatarDescriptor.AnimLayerType.FX]; if (fx == null) return; var nullMotion = new AnimationClip(); diff --git a/Editor/MergeAnimatorProcessor.cs b/Editor/MergeAnimatorProcessor.cs index eb1ea84a..9e579615 100644 --- a/Editor/MergeAnimatorProcessor.cs +++ b/Editor/MergeAnimatorProcessor.cs @@ -94,7 +94,7 @@ namespace nadena.dev.modular_avatar.core.editor var afterOriginal = sorted.Where(x => x.layerPriority >= 0) .ToList(); - var controller = _asc.ControllerContext[layerType]; + var controller = _asc.ControllerContext.Controllers[layerType]; var wdStateCounter = controller.Layers.SelectMany(l => l.StateMachine.AllStates()) .Select(s => s.WriteDefaultValues) diff --git a/Editor/MergeBlendTreePass.cs b/Editor/MergeBlendTreePass.cs index c03b6197..492011a7 100644 --- a/Editor/MergeBlendTreePass.cs +++ b/Editor/MergeBlendTreePass.cs @@ -43,8 +43,8 @@ namespace nadena.dev.modular_avatar.core.editor _asc = context.Extension(); _rootBlendTree = null; _parameterNames = new HashSet(); - - var fx = _asc.ControllerContext[VRCAvatarDescriptor.AnimLayerType.FX]; + + var fx = _asc.ControllerContext.Controllers[VRCAvatarDescriptor.AnimLayerType.FX]; foreach (var component in context.AvatarRootObject.GetComponentsInChildren(true)) @@ -132,8 +132,8 @@ namespace nadena.dev.modular_avatar.core.editor private VirtualBlendTree GetRootBlendTree() { if (_rootBlendTree != null) return _rootBlendTree; - - var fx = _asc.ControllerContext[VRCAvatarDescriptor.AnimLayerType.FX]; + + var fx = _asc.ControllerContext.Controllers[VRCAvatarDescriptor.AnimLayerType.FX]; var controller = fx.AddLayer(new LayerPriority(int.MinValue), BlendTreeLayerName); var stateMachine = controller.StateMachine; diff --git a/Editor/ReactiveObjects/AnimationGeneration/ReactiveObjectPass.cs b/Editor/ReactiveObjects/AnimationGeneration/ReactiveObjectPass.cs index 4ecc35b2..70391f70 100644 --- a/Editor/ReactiveObjects/AnimationGeneration/ReactiveObjectPass.cs +++ b/Editor/ReactiveObjects/AnimationGeneration/ReactiveObjectPass.cs @@ -40,7 +40,7 @@ namespace nadena.dev.modular_avatar.core.editor // Having a WD OFF layer after WD ON layers can break WD. We match the behavior of the existing states, // and if mixed, use WD ON to maximize compatibility. var asc = context.Extension(); - _writeDefaults = asc.ControllerContext[VRCAvatarDescriptor.AnimLayerType.FX]?.Layers.Any( + _writeDefaults = asc.ControllerContext.Controllers[VRCAvatarDescriptor.AnimLayerType.FX]?.Layers.Any( l => l.StateMachine.StateMachines.Any( sm => sm.StateMachine.AllStates().Any( s => s.WriteDefaultValues && s.Motion is not VirtualBlendTree @@ -593,9 +593,7 @@ namespace nadena.dev.modular_avatar.core.editor private void ApplyController(AnimatorStateMachine asm, string layerName) { var asc = context.Extension(); - var fx = asc.ControllerContext[ - VRCAvatarDescriptor.AnimLayerType.FX - ]; + var fx = asc.ControllerContext.Controllers[VRCAvatarDescriptor.AnimLayerType.FX]; if (fx == null) { diff --git a/Editor/ReactiveObjects/ParameterAssignerPass.cs b/Editor/ReactiveObjects/ParameterAssignerPass.cs index cb0b039f..fde64af2 100644 --- a/Editor/ReactiveObjects/ParameterAssignerPass.cs +++ b/Editor/ReactiveObjects/ParameterAssignerPass.cs @@ -3,7 +3,6 @@ using System.Collections.Generic; using System.Linq; using nadena.dev.ndmf; using nadena.dev.ndmf.animator; -using UnityEditor.Animations; using UnityEngine; using VRC.SDK3.Avatars.Components; using VRC.SDK3.Avatars.ScriptableObjects; @@ -203,7 +202,7 @@ namespace nadena.dev.modular_avatar.core.editor if (mamiWithRC.Count > 0) { var asc = context.Extension(); - var fx = asc.ControllerContext[VRCAvatarDescriptor.AnimLayerType.FX]; + var fx = asc.ControllerContext.Controllers[VRCAvatarDescriptor.AnimLayerType.FX]; foreach (var (name, _) in mamiWithRC) { diff --git a/Editor/RenameParametersHook.cs b/Editor/RenameParametersHook.cs index 2e4eed2e..39eb6ecd 100644 --- a/Editor/RenameParametersHook.cs +++ b/Editor/RenameParametersHook.cs @@ -381,7 +381,7 @@ namespace nadena.dev.modular_avatar.core.editor ); }).ToImmutableDictionary(); - var controller = animServices.ControllerContext[virtualized]; + var controller = animServices.ControllerContext.Controllers[virtualized]; if (controller != null) { ProcessVirtualAnimatorController(controller, remap); diff --git a/UnitTests~/ActiveAnimationRetargeterTests/ActiveAnimationRetargeterTests.cs b/UnitTests~/ActiveAnimationRetargeterTests/ActiveAnimationRetargeterTests.cs index ffa29e98..c42134bd 100644 --- a/UnitTests~/ActiveAnimationRetargeterTests/ActiveAnimationRetargeterTests.cs +++ b/UnitTests~/ActiveAnimationRetargeterTests/ActiveAnimationRetargeterTests.cs @@ -31,7 +31,7 @@ public class ActiveAnimationRetargeterTests : TestBase var created = retargeter.CreateIntermediateObjects(newParent.gameObject); retargeter.FixupAnimations(); - var fx = asc.ControllerContext[VRCAvatarDescriptor.AnimLayerType.FX]!; + var fx = asc.ControllerContext.Controllers[VRCAvatarDescriptor.AnimLayerType.FX]!; var clip = (VirtualClip) fx.Layers.First(l => l.Name == "retarget").StateMachine.DefaultState!.Motion; var curveBindings = clip!.GetFloatCurveBindings();