From f0fcbb66b101abf42c8e8464c23516a45367454b Mon Sep 17 00:00:00 2001 From: bd_ Date: Wed, 2 Apr 2025 19:39:34 -0700 Subject: [PATCH] fix: animated parameters in merge motion aren't renamed (#1537) * fix: animated parameters in merge motion aren't renamed Closes: #1536 --- .github/ProjectRoot/vpm-manifest-2022.json | 4 +- CHANGELOG-PRERELEASE-jp.md | 2 + CHANGELOG-PRERELEASE.md | 2 + CHANGELOG-jp.md | 2 + CHANGELOG.md | 2 + Editor/RenameParametersHook.cs | 15 +- Runtime/ModularAvatarMergeBlendTree.cs | 2 +- .../RenameParametersTests.cs | 38 ++ .../RenamesParameterCurves.anim | 122 +++++ .../RenamesParameterCurves.anim.meta | 8 + .../RenamesParameterCurves.controller | 78 ++++ .../RenamesParameterCurves.controller.meta | 8 + .../RenamesParameterCurves.prefab | 421 ++++++++++++++++++ .../RenamesParameterCurves.prefab.meta | 7 + package.json | 2 +- 15 files changed, 696 insertions(+), 17 deletions(-) create mode 100644 UnitTests~/RenameParametersTests/RenamesParameterCurves.anim create mode 100644 UnitTests~/RenameParametersTests/RenamesParameterCurves.anim.meta create mode 100644 UnitTests~/RenameParametersTests/RenamesParameterCurves.controller create mode 100644 UnitTests~/RenameParametersTests/RenamesParameterCurves.controller.meta create mode 100644 UnitTests~/RenameParametersTests/RenamesParameterCurves.prefab create mode 100644 UnitTests~/RenameParametersTests/RenamesParameterCurves.prefab.meta diff --git a/.github/ProjectRoot/vpm-manifest-2022.json b/.github/ProjectRoot/vpm-manifest-2022.json index 2950c945..19bb1cf5 100644 --- a/.github/ProjectRoot/vpm-manifest-2022.json +++ b/.github/ProjectRoot/vpm-manifest-2022.json @@ -4,7 +4,7 @@ "version": "3.7.4" }, "nadena.dev.ndmf": { - "version": "1.7.0" + "version": "1.7.2-rc.0" } }, "locked": { @@ -19,7 +19,7 @@ "dependencies": {} }, "nadena.dev.ndmf": { - "version": "1.7.0" + "version": "1.7.2-rc.0" } } } \ No newline at end of file diff --git a/CHANGELOG-PRERELEASE-jp.md b/CHANGELOG-PRERELEASE-jp.md index 4051fa2b..bb804059 100644 --- a/CHANGELOG-PRERELEASE-jp.md +++ b/CHANGELOG-PRERELEASE-jp.md @@ -10,6 +10,8 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ### Added ### Fixed +- [#1537] アニメーターパラメーターをアニメーションさせるカーブが、`Merge Motion` コンポーネントを使用して追加された場合、 + `Rename Parameters` によって更新されない問題を修正`` ### Changed diff --git a/CHANGELOG-PRERELEASE.md b/CHANGELOG-PRERELEASE.md index 64925122..8bf72baf 100644 --- a/CHANGELOG-PRERELEASE.md +++ b/CHANGELOG-PRERELEASE.md @@ -10,6 +10,8 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ### Added ### Fixed +- [#1537] Curves which animated animator parameters, when added using a `Merge Motion` component, would not be updated by + `Rename Parameters` ### Changed diff --git a/CHANGELOG-jp.md b/CHANGELOG-jp.md index dd892c5a..a66c7731 100644 --- a/CHANGELOG-jp.md +++ b/CHANGELOG-jp.md @@ -11,6 +11,8 @@ Modular Avatarの主な変更点をこのファイルで記録しています。 ### Added ### Fixed +- [#1537] アニメーターパラメーターをアニメーションさせるカーブが、`Merge Motion` コンポーネントを使用して追加された場合、 + `Rename Parameters` によって更新されない問題を修正`` ### Changed diff --git a/CHANGELOG.md b/CHANGELOG.md index f4bd39f8..d788281c 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -13,6 +13,8 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ### Added ### Fixed +- [#1537] Curves which animated animator parameters, when added using a `Merge Motion` component, would not be updated by + `Rename Parameters` ### Changed diff --git a/Editor/RenameParametersHook.cs b/Editor/RenameParametersHook.cs index 31846ccd..9d6d05f9 100644 --- a/Editor/RenameParametersHook.cs +++ b/Editor/RenameParametersHook.cs @@ -387,7 +387,7 @@ namespace nadena.dev.modular_avatar.core.editor break; } - case IVirtualizeAnimatorController virtualized: + case IVirtualizeAnimatorController or IVirtualizeMotion: { var mappings = paramInfo.GetParameterRemappingsAt(obj); var remap = mappings.SelectMany(item => @@ -402,7 +402,7 @@ namespace nadena.dev.modular_avatar.core.editor ); }).ToImmutableDictionary(); - var controller = animServices.ControllerContext.Controllers[virtualized]; + var controller = animServices.ControllerContext.Controllers[component]; if (controller != null) { ProcessVirtualAnimatorController(controller, remap); @@ -411,17 +411,6 @@ namespace nadena.dev.modular_avatar.core.editor break; } - case ModularAvatarMergeBlendTree merger: - { - var motion = animServices.ControllerContext.GetVirtualizedMotion(merger); - if (motion is VirtualBlendTree bt) - { - ProcessBlendtree(bt, paramInfo.GetParameterRemappingsAt(obj)); - } - - break; - } - case ModularAvatarMenuInstaller installer: { if (installer.menuToAppend != null && installer.enabled) diff --git a/Runtime/ModularAvatarMergeBlendTree.cs b/Runtime/ModularAvatarMergeBlendTree.cs index a0b7b81d..e2bdd8d2 100644 --- a/Runtime/ModularAvatarMergeBlendTree.cs +++ b/Runtime/ModularAvatarMergeBlendTree.cs @@ -1,7 +1,7 @@ #if MA_VRCSDK3_AVATARS using System; -using API; +using nadena.dev.ndmf.animator; using JetBrains.Annotations; using UnityEngine; using Object = UnityEngine.Object; diff --git a/UnitTests~/RenameParametersTests/RenameParametersTests.cs b/UnitTests~/RenameParametersTests/RenameParametersTests.cs index 0b2bef55..ed70112b 100644 --- a/UnitTests~/RenameParametersTests/RenameParametersTests.cs +++ b/UnitTests~/RenameParametersTests/RenameParametersTests.cs @@ -9,6 +9,7 @@ using nadena.dev.modular_avatar.core.editor; using nadena.dev.ndmf; using nadena.dev.ndmf.animator; using NUnit.Framework; +using UnityEditor; using UnityEditor.Animations; using UnityEngine; using VRC.SDK3.Avatars.Components; @@ -361,6 +362,43 @@ namespace modular_avatar_tests.RenameParametersTests Assert.IsFalse(expParams["a"].networkSynced); } + + [Test] + public void RenamesParameterCurves_InMergeAnimator() + { + var prefab = CreatePrefab("RenamesParameterCurves.prefab"); + AvatarProcessor.ProcessAvatar(prefab); + + var fx = prefab.GetComponent().baseAnimationLayers + .First(l => l.type == VRCAvatarDescriptor.AnimLayerType.FX) + .animatorController as AnimatorController; + + var state = fx.layers.First(l => l.name == "test").stateMachine.defaultState; + var motion = (AnimationClip)state.motion; + + var bindings = AnimationUtility.GetCurveBindings(motion); + var theBinding = bindings[0]; + Assert.AreEqual("test2", theBinding.propertyName); + } + + [Test] + public void RenamesParameterCurves_InMergeMotion() + { + var prefab = CreatePrefab("RenamesParameterCurves.prefab"); + AvatarProcessor.ProcessAvatar(prefab); + + var fx = prefab.GetComponent().baseAnimationLayers + .First(l => l.type == VRCAvatarDescriptor.AnimLayerType.FX) + .animatorController as AnimatorController; + + var state = fx.layers[0].stateMachine.defaultState; + var tree = (BlendTree)state.motion; + var motion = (AnimationClip)tree.children[0].motion; + + var bindings = AnimationUtility.GetCurveBindings(motion); + var theBinding = bindings[0]; + Assert.AreEqual("test2", theBinding.propertyName); + } } } diff --git a/UnitTests~/RenameParametersTests/RenamesParameterCurves.anim b/UnitTests~/RenameParametersTests/RenamesParameterCurves.anim new file mode 100644 index 00000000..b0dcf931 --- /dev/null +++ b/UnitTests~/RenameParametersTests/RenamesParameterCurves.anim @@ -0,0 +1,122 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!74 &7400000 +AnimationClip: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: RenamesParameterCurves + serializedVersion: 7 + m_Legacy: 0 + m_Compressed: 0 + m_UseHighQualityCurve: 1 + m_RotationCurves: [] + m_CompressedRotationCurves: [] + m_EulerCurves: [] + m_PositionCurves: [] + m_ScaleCurves: [] + m_FloatCurves: + - serializedVersion: 2 + curve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 136 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 136 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + attribute: test + path: + classID: 95 + script: {fileID: 0} + flags: 16 + m_PPtrCurves: [] + m_SampleRate: 60 + m_WrapMode: 0 + m_Bounds: + m_Center: {x: 0, y: 0, z: 0} + m_Extent: {x: 0, y: 0, z: 0} + m_ClipBindingConstant: + genericBindings: + - serializedVersion: 2 + path: 0 + attribute: 3632233996 + script: {fileID: 0} + typeID: 95 + customType: 0 + isPPtrCurve: 0 + isIntCurve: 0 + isSerializeReferenceCurve: 0 + pptrCurveMapping: [] + m_AnimationClipSettings: + serializedVersion: 2 + m_AdditiveReferencePoseClip: {fileID: 0} + m_AdditiveReferencePoseTime: 0 + m_StartTime: 0 + m_StopTime: 1 + m_OrientationOffsetY: 0 + m_Level: 0 + m_CycleOffset: 0 + m_HasAdditiveReferencePose: 0 + m_LoopTime: 0 + m_LoopBlend: 0 + m_LoopBlendOrientation: 0 + m_LoopBlendPositionY: 0 + m_LoopBlendPositionXZ: 0 + m_KeepOriginalOrientation: 0 + m_KeepOriginalPositionY: 1 + m_KeepOriginalPositionXZ: 0 + m_HeightFromFeet: 0 + m_Mirror: 0 + m_EditorCurves: + - serializedVersion: 2 + curve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 136 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 136 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + attribute: test + path: + classID: 95 + script: {fileID: 0} + flags: 16 + m_EulerEditorCurves: [] + m_HasGenericRootTransform: 0 + m_HasMotionFloatCurves: 0 + m_Events: [] diff --git a/UnitTests~/RenameParametersTests/RenamesParameterCurves.anim.meta b/UnitTests~/RenameParametersTests/RenamesParameterCurves.anim.meta new file mode 100644 index 00000000..303453cf --- /dev/null +++ b/UnitTests~/RenameParametersTests/RenamesParameterCurves.anim.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 3e634bde80c3a60459004323512f089f +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 7400000 + userData: + assetBundleName: + assetBundleVariant: diff --git a/UnitTests~/RenameParametersTests/RenamesParameterCurves.controller b/UnitTests~/RenameParametersTests/RenamesParameterCurves.controller new file mode 100644 index 00000000..277e83bb --- /dev/null +++ b/UnitTests~/RenameParametersTests/RenamesParameterCurves.controller @@ -0,0 +1,78 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!1107 &-3650133622313043183 +AnimatorStateMachine: + serializedVersion: 6 + m_ObjectHideFlags: 1 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: test + m_ChildStates: + - serializedVersion: 1 + m_State: {fileID: 1164923829880529754} + m_Position: {x: 400, y: 110, z: 0} + m_ChildStateMachines: [] + m_AnyStateTransitions: [] + m_EntryTransitions: [] + m_StateMachineTransitions: {} + m_StateMachineBehaviours: [] + m_AnyStatePosition: {x: 50, y: 20, z: 0} + m_EntryPosition: {x: 50, y: 120, z: 0} + m_ExitPosition: {x: 800, y: 120, z: 0} + m_ParentStateMachinePosition: {x: 800, y: 20, z: 0} + m_DefaultState: {fileID: 1164923829880529754} +--- !u!91 &9100000 +AnimatorController: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: RenamesParameterCurves + serializedVersion: 5 + m_AnimatorParameters: + - m_Name: test + m_Type: 1 + m_DefaultFloat: 0 + m_DefaultInt: 0 + m_DefaultBool: 0 + m_Controller: {fileID: 9100000} + m_AnimatorLayers: + - serializedVersion: 5 + m_Name: test + m_StateMachine: {fileID: -3650133622313043183} + m_Mask: {fileID: 0} + m_Motions: [] + m_Behaviours: [] + m_BlendingMode: 0 + m_SyncedLayerIndex: -1 + m_DefaultWeight: 0 + m_IKPass: 0 + m_SyncedLayerAffectsTiming: 0 + m_Controller: {fileID: 9100000} +--- !u!1102 &1164923829880529754 +AnimatorState: + serializedVersion: 6 + m_ObjectHideFlags: 1 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: RenamesParameterCurves + m_Speed: 1 + m_CycleOffset: 0 + m_Transitions: [] + m_StateMachineBehaviours: [] + m_Position: {x: 50, y: 50, z: 0} + m_IKOnFeet: 0 + m_WriteDefaultValues: 1 + m_Mirror: 0 + m_SpeedParameterActive: 0 + m_MirrorParameterActive: 0 + m_CycleOffsetParameterActive: 0 + m_TimeParameterActive: 0 + m_Motion: {fileID: 7400000, guid: 3e634bde80c3a60459004323512f089f, type: 2} + m_Tag: + m_SpeedParameter: + m_MirrorParameter: + m_CycleOffsetParameter: + m_TimeParameter: diff --git a/UnitTests~/RenameParametersTests/RenamesParameterCurves.controller.meta b/UnitTests~/RenameParametersTests/RenamesParameterCurves.controller.meta new file mode 100644 index 00000000..c04e0fbe --- /dev/null +++ b/UnitTests~/RenameParametersTests/RenamesParameterCurves.controller.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: e5e810f5227b26d4b9f073f3104d98c9 +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 9100000 + userData: + assetBundleName: + assetBundleVariant: diff --git a/UnitTests~/RenameParametersTests/RenamesParameterCurves.prefab b/UnitTests~/RenameParametersTests/RenamesParameterCurves.prefab new file mode 100644 index 00000000..d586aa02 --- /dev/null +++ b/UnitTests~/RenameParametersTests/RenamesParameterCurves.prefab @@ -0,0 +1,421 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!1 &1286613399393800329 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 6360067973014650773} + - component: {fileID: 1169826671884431870} + - component: {fileID: 4500738523828848987} + - component: {fileID: 1948104033237066197} + m_Layer: 0 + m_Name: RenamesParameterCurves + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &6360067973014650773 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1286613399393800329} + serializedVersion: 2 + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: -0.3605362, y: 0.62606794, z: -0.29746842} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: + - {fileID: 4505660406486375176} + m_Father: {fileID: 0} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!95 &1169826671884431870 +Animator: + serializedVersion: 5 + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1286613399393800329} + m_Enabled: 1 + m_Avatar: {fileID: 0} + m_Controller: {fileID: 9100000, guid: e5e810f5227b26d4b9f073f3104d98c9, type: 2} + m_CullingMode: 0 + m_UpdateMode: 0 + m_ApplyRootMotion: 0 + m_LinearVelocityBlending: 0 + m_StabilizeFeet: 0 + m_WarningMessage: + m_HasTransformHierarchy: 1 + m_AllowConstantClipSamplingOptimization: 1 + m_KeepAnimatorStateOnDisable: 0 + m_WriteDefaultValuesOnDisable: 0 +--- !u!114 &4500738523828848987 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1286613399393800329} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 542108242, guid: 67cc4cb7839cd3741b63733d5adf0442, type: 3} + m_Name: + m_EditorClassIdentifier: + Name: + ViewPosition: {x: 0, y: 1.6, z: 0.2} + Animations: 0 + ScaleIPD: 1 + lipSync: 0 + lipSyncJawBone: {fileID: 0} + lipSyncJawClosed: {x: 0, y: 0, z: 0, w: 1} + lipSyncJawOpen: {x: 0, y: 0, z: 0, w: 1} + VisemeSkinnedMesh: {fileID: 0} + MouthOpenBlendShapeName: Facial_Blends.Jaw_Down + VisemeBlendShapes: [] + unityVersion: + portraitCameraPositionOffset: {x: 0, y: 0, z: 0} + portraitCameraRotationOffset: {x: 0, y: 1, z: 0, w: -0.00000004371139} + networkIDs: [] + customExpressions: 0 + expressionsMenu: {fileID: 0} + expressionParameters: {fileID: 0} + enableEyeLook: 0 + customEyeLookSettings: + eyeMovement: + confidence: 0.5 + excitement: 0.5 + leftEye: {fileID: 0} + rightEye: {fileID: 0} + eyesLookingStraight: + linked: 1 + left: {x: 0, y: 0, z: 0, w: 0} + right: {x: 0, y: 0, z: 0, w: 0} + eyesLookingUp: + linked: 1 + left: {x: 0, y: 0, z: 0, w: 0} + right: {x: 0, y: 0, z: 0, w: 0} + eyesLookingDown: + linked: 1 + left: {x: 0, y: 0, z: 0, w: 0} + right: {x: 0, y: 0, z: 0, w: 0} + eyesLookingLeft: + linked: 1 + left: {x: 0, y: 0, z: 0, w: 0} + right: {x: 0, y: 0, z: 0, w: 0} + eyesLookingRight: + linked: 1 + left: {x: 0, y: 0, z: 0, w: 0} + right: {x: 0, y: 0, z: 0, w: 0} + eyelidType: 0 + upperLeftEyelid: {fileID: 0} + upperRightEyelid: {fileID: 0} + lowerLeftEyelid: {fileID: 0} + lowerRightEyelid: {fileID: 0} + eyelidsDefault: + upper: + linked: 1 + left: {x: 0, y: 0, z: 0, w: 0} + right: {x: 0, y: 0, z: 0, w: 0} + lower: + linked: 1 + left: {x: 0, y: 0, z: 0, w: 0} + right: {x: 0, y: 0, z: 0, w: 0} + eyelidsClosed: + upper: + linked: 1 + left: {x: 0, y: 0, z: 0, w: 0} + right: {x: 0, y: 0, z: 0, w: 0} + lower: + linked: 1 + left: {x: 0, y: 0, z: 0, w: 0} + right: {x: 0, y: 0, z: 0, w: 0} + eyelidsLookingUp: + upper: + linked: 1 + left: {x: 0, y: 0, z: 0, w: 0} + right: {x: 0, y: 0, z: 0, w: 0} + lower: + linked: 1 + left: {x: 0, y: 0, z: 0, w: 0} + right: {x: 0, y: 0, z: 0, w: 0} + eyelidsLookingDown: + upper: + linked: 1 + left: {x: 0, y: 0, z: 0, w: 0} + right: {x: 0, y: 0, z: 0, w: 0} + lower: + linked: 1 + left: {x: 0, y: 0, z: 0, w: 0} + right: {x: 0, y: 0, z: 0, w: 0} + eyelidsSkinnedMesh: {fileID: 0} + eyelidsBlendshapes: + customizeAnimationLayers: 0 + baseAnimationLayers: + - isEnabled: 0 + type: 0 + animatorController: {fileID: 0} + mask: {fileID: 0} + isDefault: 1 + - isEnabled: 0 + type: 4 + animatorController: {fileID: 0} + mask: {fileID: 0} + isDefault: 1 + - isEnabled: 0 + type: 5 + animatorController: {fileID: 0} + mask: {fileID: 0} + isDefault: 1 + specialAnimationLayers: + - isEnabled: 0 + type: 6 + animatorController: {fileID: 0} + mask: {fileID: 0} + isDefault: 1 + - isEnabled: 0 + type: 7 + animatorController: {fileID: 0} + mask: {fileID: 0} + isDefault: 1 + - isEnabled: 0 + type: 8 + animatorController: {fileID: 0} + mask: {fileID: 0} + isDefault: 1 + AnimationPreset: {fileID: 0} + animationHashSet: [] + autoFootsteps: 1 + autoLocomotion: 1 + collider_head: + isMirrored: 1 + state: 0 + transform: {fileID: 0} + radius: 0 + height: 0 + position: {x: 0, y: 0, z: 0} + rotation: {x: 0, y: 0, z: 0, w: 1} + collider_torso: + isMirrored: 1 + state: 0 + transform: {fileID: 0} + radius: 0 + height: 0 + position: {x: 0, y: 0, z: 0} + rotation: {x: 0, y: 0, z: 0, w: 1} + collider_footR: + isMirrored: 1 + state: 0 + transform: {fileID: 0} + radius: 0 + height: 0 + position: {x: 0, y: 0, z: 0} + rotation: {x: 0, y: 0, z: 0, w: 1} + collider_footL: + isMirrored: 1 + state: 0 + transform: {fileID: 0} + radius: 0 + height: 0 + position: {x: 0, y: 0, z: 0} + rotation: {x: 0, y: 0, z: 0, w: 1} + collider_handR: + isMirrored: 1 + state: 0 + transform: {fileID: 0} + radius: 0 + height: 0 + position: {x: 0, y: 0, z: 0} + rotation: {x: 0, y: 0, z: 0, w: 1} + collider_handL: + isMirrored: 1 + state: 0 + transform: {fileID: 0} + radius: 0 + height: 0 + position: {x: 0, y: 0, z: 0} + rotation: {x: 0, y: 0, z: 0, w: 1} + collider_fingerIndexL: + isMirrored: 1 + state: 0 + transform: {fileID: 0} + radius: 0 + height: 0 + position: {x: 0, y: 0, z: 0} + rotation: {x: 0, y: 0, z: 0, w: 1} + collider_fingerMiddleL: + isMirrored: 1 + state: 0 + transform: {fileID: 0} + radius: 0 + height: 0 + position: {x: 0, y: 0, z: 0} + rotation: {x: 0, y: 0, z: 0, w: 1} + collider_fingerRingL: + isMirrored: 1 + state: 0 + transform: {fileID: 0} + radius: 0 + height: 0 + position: {x: 0, y: 0, z: 0} + rotation: {x: 0, y: 0, z: 0, w: 1} + collider_fingerLittleL: + isMirrored: 1 + state: 0 + transform: {fileID: 0} + radius: 0 + height: 0 + position: {x: 0, y: 0, z: 0} + rotation: {x: 0, y: 0, z: 0, w: 1} + collider_fingerIndexR: + isMirrored: 1 + state: 0 + transform: {fileID: 0} + radius: 0 + height: 0 + position: {x: 0, y: 0, z: 0} + rotation: {x: 0, y: 0, z: 0, w: 1} + collider_fingerMiddleR: + isMirrored: 1 + state: 0 + transform: {fileID: 0} + radius: 0 + height: 0 + position: {x: 0, y: 0, z: 0} + rotation: {x: 0, y: 0, z: 0, w: 1} + collider_fingerRingR: + isMirrored: 1 + state: 0 + transform: {fileID: 0} + radius: 0 + height: 0 + position: {x: 0, y: 0, z: 0} + rotation: {x: 0, y: 0, z: 0, w: 1} + collider_fingerLittleR: + isMirrored: 1 + state: 0 + transform: {fileID: 0} + radius: 0 + height: 0 + position: {x: 0, y: 0, z: 0} + rotation: {x: 0, y: 0, z: 0, w: 1} +--- !u!114 &1948104033237066197 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1286613399393800329} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: -1427037861, guid: 4ecd63eff847044b68db9453ce219299, type: 3} + m_Name: + m_EditorClassIdentifier: + launchedFromSDKPipeline: 0 + completedSDKPipeline: 0 + blueprintId: + contentType: 0 + assetBundleUnityVersion: + fallbackStatus: 0 +--- !u!1 &7373036613593428732 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 4505660406486375176} + - component: {fileID: 8305268802043251198} + - component: {fileID: 7024896843461383305} + - component: {fileID: 1430232598996062774} + m_Layer: 0 + m_Name: GameObject + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &4505660406486375176 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7373036613593428732} + serializedVersion: 2 + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 6360067973014650773} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!114 &8305268802043251198 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7373036613593428732} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 71a96d4ea0c344f39e277d82035bf9bd, type: 3} + m_Name: + m_EditorClassIdentifier: + parameters: + - nameOrPrefix: test + remapTo: test2 + internalParameter: 0 + isPrefix: 0 + syncType: 0 + localOnly: 0 + defaultValue: 0 + saved: 0 + hasExplicitDefaultValue: 0 + m_overrideAnimatorDefaults: 0 +--- !u!114 &7024896843461383305 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7373036613593428732} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 1bb122659f724ebf85fe095ac02dc339, type: 3} + m_Name: + m_EditorClassIdentifier: + animator: {fileID: 9100000, guid: e5e810f5227b26d4b9f073f3104d98c9, type: 2} + layerType: 5 + deleteAttachedAnimator: 1 + pathMode: 1 + matchAvatarWriteDefaults: 0 + relativePathRoot: + referencePath: + targetObject: {fileID: 0} + layerPriority: 0 + mergeAnimatorMode: 0 +--- !u!114 &1430232598996062774 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7373036613593428732} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 229dd561ca024a6588e388160921a70f, type: 3} + m_Name: + m_EditorClassIdentifier: + BlendTree: {fileID: 7400000, guid: 3e634bde80c3a60459004323512f089f, type: 2} + PathMode: 0 + RelativePathRoot: + referencePath: + targetObject: {fileID: 0} diff --git a/UnitTests~/RenameParametersTests/RenamesParameterCurves.prefab.meta b/UnitTests~/RenameParametersTests/RenamesParameterCurves.prefab.meta new file mode 100644 index 00000000..457815c4 --- /dev/null +++ b/UnitTests~/RenameParametersTests/RenamesParameterCurves.prefab.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 63b6943a609971c41b031752630990e5 +PrefabImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/package.json b/package.json index dab02b56..b3db16b1 100644 --- a/package.json +++ b/package.json @@ -16,6 +16,6 @@ }, "vpmDependencies": { "com.vrchat.avatars": ">=3.7.4", - "nadena.dev.ndmf": ">=1.7.1 <2.0.0-a" + "nadena.dev.ndmf": ">=1.7.2-r <2.0.0-a" } }