From 03ee9d604830d179fcd0672b4d7643f807d53dde Mon Sep 17 00:00:00 2001 From: bd_ Date: Sat, 5 Apr 2025 14:20:03 -0700 Subject: [PATCH] fix: incorrect WD matching handling for single-animation-clip layers (#1542) Evidently, unity has special handling specifically for single-state layers with a blend tree, but _not_ for single-state layers with an animation clip. Closes: #1541 --- CHANGELOG-PRERELEASE-jp.md | 4 + CHANGELOG-PRERELEASE.md | 3 + CHANGELOG-jp.md | 4 + CHANGELOG.md | 3 + Editor/MergeAnimatorProcessor.cs | 2 +- .../WriteDefaults/TestSet_false.controller | 229 +++++++++++++++++- .../WriteDefaults/TestSet_true.controller | 229 +++++++++++++++++- .../WriteDefaults/blendtree.asset | 17 ++ .../WriteDefaults/blendtree.asset.meta | 8 + 9 files changed, 492 insertions(+), 7 deletions(-) create mode 100644 UnitTests~/MergeAnimatorTests/WriteDefaults/blendtree.asset create mode 100644 UnitTests~/MergeAnimatorTests/WriteDefaults/blendtree.asset.meta diff --git a/CHANGELOG-PRERELEASE-jp.md b/CHANGELOG-PRERELEASE-jp.md index 72e9109c..a5ff2fbc 100644 --- a/CHANGELOG-PRERELEASE-jp.md +++ b/CHANGELOG-PRERELEASE-jp.md @@ -12,6 +12,10 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ### Fixed ### Changed +- [#1542] Merge Animatorは、アニメーションクリップを含む単一のstateを持つレイヤーに対してWD設定を一致させるが、 +  ブレンドツリーを含む場合は一致させないように変更されました。 + - これにより、1.12で導入された互換性の問題が修正されます(1.12.0では、単一のstateアニメーションクリップに対してWD設定 + と一致しないように変更されました)。 ### Removed diff --git a/CHANGELOG-PRERELEASE.md b/CHANGELOG-PRERELEASE.md index 4eaaacc1..b8fcecbf 100644 --- a/CHANGELOG-PRERELEASE.md +++ b/CHANGELOG-PRERELEASE.md @@ -12,6 +12,9 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ### Fixed ### Changed +- [#1542] Merge Animator now will match WD settings for layers with a single state containing an animation clip, + but not if it contains a blend tree. This fixes some compatibility issues introduced in 1.12 (where the behavior + was changed to not match WD settings for single-state animation clips). ### Removed diff --git a/CHANGELOG-jp.md b/CHANGELOG-jp.md index 8dfa5e0c..9d1f22f4 100644 --- a/CHANGELOG-jp.md +++ b/CHANGELOG-jp.md @@ -13,6 +13,10 @@ Modular Avatarの主な変更点をこのファイルで記録しています。 ### Fixed ### Changed +- [#1542] Merge Animatorは、アニメーションクリップを含む単一のstateを持つレイヤーに対してWD設定を一致させるが、 +  ブレンドツリーを含む場合は一致させないように変更されました。 + - これにより、1.12で導入された互換性の問題が修正されます(1.12.0では、単一のstateアニメーションクリップに対してWD設定 + と一致しないように変更されました)。 ### Removed diff --git a/CHANGELOG.md b/CHANGELOG.md index 917437c9..19b72ad4 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -15,6 +15,9 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ### Fixed ### Changed +- [#1542] Merge Animator now will match WD settings for layers with a single state containing an animation clip, + but not if it contains a blend tree. This fixes some compatibility issues introduced in 1.12 (where the behavior + was changed to not match WD settings for single-state animation clips). ### Removed diff --git a/Editor/MergeAnimatorProcessor.cs b/Editor/MergeAnimatorProcessor.cs index 84060558..815341da 100644 --- a/Editor/MergeAnimatorProcessor.cs +++ b/Editor/MergeAnimatorProcessor.cs @@ -206,7 +206,7 @@ namespace nadena.dev.modular_avatar.core.editor if (sm.StateMachines.Count != 0) return false; return sm.States.Count == 1 && sm.AnyStateTransitions.Count == 0 && - sm.DefaultState.Transitions.Count == 0; + sm.DefaultState?.Transitions.Count == 0 && sm.DefaultState.Motion is VirtualBlendTree; } } } diff --git a/UnitTests~/MergeAnimatorTests/WriteDefaults/TestSet_false.controller b/UnitTests~/MergeAnimatorTests/WriteDefaults/TestSet_false.controller index 5b75d24d..f740f10f 100644 --- a/UnitTests~/MergeAnimatorTests/WriteDefaults/TestSet_false.controller +++ b/UnitTests~/MergeAnimatorTests/WriteDefaults/TestSet_false.controller @@ -1,5 +1,30 @@ %YAML 1.1 %TAG !u! tag:unity3d.com,2011: +--- !u!1107 &-8503209154062428420 +AnimatorStateMachine: + serializedVersion: 6 + m_ObjectHideFlags: 1 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: M_BlendTree_with_transitions + m_ChildStates: + - serializedVersion: 1 + m_State: {fileID: 3206768364943963491} + m_Position: {x: 370, y: 170, z: 0} + - serializedVersion: 1 + m_State: {fileID: 8331571476920691053} + m_Position: {x: 390, y: 30, 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: 3206768364943963491} --- !u!1102 &-8090073552076825221 AnimatorState: serializedVersion: 6 @@ -48,6 +73,21 @@ AnimatorStateTransition: m_InterruptionSource: 0 m_OrderedInterruption: 1 m_CanTransitionToSelf: 1 +--- !u!206 &-7204475951612894757 +BlendTree: + m_ObjectHideFlags: 1 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: Blend Tree + m_Childs: [] + m_BlendParameter: Blend + m_BlendParameterY: Blend + m_MinThreshold: 0 + m_MaxThreshold: 1 + m_UseAutomaticThresholds: 1 + m_NormalizedBlendValues: 0 + m_BlendType: 0 --- !u!1102 &-7082272376246755188 AnimatorState: serializedVersion: 6 @@ -74,6 +114,21 @@ AnimatorState: m_MirrorParameter: m_CycleOffsetParameter: m_TimeParameter: +--- !u!206 &-4566774630235714795 +BlendTree: + m_ObjectHideFlags: 1 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: Blend Tree + m_Childs: [] + m_BlendParameter: Blend + m_BlendParameterY: Blend + m_MinThreshold: 0 + m_MaxThreshold: 1 + m_UseAutomaticThresholds: 1 + m_NormalizedBlendValues: 0 + m_BlendType: 0 --- !u!1107 &-4492345216862744995 AnimatorStateMachine: serializedVersion: 6 @@ -245,6 +300,43 @@ AnimatorStateTransition: m_InterruptionSource: 0 m_OrderedInterruption: 1 m_CanTransitionToSelf: 1 +--- !u!206 &-1335452959490511230 +BlendTree: + m_ObjectHideFlags: 1 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: Blend Tree + m_Childs: [] + m_BlendParameter: Blend + m_BlendParameterY: Blend + m_MinThreshold: 0 + m_MaxThreshold: 1 + m_UseAutomaticThresholds: 1 + m_NormalizedBlendValues: 0 + m_BlendType: 0 +--- !u!1107 &-540454885725092262 +AnimatorStateMachine: + serializedVersion: 6 + m_ObjectHideFlags: 1 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: X_BlendTree + m_ChildStates: + - serializedVersion: 1 + m_State: {fileID: 5140747817625705091} + m_Position: {x: 319.11157, y: 32.108032, 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: 5140747817625705091} --- !u!1101 &-493648842442313360 AnimatorStateTransition: m_ObjectHideFlags: 1 @@ -275,7 +367,13 @@ AnimatorController: m_PrefabAsset: {fileID: 0} m_Name: TestSet_false serializedVersion: 5 - m_AnimatorParameters: [] + m_AnimatorParameters: + - m_Name: Blend + m_Type: 1 + m_DefaultFloat: 0 + m_DefaultInt: 0 + m_DefaultBool: 0 + m_Controller: {fileID: 9100000} m_AnimatorLayers: - serializedVersion: 5 m_Name: M_Simple @@ -302,7 +400,7 @@ AnimatorController: m_SyncedLayerAffectsTiming: 0 m_Controller: {fileID: 9100000} - serializedVersion: 5 - m_Name: X_SingleMotion + m_Name: M_SingleMotion m_StateMachine: {fileID: 7425114331284477142} m_Mask: {fileID: 0} m_Motions: [] @@ -313,6 +411,30 @@ AnimatorController: m_IKPass: 0 m_SyncedLayerAffectsTiming: 0 m_Controller: {fileID: 9100000} + - serializedVersion: 5 + m_Name: X_BlendTree + m_StateMachine: {fileID: -540454885725092262} + 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} + - serializedVersion: 5 + m_Name: M_BlendTree_with_transitions + m_StateMachine: {fileID: -8503209154062428420} + 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} - serializedVersion: 5 m_Name: M_SubStateMachine m_StateMachine: {fileID: -2280786276023912264} @@ -401,6 +523,33 @@ AnimatorState: m_MirrorParameter: m_CycleOffsetParameter: m_TimeParameter: +--- !u!1102 &3206768364943963491 +AnimatorState: + serializedVersion: 6 + m_ObjectHideFlags: 1 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: Blend Tree + m_Speed: 1 + m_CycleOffset: 0 + m_Transitions: + - {fileID: 9087045955160975718} + m_StateMachineBehaviours: [] + m_Position: {x: 50, y: 50, z: 0} + m_IKOnFeet: 0 + m_WriteDefaultValues: 0 + m_Mirror: 0 + m_SpeedParameterActive: 0 + m_MirrorParameterActive: 0 + m_CycleOffsetParameterActive: 0 + m_TimeParameterActive: 0 + m_Motion: {fileID: -1335452959490511230} + m_Tag: + m_SpeedParameter: + m_MirrorParameter: + m_CycleOffsetParameter: + m_TimeParameter: --- !u!1101 &4984055083699384518 AnimatorStateTransition: m_ObjectHideFlags: 1 @@ -423,6 +572,32 @@ AnimatorStateTransition: m_InterruptionSource: 0 m_OrderedInterruption: 1 m_CanTransitionToSelf: 1 +--- !u!1102 &5140747817625705091 +AnimatorState: + serializedVersion: 6 + m_ObjectHideFlags: 1 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: Blend Tree + m_Speed: 1 + m_CycleOffset: 0 + m_Transitions: [] + m_StateMachineBehaviours: [] + m_Position: {x: 50, y: 50, z: 0} + m_IKOnFeet: 0 + m_WriteDefaultValues: 0 + m_Mirror: 0 + m_SpeedParameterActive: 0 + m_MirrorParameterActive: 0 + m_CycleOffsetParameterActive: 0 + m_TimeParameterActive: 0 + m_Motion: {fileID: -4566774630235714795} + m_Tag: + m_SpeedParameter: + m_MirrorParameter: + m_CycleOffsetParameter: + m_TimeParameter: --- !u!1102 &5369915444104545634 AnimatorState: serializedVersion: 6 @@ -505,7 +680,7 @@ AnimatorStateMachine: m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_Name: X_SingleMotion + m_Name: M_SingleMotion m_ChildStates: - serializedVersion: 1 m_State: {fileID: -2269384398499780410} @@ -520,6 +695,32 @@ AnimatorStateMachine: m_ExitPosition: {x: 800, y: 120, z: 0} m_ParentStateMachinePosition: {x: 800, y: 20, z: 0} m_DefaultState: {fileID: -2269384398499780410} +--- !u!1102 &8331571476920691053 +AnimatorState: + serializedVersion: 6 + m_ObjectHideFlags: 1 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: Blend Tree 0 + m_Speed: 1 + m_CycleOffset: 0 + m_Transitions: [] + m_StateMachineBehaviours: [] + m_Position: {x: 50, y: 50, z: 0} + m_IKOnFeet: 0 + m_WriteDefaultValues: 0 + m_Mirror: 0 + m_SpeedParameterActive: 0 + m_MirrorParameterActive: 0 + m_CycleOffsetParameterActive: 0 + m_TimeParameterActive: 0 + m_Motion: {fileID: -7204475951612894757} + m_Tag: + m_SpeedParameter: + m_MirrorParameter: + m_CycleOffsetParameter: + m_TimeParameter: --- !u!1107 &8675606552853860353 AnimatorStateMachine: serializedVersion: 6 @@ -542,3 +743,25 @@ AnimatorStateMachine: m_ExitPosition: {x: 800, y: 120, z: 0} m_ParentStateMachinePosition: {x: 800, y: 20, z: 0} m_DefaultState: {fileID: 2924615304351484976} +--- !u!1101 &9087045955160975718 +AnimatorStateTransition: + m_ObjectHideFlags: 1 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: + m_Conditions: [] + m_DstStateMachine: {fileID: 0} + m_DstState: {fileID: 8331571476920691053} + m_Solo: 0 + m_Mute: 0 + m_IsExit: 0 + serializedVersion: 3 + m_TransitionDuration: 0.25 + m_TransitionOffset: 0 + m_ExitTime: 0.75 + m_HasExitTime: 1 + m_HasFixedDuration: 1 + m_InterruptionSource: 0 + m_OrderedInterruption: 1 + m_CanTransitionToSelf: 1 diff --git a/UnitTests~/MergeAnimatorTests/WriteDefaults/TestSet_true.controller b/UnitTests~/MergeAnimatorTests/WriteDefaults/TestSet_true.controller index 595ae983..ec48ffb1 100644 --- a/UnitTests~/MergeAnimatorTests/WriteDefaults/TestSet_true.controller +++ b/UnitTests~/MergeAnimatorTests/WriteDefaults/TestSet_true.controller @@ -150,6 +150,32 @@ AnimatorState: m_MirrorParameter: m_CycleOffsetParameter: m_TimeParameter: +--- !u!1102 &-4604261159886404567 +AnimatorState: + serializedVersion: 6 + m_ObjectHideFlags: 1 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: Blend Tree + 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: 8886809958447648451} + m_Tag: + m_SpeedParameter: + m_MirrorParameter: + m_CycleOffsetParameter: + m_TimeParameter: --- !u!1102 &-3889880041459077057 AnimatorState: serializedVersion: 6 @@ -176,6 +202,21 @@ AnimatorState: m_MirrorParameter: m_CycleOffsetParameter: m_TimeParameter: +--- !u!206 &-3697568682967374507 +BlendTree: + m_ObjectHideFlags: 1 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: Blend Tree + m_Childs: [] + m_BlendParameter: Blend + m_BlendParameterY: Blend + m_MinThreshold: 0 + m_MaxThreshold: 1 + m_UseAutomaticThresholds: 1 + m_NormalizedBlendValues: 0 + m_BlendType: 0 --- !u!1107 &-3544374717376554957 AnimatorStateMachine: serializedVersion: 6 @@ -257,7 +298,13 @@ AnimatorController: m_PrefabAsset: {fileID: 0} m_Name: TestSet_true serializedVersion: 5 - m_AnimatorParameters: [] + m_AnimatorParameters: + - m_Name: Blend + m_Type: 1 + m_DefaultFloat: 0 + m_DefaultInt: 0 + m_DefaultBool: 0 + m_Controller: {fileID: 9100000} m_AnimatorLayers: - serializedVersion: 5 m_Name: M_Simple @@ -284,7 +331,7 @@ AnimatorController: m_SyncedLayerAffectsTiming: 0 m_Controller: {fileID: 9100000} - serializedVersion: 5 - m_Name: X_SingleMotion + m_Name: M_SingleMotion m_StateMachine: {fileID: 7425114331284477142} m_Mask: {fileID: 0} m_Motions: [] @@ -295,6 +342,30 @@ AnimatorController: m_IKPass: 0 m_SyncedLayerAffectsTiming: 0 m_Controller: {fileID: 9100000} + - serializedVersion: 5 + m_Name: X_BlendTree + m_StateMachine: {fileID: 8798472560561482739} + 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} + - serializedVersion: 5 + m_Name: M_BlendTree_with_transitions + m_StateMachine: {fileID: 6073696076277274403} + 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} - serializedVersion: 5 m_Name: M_SubStateMachine m_StateMachine: {fileID: -2280786276023912264} @@ -331,6 +402,48 @@ AnimatorController: m_IKPass: 0 m_SyncedLayerAffectsTiming: 0 m_Controller: {fileID: 9100000} +--- !u!206 &1172723464858944439 +BlendTree: + m_ObjectHideFlags: 1 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: Blend Tree + m_Childs: [] + m_BlendParameter: Blend + m_BlendParameterY: Blend + m_MinThreshold: 0 + m_MaxThreshold: 1 + m_UseAutomaticThresholds: 1 + m_NormalizedBlendValues: 0 + m_BlendType: 0 +--- !u!1102 &2773611772382125711 +AnimatorState: + serializedVersion: 6 + m_ObjectHideFlags: 1 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: Blend Tree + m_Speed: 1 + m_CycleOffset: 0 + m_Transitions: + - {fileID: 6335697860175343713} + 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: 1172723464858944439} + m_Tag: + m_SpeedParameter: + m_MirrorParameter: + m_CycleOffsetParameter: + m_TimeParameter: --- !u!1101 &2826909083587646716 AnimatorStateTransition: m_ObjectHideFlags: 1 @@ -426,6 +539,53 @@ AnimatorStateMachine: m_ExitPosition: {x: 800, y: 120, z: 0} m_ParentStateMachinePosition: {x: 800, y: 20, z: 0} m_DefaultState: {fileID: -8090073552076825221} +--- !u!1107 &6073696076277274403 +AnimatorStateMachine: + serializedVersion: 6 + m_ObjectHideFlags: 1 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: M_BlendTree_with_transitions + m_ChildStates: + - serializedVersion: 1 + m_State: {fileID: 2773611772382125711} + m_Position: {x: 410, y: 60, z: 0} + - serializedVersion: 1 + m_State: {fileID: 6922646542478255825} + m_Position: {x: 440, y: -60, 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: 2773611772382125711} +--- !u!1101 &6335697860175343713 +AnimatorStateTransition: + m_ObjectHideFlags: 1 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: + m_Conditions: [] + m_DstStateMachine: {fileID: 0} + m_DstState: {fileID: 6922646542478255825} + m_Solo: 0 + m_Mute: 0 + m_IsExit: 0 + serializedVersion: 3 + m_TransitionDuration: 0.25 + m_TransitionOffset: 0 + m_ExitTime: 0.75 + m_HasExitTime: 1 + m_HasFixedDuration: 1 + m_InterruptionSource: 0 + m_OrderedInterruption: 1 + m_CanTransitionToSelf: 1 --- !u!1102 &6720833780093794278 AnimatorState: serializedVersion: 6 @@ -452,6 +612,32 @@ AnimatorState: m_MirrorParameter: m_CycleOffsetParameter: m_TimeParameter: +--- !u!1102 &6922646542478255825 +AnimatorState: + serializedVersion: 6 + m_ObjectHideFlags: 1 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: Blend Tree 0 + 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: -3697568682967374507} + m_Tag: + m_SpeedParameter: + m_MirrorParameter: + m_CycleOffsetParameter: + m_TimeParameter: --- !u!1107 &7425114331284477142 AnimatorStateMachine: serializedVersion: 6 @@ -459,7 +645,7 @@ AnimatorStateMachine: m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_Name: X_SingleMotion + m_Name: M_SingleMotion m_ChildStates: - serializedVersion: 1 m_State: {fileID: -2269384398499780410} @@ -496,3 +682,40 @@ AnimatorStateMachine: m_ExitPosition: {x: 800, y: 120, z: 0} m_ParentStateMachinePosition: {x: 800, y: 20, z: 0} m_DefaultState: {fileID: -5198186050664669546} +--- !u!1107 &8798472560561482739 +AnimatorStateMachine: + serializedVersion: 6 + m_ObjectHideFlags: 1 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: X_BlendTree + m_ChildStates: + - serializedVersion: 1 + m_State: {fileID: -4604261159886404567} + m_Position: {x: 460, y: 60, 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: -4604261159886404567} +--- !u!206 &8886809958447648451 +BlendTree: + m_ObjectHideFlags: 1 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: Blend Tree + m_Childs: [] + m_BlendParameter: Blend + m_BlendParameterY: Blend + m_MinThreshold: 0 + m_MaxThreshold: 1 + m_UseAutomaticThresholds: 1 + m_NormalizedBlendValues: 0 + m_BlendType: 0 diff --git a/UnitTests~/MergeAnimatorTests/WriteDefaults/blendtree.asset b/UnitTests~/MergeAnimatorTests/WriteDefaults/blendtree.asset new file mode 100644 index 00000000..76f19667 --- /dev/null +++ b/UnitTests~/MergeAnimatorTests/WriteDefaults/blendtree.asset @@ -0,0 +1,17 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!206 &20600000 +BlendTree: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: blendtree + m_Childs: [] + m_BlendParameter: Blend + m_BlendParameterY: Blend + m_MinThreshold: 0 + m_MaxThreshold: 1 + m_UseAutomaticThresholds: 1 + m_NormalizedBlendValues: 0 + m_BlendType: 0 diff --git a/UnitTests~/MergeAnimatorTests/WriteDefaults/blendtree.asset.meta b/UnitTests~/MergeAnimatorTests/WriteDefaults/blendtree.asset.meta new file mode 100644 index 00000000..4713d3ef --- /dev/null +++ b/UnitTests~/MergeAnimatorTests/WriteDefaults/blendtree.asset.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: f2beba729514fc94eb1a78f8340a8738 +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 20600000 + userData: + assetBundleName: + assetBundleVariant: