From 7690bd29f071db2e1e98249f421f8a90af5e68cd Mon Sep 17 00:00:00 2001 From: CroakFang <1605296300@qq.com> Date: Tue, 13 Sep 2022 13:42:38 +0800 Subject: [PATCH] Add animation transition --- Assets/Resources/Controller.controller | 211 +++++++++++++++++- Assets/Resources/box.controller | 72 ------ Assets/Resources/{clip.anim => clip_1.anim} | 6 +- .../{clip.anim.meta => clip_1.anim.meta} | 0 Assets/Resources/clip_2.anim | 53 +++++ .../{box.controller.meta => clip_2.anim.meta} | 4 +- Assets/Resources/clip_e.anim | 53 +++++ Assets/Resources/clip_e.anim.meta | 8 + Assets/Resources/clip_s.anim | 53 +++++ Assets/Resources/clip_s.anim.meta | 8 + Assets/Scripts/UmaViewerBuilder.cs | 40 +++- Assets/Scripts/UmaViewerMain.cs | 3 +- Assets/Scripts/UmaViewerUI.cs | 12 +- .../umamusume/Gallop/CySpringDataContainer.cs | 2 +- 14 files changed, 431 insertions(+), 94 deletions(-) delete mode 100644 Assets/Resources/box.controller rename Assets/Resources/{clip.anim => clip_1.anim} (95%) rename Assets/Resources/{clip.anim.meta => clip_1.anim.meta} (100%) create mode 100644 Assets/Resources/clip_2.anim rename Assets/Resources/{box.controller.meta => clip_2.anim.meta} (64%) create mode 100644 Assets/Resources/clip_e.anim create mode 100644 Assets/Resources/clip_e.anim.meta create mode 100644 Assets/Resources/clip_s.anim create mode 100644 Assets/Resources/clip_s.anim.meta diff --git a/Assets/Resources/Controller.controller b/Assets/Resources/Controller.controller index 9f79221..9c7d08b 100644 --- a/Assets/Resources/Controller.controller +++ b/Assets/Resources/Controller.controller @@ -1,5 +1,27 @@ %YAML 1.1 %TAG !u! tag:unity3d.com,2011: +--- !u!1101 &-5763502964814172924 +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: 3046527319765726241} + m_Solo: 0 + m_Mute: 0 + m_IsExit: 0 + serializedVersion: 3 + m_TransitionDuration: 0.2 + m_TransitionOffset: 0 + m_ExitTime: 1 + m_HasExitTime: 1 + m_HasFixedDuration: 1 + m_InterruptionSource: 0 + m_OrderedInterruption: 1 + m_CanTransitionToSelf: 1 --- !u!1101 &-4072449279223152736 AnimatorStateTransition: m_ObjectHideFlags: 1 @@ -22,24 +44,79 @@ AnimatorStateTransition: m_InterruptionSource: 0 m_OrderedInterruption: 1 m_CanTransitionToSelf: 1 ---- !u!1102 &-1046042063806159501 +--- !u!1102 &-3716543570628925844 AnimatorState: - serializedVersion: 5 + serializedVersion: 6 m_ObjectHideFlags: 1 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_Name: clip + m_Name: motion_s m_Speed: 1 m_CycleOffset: 0 m_Transitions: - - {fileID: -4072449279223152736} + - {fileID: -5763502964814172924} m_StateMachineBehaviours: [] m_Position: {x: 50, y: 50, z: 0} m_IKOnFeet: 0 m_WriteDefaultValues: 1 m_Mirror: 0 - m_SpeedParameterActive: 1 + m_SpeedParameterActive: 0 + m_MirrorParameterActive: 0 + m_CycleOffsetParameterActive: 0 + m_TimeParameterActive: 0 + m_Motion: {fileID: 7400000, guid: 1ed7870865d17344faf4aaa14ec2bf03, type: 2} + m_Tag: + m_SpeedParameter: + m_MirrorParameter: + m_CycleOffsetParameter: + m_TimeParameter: animSpeed +--- !u!1102 &-1569566867637420955 +AnimatorState: + serializedVersion: 6 + m_ObjectHideFlags: 1 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: motion_2 + 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: 3ea5c07300fddb0428f90a5f85f22ee5, type: 2} + m_Tag: + m_SpeedParameter: animSpeed + m_MirrorParameter: + m_CycleOffsetParameter: + m_TimeParameter: +--- !u!1102 &-1046042063806159501 +AnimatorState: + serializedVersion: 6 + m_ObjectHideFlags: 1 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: motion_1 + m_Speed: 1 + m_CycleOffset: 0 + m_Transitions: + - {fileID: -4072449279223152736} + - {fileID: 4924304428553221412} + - {fileID: 2301727553135486704} + 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 @@ -64,6 +141,18 @@ AnimatorController: m_DefaultInt: 0 m_DefaultBool: 0 m_Controller: {fileID: 0} + - m_Name: next + m_Type: 9 + m_DefaultFloat: 0 + m_DefaultInt: 0 + m_DefaultBool: 0 + m_Controller: {fileID: 0} + - m_Name: next_s + m_Type: 9 + m_DefaultFloat: 0 + m_DefaultInt: 0 + m_DefaultBool: 0 + m_Controller: {fileID: 0} m_AnimatorLayers: - serializedVersion: 5 m_Name: Base Layer @@ -79,7 +168,7 @@ AnimatorController: m_Controller: {fileID: 9100000} --- !u!1107 &1917244892325702502 AnimatorStateMachine: - serializedVersion: 5 + serializedVersion: 6 m_ObjectHideFlags: 1 m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} @@ -88,7 +177,16 @@ AnimatorStateMachine: m_ChildStates: - serializedVersion: 1 m_State: {fileID: -1046042063806159501} - m_Position: {x: 248, y: 160, z: 0} + m_Position: {x: 190, y: 220, z: 0} + - serializedVersion: 1 + m_State: {fileID: -3716543570628925844} + m_Position: {x: 310, y: 110, z: 0} + - serializedVersion: 1 + m_State: {fileID: -1569566867637420955} + m_Position: {x: 660, y: 220, z: 0} + - serializedVersion: 1 + m_State: {fileID: 3046527319765726241} + m_Position: {x: 560, y: 110, z: 0} m_ChildStateMachines: [] m_AnyStateTransitions: [] m_EntryTransitions: [] @@ -99,3 +197,102 @@ AnimatorStateMachine: m_ExitPosition: {x: 800, y: 120, z: 0} m_ParentStateMachinePosition: {x: 800, y: 20, z: 0} m_DefaultState: {fileID: -1046042063806159501} +--- !u!1101 &2301727553135486704 +AnimatorStateTransition: + m_ObjectHideFlags: 1 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: + m_Conditions: + - m_ConditionMode: 1 + m_ConditionEvent: next_s + m_EventTreshold: 0 + m_DstStateMachine: {fileID: 0} + m_DstState: {fileID: -3716543570628925844} + m_Solo: 0 + m_Mute: 0 + m_IsExit: 0 + serializedVersion: 3 + m_TransitionDuration: 0.2 + m_TransitionOffset: 0 + m_ExitTime: 1 + m_HasExitTime: 0 + m_HasFixedDuration: 1 + m_InterruptionSource: 0 + m_OrderedInterruption: 1 + m_CanTransitionToSelf: 1 +--- !u!1102 &3046527319765726241 +AnimatorState: + serializedVersion: 6 + m_ObjectHideFlags: 1 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: New State + m_Speed: 1 + m_CycleOffset: 0 + m_Transitions: + - {fileID: 5555648306063376625} + 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: e87804bd4e9dfd340912754040005c7d, type: 2} + m_Tag: + m_SpeedParameter: + m_MirrorParameter: + m_CycleOffsetParameter: + m_TimeParameter: +--- !u!1101 &4924304428553221412 +AnimatorStateTransition: + m_ObjectHideFlags: 1 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: + m_Conditions: + - m_ConditionMode: 1 + m_ConditionEvent: next + m_EventTreshold: 0 + m_DstStateMachine: {fileID: 0} + m_DstState: {fileID: -1569566867637420955} + m_Solo: 0 + m_Mute: 0 + m_IsExit: 0 + serializedVersion: 3 + m_TransitionDuration: 0.2 + m_TransitionOffset: 0 + m_ExitTime: 1 + m_HasExitTime: 0 + m_HasFixedDuration: 1 + m_InterruptionSource: 0 + m_OrderedInterruption: 1 + m_CanTransitionToSelf: 1 +--- !u!1101 &5555648306063376625 +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: -1569566867637420955} + m_Solo: 0 + m_Mute: 0 + m_IsExit: 0 + serializedVersion: 3 + m_TransitionDuration: 0.2 + m_TransitionOffset: 0 + m_ExitTime: 1 + m_HasExitTime: 1 + m_HasFixedDuration: 1 + m_InterruptionSource: 0 + m_OrderedInterruption: 1 + m_CanTransitionToSelf: 1 diff --git a/Assets/Resources/box.controller b/Assets/Resources/box.controller deleted file mode 100644 index 7c3ae73..0000000 --- a/Assets/Resources/box.controller +++ /dev/null @@ -1,72 +0,0 @@ -%YAML 1.1 -%TAG !u! tag:unity3d.com,2011: ---- !u!1102 &-6990203995391153023 -AnimatorState: - serializedVersion: 6 - m_ObjectHideFlags: 1 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_Name: test - 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: e9146c1290a6ccb42b6a8c21281aaa23, type: 2} - m_Tag: - m_SpeedParameter: - m_MirrorParameter: - m_CycleOffsetParameter: - m_TimeParameter: ---- !u!1107 &-6907050837732902023 -AnimatorStateMachine: - serializedVersion: 6 - m_ObjectHideFlags: 1 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_Name: Base Layer - m_ChildStates: - - serializedVersion: 1 - m_State: {fileID: -6990203995391153023} - m_Position: {x: 200, y: 0, 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: -6990203995391153023} ---- !u!91 &9100000 -AnimatorController: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_Name: box - serializedVersion: 5 - m_AnimatorParameters: [] - m_AnimatorLayers: - - serializedVersion: 5 - m_Name: Base Layer - m_StateMachine: {fileID: -6907050837732902023} - 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} diff --git a/Assets/Resources/clip.anim b/Assets/Resources/clip_1.anim similarity index 95% rename from Assets/Resources/clip.anim rename to Assets/Resources/clip_1.anim index ccc953f..31e2d00 100644 --- a/Assets/Resources/clip.anim +++ b/Assets/Resources/clip_1.anim @@ -6,8 +6,8 @@ AnimationClip: m_CorrespondingSourceObject: {fileID: 0} m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} - m_Name: clip - serializedVersion: 6 + m_Name: clip_1 + serializedVersion: 7 m_Legacy: 0 m_Compressed: 0 m_UseHighQualityCurve: 1 @@ -36,7 +36,7 @@ AnimationClip: m_Level: 0 m_CycleOffset: 0 m_HasAdditiveReferencePose: 0 - m_LoopTime: 0 + m_LoopTime: 1 m_LoopBlend: 0 m_LoopBlendOrientation: 0 m_LoopBlendPositionY: 0 diff --git a/Assets/Resources/clip.anim.meta b/Assets/Resources/clip_1.anim.meta similarity index 100% rename from Assets/Resources/clip.anim.meta rename to Assets/Resources/clip_1.anim.meta diff --git a/Assets/Resources/clip_2.anim b/Assets/Resources/clip_2.anim new file mode 100644 index 0000000..3b5bcb6 --- /dev/null +++ b/Assets/Resources/clip_2.anim @@ -0,0 +1,53 @@ +%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: clip_2 + serializedVersion: 7 + m_Legacy: 0 + m_Compressed: 0 + m_UseHighQualityCurve: 1 + m_RotationCurves: [] + m_CompressedRotationCurves: [] + m_EulerCurves: [] + m_PositionCurves: [] + m_ScaleCurves: [] + m_FloatCurves: [] + 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: [] + 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: 1 + 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: [] + m_EulerEditorCurves: [] + m_HasGenericRootTransform: 0 + m_HasMotionFloatCurves: 0 + m_Events: [] diff --git a/Assets/Resources/box.controller.meta b/Assets/Resources/clip_2.anim.meta similarity index 64% rename from Assets/Resources/box.controller.meta rename to Assets/Resources/clip_2.anim.meta index 27e48f1..ab02301 100644 --- a/Assets/Resources/box.controller.meta +++ b/Assets/Resources/clip_2.anim.meta @@ -1,8 +1,8 @@ fileFormatVersion: 2 -guid: 85b0a681167756e42a76e8acd9a31072 +guid: 3ea5c07300fddb0428f90a5f85f22ee5 NativeFormatImporter: externalObjects: {} - mainObjectFileID: 9100000 + mainObjectFileID: 7400000 userData: assetBundleName: assetBundleVariant: diff --git a/Assets/Resources/clip_e.anim b/Assets/Resources/clip_e.anim new file mode 100644 index 0000000..1c0b624 --- /dev/null +++ b/Assets/Resources/clip_e.anim @@ -0,0 +1,53 @@ +%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: clip_e + serializedVersion: 7 + m_Legacy: 0 + m_Compressed: 0 + m_UseHighQualityCurve: 1 + m_RotationCurves: [] + m_CompressedRotationCurves: [] + m_EulerCurves: [] + m_PositionCurves: [] + m_ScaleCurves: [] + m_FloatCurves: [] + 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: [] + 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: 1 + 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: [] + m_EulerEditorCurves: [] + m_HasGenericRootTransform: 0 + m_HasMotionFloatCurves: 0 + m_Events: [] diff --git a/Assets/Resources/clip_e.anim.meta b/Assets/Resources/clip_e.anim.meta new file mode 100644 index 0000000..63efad7 --- /dev/null +++ b/Assets/Resources/clip_e.anim.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 1ed7870865d17344faf4aaa14ec2bf03 +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 7400000 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Resources/clip_s.anim b/Assets/Resources/clip_s.anim new file mode 100644 index 0000000..ca1713f --- /dev/null +++ b/Assets/Resources/clip_s.anim @@ -0,0 +1,53 @@ +%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: clip_s + serializedVersion: 7 + m_Legacy: 0 + m_Compressed: 0 + m_UseHighQualityCurve: 1 + m_RotationCurves: [] + m_CompressedRotationCurves: [] + m_EulerCurves: [] + m_PositionCurves: [] + m_ScaleCurves: [] + m_FloatCurves: [] + 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: [] + 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: 1 + 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: [] + m_EulerEditorCurves: [] + m_HasGenericRootTransform: 0 + m_HasMotionFloatCurves: 0 + m_Events: [] diff --git a/Assets/Resources/clip_s.anim.meta b/Assets/Resources/clip_s.anim.meta new file mode 100644 index 0000000..db92110 --- /dev/null +++ b/Assets/Resources/clip_s.anim.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: e87804bd4e9dfd340912754040005c7d +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 7400000 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Scripts/UmaViewerBuilder.cs b/Assets/Scripts/UmaViewerBuilder.cs index b44d5e3..1ed521c 100644 --- a/Assets/Scripts/UmaViewerBuilder.cs +++ b/Assets/Scripts/UmaViewerBuilder.cs @@ -582,10 +582,7 @@ public class UmaViewerBuilder : MonoBehaviour { if (CurrentUMAContainer && CurrentUMAContainer.UmaAnimator) { - AnimationClip bbb = asset as AnimationClip; - bbb.wrapMode = WrapMode.Loop; - CurrentUMAContainer.OverrideController["clip"] = bbb; - CurrentUMAContainer.UmaAnimator.Play("clip", 0, 0); + LoadAnimation(asset as AnimationClip); } if (!CurrentLiveContainer) @@ -833,6 +830,41 @@ public class UmaViewerBuilder : MonoBehaviour } } + private void LoadAnimation(AnimationClip clip) + { + CurrentUMAContainer.OverrideController["clip_1"] = CurrentUMAContainer.OverrideController["clip_2"]; + var lastTime = CurrentUMAContainer.UmaAnimator.GetCurrentAnimatorStateInfo(0).normalizedTime; + CurrentUMAContainer.UmaAnimator.Play("motion_1", 0, lastTime); + bool needTransit = false; + + if (clip.name.EndsWith("_loop")) + { + var motion_s = Main.AbList.FirstOrDefault(a => a.Name.EndsWith(clip.name.Replace("_loop", "_s"))); + var motion_e = Main.AbList.FirstOrDefault(a => a.Name.EndsWith(CurrentUMAContainer.OverrideController["clip_2"].name.Replace("_loop", "_e"))); + needTransit = (motion_s != null && motion_e != null); + if (needTransit) + { + RecursiveLoadAsset(motion_e); + RecursiveLoadAsset(motion_s); + } + CurrentUMAContainer.OverrideController["clip_2"] = clip; + CurrentUMAContainer.UmaAnimator.SetTrigger(needTransit ? "next_s" : "next"); + } + else if(clip.name.EndsWith("_S")) + { + CurrentUMAContainer.OverrideController["clip_s"] = clip; + } + else if(clip.name.EndsWith("_E")) + { + CurrentUMAContainer.OverrideController["clip_e"] = clip; + } + else + { + CurrentUMAContainer.OverrideController["clip_2"] = clip; + CurrentUMAContainer.UmaAnimator.SetTrigger(needTransit ? "next_s" : "next"); + } + } + private void UnloadBundle(AssetBundle bundle, bool unloadAllObjects) { var entry = Main.LoadedBundles.FirstOrDefault(b => b.Value == bundle); diff --git a/Assets/Scripts/UmaViewerMain.cs b/Assets/Scripts/UmaViewerMain.cs index f7484cd..de3a682 100644 --- a/Assets/Scripts/UmaViewerMain.cs +++ b/Assets/Scripts/UmaViewerMain.cs @@ -29,8 +29,9 @@ public class UmaViewerMain : MonoBehaviour } private void Awake() { - Application.targetFrameRate = -1; Instance = this; + Application.targetFrameRate = -1; + if (!Application.isEditor) Debug.unityLogger.logEnabled = false; AbList = UmaDatabaseController.Instance.MetaEntries.ToList(); } diff --git a/Assets/Scripts/UmaViewerUI.cs b/Assets/Scripts/UmaViewerUI.cs index 32e5041..8dee09f 100644 --- a/Assets/Scripts/UmaViewerUI.cs +++ b/Assets/Scripts/UmaViewerUI.cs @@ -358,10 +358,14 @@ public class UmaViewerUI : MonoBehaviour,FaceLoadCallBack Destroy(animationList.content.GetChild(i).gameObject); } - var filteredList = mini ? - Main.AbList.Where(a => a.Name.StartsWith(UmaDatabaseController.MotionPath) && !a.Name.Contains($"mirror") && a.Name.Contains($"mini") && !a.Name.Contains($"facial") && !a.Name.Contains($"_cam")) - : - Main.AbList.Where(a => a.Name.StartsWith(UmaDatabaseController.MotionPath) && !a.Name.Contains($"mirror") && !a.Name.Contains($"mini") && !a.Name.Contains($"facial") && !a.Name.Contains($"_cam")); + var filteredList = Main.AbList.Where(a => a.Name.StartsWith(UmaDatabaseController.MotionPath) + && !a.Name.Contains($"mirror") + && (mini ? a.Name.Contains($"mini") : !a.Name.Contains($"mini")) + && !a.Name.Contains($"facial") + && !a.Name.Contains($"_cam") + && !a.Name.EndsWith($"_s") + && !a.Name.EndsWith($"_e") + ); if (umaId == -1) { diff --git a/Assets/Scripts/umamusume/Gallop/CySpringDataContainer.cs b/Assets/Scripts/umamusume/Gallop/CySpringDataContainer.cs index 97d54de..8640a7c 100644 --- a/Assets/Scripts/umamusume/Gallop/CySpringDataContainer.cs +++ b/Assets/Scripts/umamusume/Gallop/CySpringDataContainer.cs @@ -84,7 +84,7 @@ namespace Gallop gameObjects.Clear(); gameObjects.AddRange(transform.parent.transform.parent.GetComponentsInChildren()); - foreach (CySpringParamDataElement spring in springParam) + foreach(CySpringParamDataElement spring in springParam) { var bone = gameObjects.Find(a => { return a.name == spring._boneName; }); if (bone)