From 8a0668790740e86c897c9967204cb0f9ea574fea Mon Sep 17 00:00:00 2001 From: Braedon Date: Thu, 10 Feb 2022 21:14:09 -0500 Subject: [PATCH] Long hair rhythm tweezers but very buggy (read desc) Hair plucking is a bit weird a beat after a long pull. The tweezers don't automatically skip to the beat they're supposed to be when pulling since it can put things out of sync. You can't pull two long hairs at a time for some reason. The long hair doesn't rotate correctly towards the tweezers. I'm very tired if someone could go in and clean some of this up that would be great. --- Assets/Resources/Games/rhythmTweezers.prefab | 149 ++- .../Animations/Hairs/HairHolder.controller | 58 ++ .../Animations/Hairs/LongAppear.anim | 875 ++++++++++++++++++ .../Animations/Hairs/LongAppear.anim.meta | 8 + .../Animations/Hairs/LoopPull.anim | 480 ++++++++++ .../Animations/Hairs/LoopPull.anim.meta | 8 + .../Tweezers/TweezerHolder.controller | 29 + .../Tweezers/Tweezers_LongPluck.anim | 372 ++++++++ .../Tweezers/Tweezers_LongPluck.anim.meta | 8 + .../Scripts/Games/RhythmTweezers/LongHair.cs | 40 +- .../Games/RhythmTweezers/RhythmTweezers.cs | 2 + .../Scripts/Games/RhythmTweezers/Tweezers.cs | 26 +- 12 files changed, 2021 insertions(+), 34 deletions(-) create mode 100644 Assets/Resources/Sprites/Games/RhythmTweezers/Animations/Hairs/LongAppear.anim create mode 100644 Assets/Resources/Sprites/Games/RhythmTweezers/Animations/Hairs/LongAppear.anim.meta create mode 100644 Assets/Resources/Sprites/Games/RhythmTweezers/Animations/Hairs/LoopPull.anim create mode 100644 Assets/Resources/Sprites/Games/RhythmTweezers/Animations/Hairs/LoopPull.anim.meta create mode 100644 Assets/Resources/Sprites/Games/RhythmTweezers/Animations/Tweezers/Tweezers_LongPluck.anim create mode 100644 Assets/Resources/Sprites/Games/RhythmTweezers/Animations/Tweezers/Tweezers_LongPluck.anim.meta diff --git a/Assets/Resources/Games/rhythmTweezers.prefab b/Assets/Resources/Games/rhythmTweezers.prefab index 49281f1b..3987d476 100644 --- a/Assets/Resources/Games/rhythmTweezers.prefab +++ b/Assets/Resources/Games/rhythmTweezers.prefab @@ -268,6 +268,88 @@ SpriteRenderer: m_WasSpriteAssigned: 1 m_MaskInteraction: 0 m_SpriteSortPoint: 0 +--- !u!1 &1603625733790180753 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 5223405939669773953} + - component: {fileID: 6969559628581923237} + m_Layer: 0 + m_Name: Loop + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &5223405939669773953 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1603625733790180753} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: -0, y: -1.3562, z: 0} + m_LocalScale: {x: 1, y: 1.25, z: 1} + m_Children: [] + m_Father: {fileID: 981171161675523133} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 1, z: 0} +--- !u!212 &6969559628581923237 +SpriteRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 1603625733790180753} + m_Enabled: 1 + m_CastShadows: 0 + m_ReceiveShadows: 0 + m_DynamicOccludee: 1 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_RayTracingMode: 0 + m_RayTraceProcedural: 0 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 10754, guid: 0000000000000000f000000000000000, type: 0} + m_StaticBatchInfo: + firstSubMesh: 0 + subMeshCount: 0 + m_StaticBatchRoot: {fileID: 0} + m_ProbeAnchor: {fileID: 0} + m_LightProbeVolumeOverride: {fileID: 0} + m_ScaleInLightmap: 1 + m_ReceiveGI: 1 + m_PreserveUVs: 0 + m_IgnoreNormalsForChartDetection: 0 + m_ImportantGI: 0 + m_StitchLightmapSeams: 1 + m_SelectedEditorRenderState: 0 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 50 + m_Sprite: {fileID: -4253719726650700378, guid: 8b24cfccb5b27054bbfccc7d7a912b73, type: 3} + m_Color: {r: 1, g: 1, b: 1, a: 1} + m_FlipX: 0 + m_FlipY: 0 + m_DrawMode: 0 + m_Size: {x: 0.6, y: 0.84} + m_AdaptiveModeThreshold: 0.5 + m_SpriteTileMode: 0 + m_WasSpriteAssigned: 1 + m_MaskInteraction: 0 + m_SpriteSortPoint: 0 --- !u!1 &1989337582260767153 GameObject: m_ObjectHideFlags: 0 @@ -380,6 +462,38 @@ Transform: m_Father: {fileID: 1118188506360081759} m_RootOrder: 6 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!1 &2160021042345747175 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 981171161675523133} + m_Layer: 0 + m_Name: LongHairHolder + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &981171161675523133 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2160021042345747175} + m_LocalRotation: {x: -0, y: 0.008726558, z: -0, w: 0.999962} + m_LocalPosition: {x: 0, y: -1.111, z: 0} + m_LocalScale: {x: 1, y: 0.79999995, z: 1} + m_Children: + - {fileID: 5223405939669773953} + - {fileID: 1462520415884795608} + m_Father: {fileID: 2037913084037357808} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 1, z: 0} --- !u!1 &2500345393670765108 GameObject: m_ObjectHideFlags: 0 @@ -568,12 +682,12 @@ Transform: m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 2595271014815681993} - m_LocalRotation: {x: 0, y: 0.008726558, z: 0, w: 0.999962} - m_LocalPosition: {x: -0, y: -1.3562, z: -0} - m_LocalScale: {x: 1, y: 0.8, z: 1} + m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} + m_LocalPosition: {x: 0, y: -0.28399917, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} m_Children: [] - m_Father: {fileID: 2037913084037357808} - m_RootOrder: 0 + m_Father: {fileID: 981171161675523133} + m_RootOrder: 1 m_LocalEulerAnglesHint: {x: 0, y: 1, z: 0} --- !u!212 &5699986438258654680 SpriteRenderer: @@ -655,7 +769,7 @@ Transform: m_LocalPosition: {x: 0, y: 0.82142866, z: 0} m_LocalScale: {x: 1, y: 1, z: 1} m_Children: - - {fileID: 1462520415884795608} + - {fileID: 981171161675523133} - {fileID: 2039788460909508265} m_Father: {fileID: 4534486478964924522} m_RootOrder: 1 @@ -703,6 +817,9 @@ MonoBehaviour: eligibleHitsList: [] aceTimes: 0 createBeat: 0 + hairSprite: {fileID: 2595271014815681993} + stubbleSprite: {fileID: 1989337582260767153} + holder: {fileID: 2160021042345747175} --- !u!1 &3082739543595333088 GameObject: m_ObjectHideFlags: 0 @@ -1118,7 +1235,7 @@ Transform: m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 3684904985109994079} - m_LocalRotation: {x: 0, y: 0, z: -1, w: 0} + m_LocalRotation: {x: 0, y: -0, z: 0.118490234, w: -0.9929552} m_LocalPosition: {x: 0, y: 3.68, z: 0} m_LocalScale: {x: 1, y: 1, z: 1} m_Children: @@ -1129,7 +1246,7 @@ Transform: - {fileID: 2393730240186175341} m_Father: {fileID: 5813499711186931250} m_RootOrder: 1 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: -180} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: -373.61} --- !u!114 &3391455012319192365 MonoBehaviour: m_ObjectHideFlags: 0 @@ -2075,20 +2192,6 @@ MonoBehaviour: tweezerBeatOffset: 0 pluckedHairSprite: {fileID: 3562159510210354730, guid: 8b24cfccb5b27054bbfccc7d7a912b73, type: 3} missedHairSprite: {fileID: -2343768176336248091, guid: 8b24cfccb5b27054bbfccc7d7a912b73, type: 3} - eyeSprites: - - {fileID: 307920376999289829, guid: bb906660940d6854a9688fa29ee3320f, type: 3} - - {fileID: -2757775292092084590, guid: bb906660940d6854a9688fa29ee3320f, type: 3} - - {fileID: 742590901564025875, guid: bb906660940d6854a9688fa29ee3320f, type: 3} - - {fileID: 1196389274587160668, guid: bb906660940d6854a9688fa29ee3320f, type: 3} - - {fileID: 4973577898279272786, guid: bb906660940d6854a9688fa29ee3320f, type: 3} - - {fileID: -3425227566578437354, guid: bb906660940d6854a9688fa29ee3320f, type: 3} - - {fileID: 5383462320493624584, guid: bb906660940d6854a9688fa29ee3320f, type: 3} - - {fileID: -5104572340075893893, guid: bb906660940d6854a9688fa29ee3320f, type: 3} - - {fileID: 3309149109353540706, guid: bb906660940d6854a9688fa29ee3320f, type: 3} - - {fileID: -2633746217060458532, guid: bb906660940d6854a9688fa29ee3320f, type: 3} - - {fileID: -5093008757730652310, guid: bb906660940d6854a9688fa29ee3320f, type: 3} - eye1: {fileID: 546148121724187794} - eye2: {fileID: 4499765452033351819} --- !u!1 &5813499711658895222 GameObject: m_ObjectHideFlags: 0 @@ -2355,7 +2458,7 @@ SpriteRenderer: m_LightmapParameters: {fileID: 0} m_SortingLayerID: 0 m_SortingLayer: 0 - m_SortingOrder: 3 + m_SortingOrder: 60 m_Sprite: {fileID: 8479415764655094244, guid: 8b24cfccb5b27054bbfccc7d7a912b73, type: 3} m_Color: {r: 1, g: 1, b: 1, a: 1} m_FlipX: 0 diff --git a/Assets/Resources/Sprites/Games/RhythmTweezers/Animations/Hairs/HairHolder.controller b/Assets/Resources/Sprites/Games/RhythmTweezers/Animations/Hairs/HairHolder.controller index 45df7b6e..b2283c2e 100644 --- a/Assets/Resources/Sprites/Games/RhythmTweezers/Animations/Hairs/HairHolder.controller +++ b/Assets/Resources/Sprites/Games/RhythmTweezers/Animations/Hairs/HairHolder.controller @@ -1,5 +1,31 @@ %YAML 1.1 %TAG !u! tag:unity3d.com,2011: +--- !u!1102 &-9193502180943097461 +AnimatorState: + serializedVersion: 6 + m_ObjectHideFlags: 1 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: LongAppear + 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: 4119d428232ea684fb6790892814119d, type: 2} + m_Tag: + m_SpeedParameter: + m_MirrorParameter: + m_CycleOffsetParameter: + m_TimeParameter: --- !u!91 &9100000 AnimatorController: m_ObjectHideFlags: 0 @@ -22,6 +48,32 @@ AnimatorController: m_IKPass: 0 m_SyncedLayerAffectsTiming: 0 m_Controller: {fileID: 9100000} +--- !u!1102 &2681256841738761072 +AnimatorState: + serializedVersion: 6 + m_ObjectHideFlags: 1 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: LoopPull + 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: 86ffadf9bc91ac64c8b62b28c867df65, type: 2} + m_Tag: + m_SpeedParameter: + m_MirrorParameter: + m_CycleOffsetParameter: + m_TimeParameter: --- !u!1102 &3716456221662251481 AnimatorState: serializedVersion: 6 @@ -63,6 +115,12 @@ AnimatorStateMachine: - serializedVersion: 1 m_State: {fileID: 3716456221662251481} m_Position: {x: 235, y: 65, z: 0} + - serializedVersion: 1 + m_State: {fileID: -9193502180943097461} + m_Position: {x: 270, y: 130, z: 0} + - serializedVersion: 1 + m_State: {fileID: 2681256841738761072} + m_Position: {x: 305, y: 195, z: 0} m_ChildStateMachines: [] m_AnyStateTransitions: [] m_EntryTransitions: [] diff --git a/Assets/Resources/Sprites/Games/RhythmTweezers/Animations/Hairs/LongAppear.anim b/Assets/Resources/Sprites/Games/RhythmTweezers/Animations/Hairs/LongAppear.anim new file mode 100644 index 00000000..1d8ade30 --- /dev/null +++ b/Assets/Resources/Sprites/Games/RhythmTweezers/Animations/Hairs/LongAppear.anim @@ -0,0 +1,875 @@ +%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: LongAppear + serializedVersion: 6 + m_Legacy: 0 + m_Compressed: 0 + m_UseHighQualityCurve: 1 + m_RotationCurves: [] + m_CompressedRotationCurves: [] + m_EulerCurves: [] + m_PositionCurves: + - curve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: {x: 0, y: -0.209, z: 0} + inSlope: {x: Infinity, y: Infinity, z: Infinity} + outSlope: {x: Infinity, y: Infinity, z: Infinity} + tangentMode: 0 + weightedMode: 0 + inWeight: {x: 0.33333334, y: 0.33333334, z: 0.33333334} + outWeight: {x: 0.33333334, y: 0.33333334, z: 0.33333334} + - serializedVersion: 3 + time: 0.06666667 + value: {x: 0, y: -0.225, z: 0} + inSlope: {x: Infinity, y: Infinity, z: Infinity} + outSlope: {x: Infinity, y: Infinity, z: Infinity} + tangentMode: 0 + weightedMode: 0 + inWeight: {x: 0.33333334, y: 0.33333334, z: 0.33333334} + outWeight: {x: 0.33333334, y: 0.33333334, z: 0.33333334} + - serializedVersion: 3 + time: 0.083333336 + value: {x: 0, y: -0.379, z: 0} + inSlope: {x: Infinity, y: Infinity, z: Infinity} + outSlope: {x: Infinity, y: Infinity, z: Infinity} + tangentMode: 0 + weightedMode: 0 + inWeight: {x: 0.33333334, y: 0.33333334, z: 0.33333334} + outWeight: {x: 0.33333334, y: 0.33333334, z: 0.33333334} + - serializedVersion: 3 + time: 0.13333334 + value: {x: 0, y: -0.284, z: 0} + inSlope: {x: Infinity, y: Infinity, z: Infinity} + outSlope: {x: Infinity, y: Infinity, z: Infinity} + tangentMode: 0 + weightedMode: 0 + inWeight: {x: 0.33333334, y: 0.33333334, z: 0.33333334} + outWeight: {x: 0.33333334, y: 0.33333334, z: 0.33333334} + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + path: LongHairHolder/Hair + - curve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: {x: 0.105, y: -1.3562, z: -0.002} + inSlope: {x: Infinity, y: Infinity, z: Infinity} + outSlope: {x: Infinity, y: Infinity, z: Infinity} + tangentMode: 0 + weightedMode: 0 + inWeight: {x: 0.33333334, y: 0.33333334, z: 0.33333334} + outWeight: {x: 0.33333334, y: 0.33333334, z: 0.33333334} + - serializedVersion: 3 + time: 0.083333336 + value: {x: 0.051, y: -0.248, z: -0.001} + inSlope: {x: Infinity, y: Infinity, z: Infinity} + outSlope: {x: Infinity, y: Infinity, z: Infinity} + tangentMode: 0 + weightedMode: 0 + inWeight: {x: 0.33333334, y: 0.33333334, z: 0.33333334} + outWeight: {x: 0.33333334, y: 0.33333334, z: 0.33333334} + - serializedVersion: 3 + time: 0.11666667 + value: {x: 0.087, y: -0.216, z: -0.002} + inSlope: {x: Infinity, y: Infinity, z: Infinity} + outSlope: {x: Infinity, y: Infinity, z: Infinity} + tangentMode: 0 + weightedMode: 0 + inWeight: {x: 0.33333334, y: 0.33333334, z: 0.33333334} + outWeight: {x: 0.33333334, y: 0.33333334, z: 0.33333334} + - serializedVersion: 3 + time: 0.15 + value: {x: 0.119, y: -0.193, z: -0.003} + inSlope: {x: Infinity, y: Infinity, z: Infinity} + outSlope: {x: Infinity, y: Infinity, z: Infinity} + tangentMode: 0 + weightedMode: 0 + inWeight: {x: 0.33333334, y: 0.33333334, z: 0.33333334} + outWeight: {x: 0.33333334, y: 0.33333334, z: 0.33333334} + - serializedVersion: 3 + time: 0.2 + value: {x: 0.128, y: -0.216, z: -0.003} + inSlope: {x: Infinity, y: Infinity, z: Infinity} + outSlope: {x: Infinity, y: Infinity, z: Infinity} + tangentMode: 0 + weightedMode: 0 + inWeight: {x: 0.33333334, y: 0.33333334, z: 0.33333334} + outWeight: {x: 0.33333334, y: 0.33333334, z: 0.33333334} + - serializedVersion: 3 + time: 0.45 + value: {x: 0.112, y: -0.207, z: -0.003} + inSlope: {x: Infinity, y: Infinity, z: Infinity} + outSlope: {x: Infinity, y: Infinity, z: Infinity} + tangentMode: 0 + weightedMode: 0 + inWeight: {x: 0.33333334, y: 0.33333334, z: 0.33333334} + outWeight: {x: 0.33333334, y: 0.33333334, z: 0.33333334} + - serializedVersion: 3 + time: 0.53333336 + value: {x: 0.105, y: -0.207, z: -0.003} + inSlope: {x: Infinity, y: Infinity, z: Infinity} + outSlope: {x: Infinity, y: Infinity, z: Infinity} + tangentMode: 0 + weightedMode: 0 + inWeight: {x: 0.33333334, y: 0.33333334, z: 0.33333334} + outWeight: {x: 0.33333334, y: 0.33333334, z: 0.33333334} + - serializedVersion: 3 + time: 0.65 + value: {x: 0.125, y: -0.197, z: -0.003} + inSlope: {x: Infinity, y: Infinity, z: Infinity} + outSlope: {x: Infinity, y: Infinity, z: Infinity} + tangentMode: 0 + weightedMode: 0 + inWeight: {x: 0.33333334, y: 0.33333334, z: 0.33333334} + outWeight: {x: 0.33333334, y: 0.33333334, z: 0.33333334} + - serializedVersion: 3 + time: 0.76666665 + value: {x: 0.135, y: -0.221, z: -0.003} + inSlope: {x: Infinity, y: Infinity, z: Infinity} + outSlope: {x: Infinity, y: Infinity, z: Infinity} + tangentMode: 0 + weightedMode: 0 + inWeight: {x: 0.33333334, y: 0.33333334, z: 0.33333334} + outWeight: {x: 0.33333334, y: 0.33333334, z: 0.33333334} + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + path: LongHairHolder/Loop + m_ScaleCurves: + - curve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: {x: 1, y: 0.8, z: 1} + inSlope: {x: Infinity, y: Infinity, z: Infinity} + outSlope: {x: Infinity, y: Infinity, z: Infinity} + tangentMode: 0 + weightedMode: 0 + inWeight: {x: 0.33333334, y: 0.33333334, z: 0.33333334} + outWeight: {x: 0.33333334, y: 0.33333334, z: 0.33333334} + - serializedVersion: 3 + time: 0.13333334 + value: {x: 1, y: 0.558497, z: 1} + inSlope: {x: Infinity, y: Infinity, z: Infinity} + outSlope: {x: Infinity, y: Infinity, z: Infinity} + tangentMode: 0 + weightedMode: 0 + inWeight: {x: 0.33333334, y: 0.33333334, z: 0.33333334} + outWeight: {x: 0.33333334, y: 0.33333334, z: 0.33333334} + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + path: LongHairHolder/Hair + m_FloatCurves: + - curve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: Infinity + outSlope: Infinity + tangentMode: 103 + weightedMode: 0 + inWeight: 0 + outWeight: 0 + - serializedVersion: 3 + time: 0.083333336 + value: 1 + inSlope: Infinity + outSlope: Infinity + tangentMode: 103 + weightedMode: 0 + inWeight: 0 + outWeight: 0 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + attribute: m_IsActive + path: LongHairHolder/Loop + classID: 1 + script: {fileID: 0} + m_PPtrCurves: + - curve: + - time: 0 + value: {fileID: -2419696912005567714, guid: 8b24cfccb5b27054bbfccc7d7a912b73, type: 3} + - time: 0.016666668 + value: {fileID: 1401937738139682868, guid: 8b24cfccb5b27054bbfccc7d7a912b73, type: 3} + - time: 0.033333335 + value: {fileID: 1805905626023431962, guid: 8b24cfccb5b27054bbfccc7d7a912b73, type: 3} + - time: 0.05 + value: {fileID: -4253719726650700378, guid: 8b24cfccb5b27054bbfccc7d7a912b73, type: 3} + - time: 0.06666667 + value: {fileID: 3562159510210354730, guid: 8b24cfccb5b27054bbfccc7d7a912b73, type: 3} + - time: 0.083333336 + value: {fileID: -6758644850924707424, guid: 8b24cfccb5b27054bbfccc7d7a912b73, type: 3} + attribute: m_Sprite + path: LongHairHolder/Hair + classID: 212 + script: {fileID: 0} + - curve: + - time: 0 + value: {fileID: -4253719726650700378, guid: 8b24cfccb5b27054bbfccc7d7a912b73, type: 3} + - time: 0.083333336 + value: {fileID: -1399815886517917591, guid: 8b24cfccb5b27054bbfccc7d7a912b73, type: 3} + - time: 0.1 + value: {fileID: -5403727316971640240, guid: 8b24cfccb5b27054bbfccc7d7a912b73, type: 3} + - time: 0.11666667 + value: {fileID: -2242827868839044489, guid: 8b24cfccb5b27054bbfccc7d7a912b73, type: 3} + - time: 0.15 + value: {fileID: -3794404700403252500, guid: 8b24cfccb5b27054bbfccc7d7a912b73, type: 3} + - time: 0.2 + value: {fileID: 6395449411100875954, guid: 8b24cfccb5b27054bbfccc7d7a912b73, type: 3} + - time: 0.28333333 + value: {fileID: 5050934656096793441, guid: 8b24cfccb5b27054bbfccc7d7a912b73, type: 3} + - time: 0.36666667 + value: {fileID: -4206057584696313279, guid: 8b24cfccb5b27054bbfccc7d7a912b73, type: 3} + - time: 0.41666666 + value: {fileID: -3794404700403252500, guid: 8b24cfccb5b27054bbfccc7d7a912b73, type: 3} + - time: 0.45 + value: {fileID: -3526909994744005181, guid: 8b24cfccb5b27054bbfccc7d7a912b73, type: 3} + - time: 0.53333336 + value: {fileID: -2242827868839044489, guid: 8b24cfccb5b27054bbfccc7d7a912b73, type: 3} + - time: 0.65 + value: {fileID: -3794404700403252500, guid: 8b24cfccb5b27054bbfccc7d7a912b73, type: 3} + - time: 0.7 + value: {fileID: -3222625713962711138, guid: 8b24cfccb5b27054bbfccc7d7a912b73, type: 3} + - time: 0.73333335 + value: {fileID: 6395449411100875954, guid: 8b24cfccb5b27054bbfccc7d7a912b73, type: 3} + - time: 0.76666665 + value: {fileID: 5050934656096793441, guid: 8b24cfccb5b27054bbfccc7d7a912b73, type: 3} + attribute: m_Sprite + path: LongHairHolder/Loop + classID: 212 + script: {fileID: 0} + 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: 2790688970 + attribute: 1 + script: {fileID: 0} + typeID: 4 + customType: 0 + isPPtrCurve: 0 + - serializedVersion: 2 + path: 2617177149 + attribute: 1 + script: {fileID: 0} + typeID: 4 + customType: 0 + isPPtrCurve: 0 + - serializedVersion: 2 + path: 2790688970 + attribute: 3 + script: {fileID: 0} + typeID: 4 + customType: 0 + isPPtrCurve: 0 + - serializedVersion: 2 + path: 2617177149 + attribute: 2086281974 + script: {fileID: 0} + typeID: 1 + customType: 0 + isPPtrCurve: 0 + - serializedVersion: 2 + path: 2790688970 + attribute: 0 + script: {fileID: 0} + typeID: 212 + customType: 23 + isPPtrCurve: 1 + - serializedVersion: 2 + path: 2617177149 + attribute: 0 + script: {fileID: 0} + typeID: 212 + customType: 23 + isPPtrCurve: 1 + pptrCurveMapping: + - {fileID: -2419696912005567714, guid: 8b24cfccb5b27054bbfccc7d7a912b73, type: 3} + - {fileID: 1401937738139682868, guid: 8b24cfccb5b27054bbfccc7d7a912b73, type: 3} + - {fileID: 1805905626023431962, guid: 8b24cfccb5b27054bbfccc7d7a912b73, type: 3} + - {fileID: -4253719726650700378, guid: 8b24cfccb5b27054bbfccc7d7a912b73, type: 3} + - {fileID: 3562159510210354730, guid: 8b24cfccb5b27054bbfccc7d7a912b73, type: 3} + - {fileID: -6758644850924707424, guid: 8b24cfccb5b27054bbfccc7d7a912b73, type: 3} + - {fileID: -4253719726650700378, guid: 8b24cfccb5b27054bbfccc7d7a912b73, type: 3} + - {fileID: -1399815886517917591, guid: 8b24cfccb5b27054bbfccc7d7a912b73, type: 3} + - {fileID: -5403727316971640240, guid: 8b24cfccb5b27054bbfccc7d7a912b73, type: 3} + - {fileID: -2242827868839044489, guid: 8b24cfccb5b27054bbfccc7d7a912b73, type: 3} + - {fileID: -3794404700403252500, guid: 8b24cfccb5b27054bbfccc7d7a912b73, type: 3} + - {fileID: 6395449411100875954, guid: 8b24cfccb5b27054bbfccc7d7a912b73, type: 3} + - {fileID: 5050934656096793441, guid: 8b24cfccb5b27054bbfccc7d7a912b73, type: 3} + - {fileID: -4206057584696313279, guid: 8b24cfccb5b27054bbfccc7d7a912b73, type: 3} + - {fileID: -3794404700403252500, guid: 8b24cfccb5b27054bbfccc7d7a912b73, type: 3} + - {fileID: -3526909994744005181, guid: 8b24cfccb5b27054bbfccc7d7a912b73, type: 3} + - {fileID: -2242827868839044489, guid: 8b24cfccb5b27054bbfccc7d7a912b73, type: 3} + - {fileID: -3794404700403252500, guid: 8b24cfccb5b27054bbfccc7d7a912b73, type: 3} + - {fileID: -3222625713962711138, guid: 8b24cfccb5b27054bbfccc7d7a912b73, type: 3} + - {fileID: 6395449411100875954, guid: 8b24cfccb5b27054bbfccc7d7a912b73, type: 3} + - {fileID: 5050934656096793441, guid: 8b24cfccb5b27054bbfccc7d7a912b73, type: 3} + m_AnimationClipSettings: + serializedVersion: 2 + m_AdditiveReferencePoseClip: {fileID: 0} + m_AdditiveReferencePoseTime: 0 + m_StartTime: 0 + m_StopTime: 0.7833333 + 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: + - curve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: Infinity + outSlope: Infinity + tangentMode: 103 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 0.06666667 + value: 0 + inSlope: Infinity + outSlope: Infinity + tangentMode: 103 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 0.083333336 + value: 0 + inSlope: Infinity + outSlope: Infinity + tangentMode: 103 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 0.13333334 + value: 0 + inSlope: Infinity + outSlope: Infinity + tangentMode: 103 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + attribute: m_LocalPosition.x + path: LongHairHolder/Hair + classID: 4 + script: {fileID: 0} + - curve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: -0.209 + inSlope: Infinity + outSlope: Infinity + tangentMode: 103 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 0.06666667 + value: -0.225 + inSlope: Infinity + outSlope: Infinity + tangentMode: 103 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 0.083333336 + value: -0.379 + inSlope: Infinity + outSlope: Infinity + tangentMode: 103 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 0.13333334 + value: -0.284 + inSlope: Infinity + outSlope: Infinity + tangentMode: 103 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + attribute: m_LocalPosition.y + path: LongHairHolder/Hair + classID: 4 + script: {fileID: 0} + - curve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: Infinity + outSlope: Infinity + tangentMode: 103 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 0.06666667 + value: 0 + inSlope: Infinity + outSlope: Infinity + tangentMode: 103 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 0.083333336 + value: 0 + inSlope: Infinity + outSlope: Infinity + tangentMode: 103 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 0.13333334 + value: 0 + inSlope: Infinity + outSlope: Infinity + tangentMode: 103 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + attribute: m_LocalPosition.z + path: LongHairHolder/Hair + classID: 4 + script: {fileID: 0} + - curve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: Infinity + outSlope: Infinity + tangentMode: 103 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 0.13333334 + value: 1 + inSlope: Infinity + outSlope: Infinity + tangentMode: 103 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + attribute: m_LocalScale.x + path: LongHairHolder/Hair + classID: 4 + script: {fileID: 0} + - curve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0.8 + inSlope: Infinity + outSlope: Infinity + tangentMode: 103 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 0.13333334 + value: 0.558497 + inSlope: Infinity + outSlope: Infinity + tangentMode: 103 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + attribute: m_LocalScale.y + path: LongHairHolder/Hair + classID: 4 + script: {fileID: 0} + - curve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: Infinity + outSlope: Infinity + tangentMode: 103 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 0.13333334 + value: 1 + inSlope: Infinity + outSlope: Infinity + tangentMode: 103 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + attribute: m_LocalScale.z + path: LongHairHolder/Hair + classID: 4 + script: {fileID: 0} + - curve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0.105 + inSlope: Infinity + outSlope: Infinity + tangentMode: 103 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 0.083333336 + value: 0.051 + inSlope: Infinity + outSlope: Infinity + tangentMode: 103 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 0.11666667 + value: 0.087 + inSlope: Infinity + outSlope: Infinity + tangentMode: 103 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 0.15 + value: 0.119 + inSlope: Infinity + outSlope: Infinity + tangentMode: 103 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 0.2 + value: 0.128 + inSlope: Infinity + outSlope: Infinity + tangentMode: 103 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 0.45 + value: 0.112 + inSlope: Infinity + outSlope: Infinity + tangentMode: 103 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 0.53333336 + value: 0.105 + inSlope: Infinity + outSlope: Infinity + tangentMode: 103 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 0.65 + value: 0.125 + inSlope: Infinity + outSlope: Infinity + tangentMode: 103 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 0.76666665 + value: 0.135 + inSlope: Infinity + outSlope: Infinity + tangentMode: 103 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + attribute: m_LocalPosition.x + path: LongHairHolder/Loop + classID: 4 + script: {fileID: 0} + - curve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: -1.3562 + inSlope: Infinity + outSlope: Infinity + tangentMode: 103 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 0.083333336 + value: -0.248 + inSlope: Infinity + outSlope: Infinity + tangentMode: 103 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 0.11666667 + value: -0.216 + inSlope: Infinity + outSlope: Infinity + tangentMode: 103 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 0.15 + value: -0.193 + inSlope: Infinity + outSlope: Infinity + tangentMode: 103 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 0.2 + value: -0.216 + inSlope: Infinity + outSlope: Infinity + tangentMode: 103 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 0.45 + value: -0.207 + inSlope: Infinity + outSlope: Infinity + tangentMode: 103 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 0.53333336 + value: -0.207 + inSlope: Infinity + outSlope: Infinity + tangentMode: 103 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 0.65 + value: -0.197 + inSlope: Infinity + outSlope: Infinity + tangentMode: 103 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 0.76666665 + value: -0.221 + inSlope: Infinity + outSlope: Infinity + tangentMode: 103 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + attribute: m_LocalPosition.y + path: LongHairHolder/Loop + classID: 4 + script: {fileID: 0} + - curve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: -0.002 + inSlope: Infinity + outSlope: Infinity + tangentMode: 103 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 0.083333336 + value: -0.001 + inSlope: Infinity + outSlope: Infinity + tangentMode: 103 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 0.11666667 + value: -0.002 + inSlope: Infinity + outSlope: Infinity + tangentMode: 103 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 0.15 + value: -0.003 + inSlope: Infinity + outSlope: Infinity + tangentMode: 103 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 0.2 + value: -0.003 + inSlope: Infinity + outSlope: Infinity + tangentMode: 103 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 0.45 + value: -0.003 + inSlope: Infinity + outSlope: Infinity + tangentMode: 103 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 0.53333336 + value: -0.003 + inSlope: Infinity + outSlope: Infinity + tangentMode: 103 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 0.65 + value: -0.003 + inSlope: Infinity + outSlope: Infinity + tangentMode: 103 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 0.76666665 + value: -0.003 + inSlope: Infinity + outSlope: Infinity + tangentMode: 103 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + attribute: m_LocalPosition.z + path: LongHairHolder/Loop + classID: 4 + script: {fileID: 0} + - curve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: Infinity + outSlope: Infinity + tangentMode: 103 + weightedMode: 0 + inWeight: 0 + outWeight: 0 + - serializedVersion: 3 + time: 0.083333336 + value: 1 + inSlope: Infinity + outSlope: Infinity + tangentMode: 103 + weightedMode: 0 + inWeight: 0 + outWeight: 0 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + attribute: m_IsActive + path: LongHairHolder/Loop + classID: 1 + script: {fileID: 0} + m_EulerEditorCurves: [] + m_HasGenericRootTransform: 0 + m_HasMotionFloatCurves: 0 + m_Events: [] diff --git a/Assets/Resources/Sprites/Games/RhythmTweezers/Animations/Hairs/LongAppear.anim.meta b/Assets/Resources/Sprites/Games/RhythmTweezers/Animations/Hairs/LongAppear.anim.meta new file mode 100644 index 00000000..48811a3e --- /dev/null +++ b/Assets/Resources/Sprites/Games/RhythmTweezers/Animations/Hairs/LongAppear.anim.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 4119d428232ea684fb6790892814119d +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 7400000 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Resources/Sprites/Games/RhythmTweezers/Animations/Hairs/LoopPull.anim b/Assets/Resources/Sprites/Games/RhythmTweezers/Animations/Hairs/LoopPull.anim new file mode 100644 index 00000000..fda62ace --- /dev/null +++ b/Assets/Resources/Sprites/Games/RhythmTweezers/Animations/Hairs/LoopPull.anim @@ -0,0 +1,480 @@ +%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: LoopPull + serializedVersion: 6 + m_Legacy: 0 + m_Compressed: 0 + m_UseHighQualityCurve: 1 + m_RotationCurves: [] + m_CompressedRotationCurves: [] + m_EulerCurves: [] + m_PositionCurves: + - curve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: {x: 0.135, y: -0.221, z: -0.003} + inSlope: {x: Infinity, y: Infinity, z: Infinity} + outSlope: {x: -0.56000006, y: 0, z: 0} + tangentMode: 0 + weightedMode: 0 + inWeight: {x: 0.33333334, y: 0.33333334, z: 0.33333334} + outWeight: {x: 0.33333334, y: 0.33333334, z: 0.33333334} + - serializedVersion: 3 + time: 0.05 + value: {x: 0.107, y: -0.221, z: -0.003} + inSlope: {x: -0.56000006, y: -0, z: -0} + outSlope: {x: -0.65999997, y: 0, z: 0} + tangentMode: 0 + weightedMode: 0 + inWeight: {x: 0.33333334, y: 0.33333334, z: 0.33333334} + outWeight: {x: 0.33333334, y: 0.33333334, z: 0.33333334} + - serializedVersion: 3 + time: 0.083333336 + value: {x: 0.085, y: -0.221, z: -0.003} + inSlope: {x: -0.65999997, y: -0, z: -0} + outSlope: {x: -0.64, y: 0, z: 0} + tangentMode: 0 + weightedMode: 0 + inWeight: {x: 0.33333334, y: 0.33333334, z: 0.33333334} + outWeight: {x: 0.33333334, y: 0.33333334, z: 0.33333334} + - serializedVersion: 3 + time: 0.13333334 + value: {x: 0.053, y: -0.221, z: -0.003} + inSlope: {x: -0.64, y: -0, z: -0} + outSlope: {x: -0.5, y: 0, z: 0} + tangentMode: 0 + weightedMode: 0 + inWeight: {x: 0.33333334, y: 0.33333334, z: 0.33333334} + outWeight: {x: 0.33333334, y: 0.33333334, z: 0.33333334} + - serializedVersion: 3 + time: 0.18333334 + value: {x: 0.028, y: -0.221, z: -0.003} + inSlope: {x: -0.5, y: -0, z: -0} + outSlope: {x: -0.9600001, y: 0, z: 0} + tangentMode: 0 + weightedMode: 0 + inWeight: {x: 0.33333334, y: 0.33333334, z: 0.33333334} + outWeight: {x: 0.33333334, y: 0.33333334, z: 0.33333334} + - serializedVersion: 3 + time: 0.2 + value: {x: 0.012, y: -0.221, z: -0.003} + inSlope: {x: -0.9600001, y: -0, z: -0} + outSlope: {x: Infinity, y: Infinity, z: Infinity} + tangentMode: 0 + weightedMode: 0 + inWeight: {x: 0.33333334, y: 0.33333334, z: 0.33333334} + outWeight: {x: 0.33333334, y: 0.33333334, z: 0.33333334} + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + path: LongHairHolder/Loop + m_ScaleCurves: + - curve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: {x: 1, y: 0.8, z: 1} + inSlope: {x: 0, y: 0, z: 0} + outSlope: {x: 0, y: 3.3500001, z: 0} + tangentMode: 0 + weightedMode: 0 + inWeight: {x: 0.33333334, y: 0.33333334, z: 0.33333334} + outWeight: {x: 0.33333334, y: 0.33333334, z: 0.33333334} + - serializedVersion: 3 + time: 0.2 + value: {x: 1, y: 1.47, z: 1} + inSlope: {x: -0, y: 3.3500001, z: -0} + outSlope: {x: 0, y: 0, z: 0} + tangentMode: 0 + weightedMode: 0 + inWeight: {x: 0.33333334, y: 0.33333334, z: 0.33333334} + outWeight: {x: 0.33333334, y: 0.33333334, z: 0.33333334} + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + path: LongHairHolder + m_FloatCurves: [] + m_PPtrCurves: + - curve: + - time: 0 + value: {fileID: 5050934656096793441, guid: 8b24cfccb5b27054bbfccc7d7a912b73, type: 3} + - time: 0.016666668 + value: {fileID: 6395449411100875954, guid: 8b24cfccb5b27054bbfccc7d7a912b73, type: 3} + - time: 0.033333335 + value: {fileID: -3222625713962711138, guid: 8b24cfccb5b27054bbfccc7d7a912b73, type: 3} + - time: 0.05 + value: {fileID: -3794404700403252500, guid: 8b24cfccb5b27054bbfccc7d7a912b73, type: 3} + - time: 0.06666667 + value: {fileID: -3526909994744005181, guid: 8b24cfccb5b27054bbfccc7d7a912b73, type: 3} + - time: 0.083333336 + value: {fileID: -2242827868839044489, guid: 8b24cfccb5b27054bbfccc7d7a912b73, type: 3} + - time: 0.1 + value: {fileID: 178135363591916699, guid: 8b24cfccb5b27054bbfccc7d7a912b73, type: 3} + - time: 0.11666667 + value: {fileID: 947480396733668151, guid: 8b24cfccb5b27054bbfccc7d7a912b73, type: 3} + - time: 0.13333334 + value: {fileID: 584057860369880946, guid: 8b24cfccb5b27054bbfccc7d7a912b73, type: 3} + - time: 0.15 + value: {fileID: 5445009945567827846, guid: 8b24cfccb5b27054bbfccc7d7a912b73, type: 3} + - time: 0.16666667 + value: {fileID: -5403727316971640240, guid: 8b24cfccb5b27054bbfccc7d7a912b73, type: 3} + - time: 0.18333334 + value: {fileID: -1399815886517917591, guid: 8b24cfccb5b27054bbfccc7d7a912b73, type: 3} + - time: 0.2 + value: {fileID: 942323314217520520, guid: 8b24cfccb5b27054bbfccc7d7a912b73, type: 3} + attribute: m_Sprite + path: LongHairHolder/Loop + classID: 212 + script: {fileID: 0} + 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: 2617177149 + attribute: 1 + script: {fileID: 0} + typeID: 4 + customType: 0 + isPPtrCurve: 0 + - serializedVersion: 2 + path: 957892820 + attribute: 3 + script: {fileID: 0} + typeID: 4 + customType: 0 + isPPtrCurve: 0 + - serializedVersion: 2 + path: 2617177149 + attribute: 0 + script: {fileID: 0} + typeID: 212 + customType: 23 + isPPtrCurve: 1 + pptrCurveMapping: + - {fileID: 5050934656096793441, guid: 8b24cfccb5b27054bbfccc7d7a912b73, type: 3} + - {fileID: 6395449411100875954, guid: 8b24cfccb5b27054bbfccc7d7a912b73, type: 3} + - {fileID: -3222625713962711138, guid: 8b24cfccb5b27054bbfccc7d7a912b73, type: 3} + - {fileID: -3794404700403252500, guid: 8b24cfccb5b27054bbfccc7d7a912b73, type: 3} + - {fileID: -3526909994744005181, guid: 8b24cfccb5b27054bbfccc7d7a912b73, type: 3} + - {fileID: -2242827868839044489, guid: 8b24cfccb5b27054bbfccc7d7a912b73, type: 3} + - {fileID: 178135363591916699, guid: 8b24cfccb5b27054bbfccc7d7a912b73, type: 3} + - {fileID: 947480396733668151, guid: 8b24cfccb5b27054bbfccc7d7a912b73, type: 3} + - {fileID: 584057860369880946, guid: 8b24cfccb5b27054bbfccc7d7a912b73, type: 3} + - {fileID: 5445009945567827846, guid: 8b24cfccb5b27054bbfccc7d7a912b73, type: 3} + - {fileID: -5403727316971640240, guid: 8b24cfccb5b27054bbfccc7d7a912b73, type: 3} + - {fileID: -1399815886517917591, guid: 8b24cfccb5b27054bbfccc7d7a912b73, type: 3} + - {fileID: 942323314217520520, guid: 8b24cfccb5b27054bbfccc7d7a912b73, type: 3} + m_AnimationClipSettings: + serializedVersion: 2 + m_AdditiveReferencePoseClip: {fileID: 0} + m_AdditiveReferencePoseTime: 0 + m_StartTime: 0 + m_StopTime: 0.21666667 + 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: + - curve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0.135 + inSlope: Infinity + outSlope: -0.56000006 + tangentMode: 69 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 0.05 + value: 0.107 + inSlope: -0.56000006 + outSlope: -0.65999997 + tangentMode: 69 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 0.083333336 + value: 0.085 + inSlope: -0.65999997 + outSlope: -0.64 + tangentMode: 69 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 0.13333334 + value: 0.053 + inSlope: -0.64 + outSlope: -0.5 + tangentMode: 69 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 0.18333334 + value: 0.028 + inSlope: -0.5 + outSlope: -0.9600001 + tangentMode: 69 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 0.2 + value: 0.012 + inSlope: -0.9600001 + outSlope: Infinity + tangentMode: 69 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + attribute: m_LocalPosition.x + path: LongHairHolder/Loop + classID: 4 + script: {fileID: 0} + - curve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: -0.221 + inSlope: Infinity + outSlope: 0 + tangentMode: 69 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 0.05 + value: -0.221 + inSlope: -0 + outSlope: 0 + tangentMode: 69 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 0.083333336 + value: -0.221 + inSlope: -0 + outSlope: 0 + tangentMode: 69 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 0.13333334 + value: -0.221 + inSlope: -0 + outSlope: 0 + tangentMode: 69 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 0.18333334 + value: -0.221 + inSlope: -0 + outSlope: 0 + tangentMode: 69 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 0.2 + value: -0.221 + inSlope: -0 + outSlope: Infinity + tangentMode: 69 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + attribute: m_LocalPosition.y + path: LongHairHolder/Loop + classID: 4 + script: {fileID: 0} + - curve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: -0.003 + inSlope: Infinity + outSlope: 0 + tangentMode: 69 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 0.05 + value: -0.003 + inSlope: -0 + outSlope: 0 + tangentMode: 69 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 0.083333336 + value: -0.003 + inSlope: -0 + outSlope: 0 + tangentMode: 69 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 0.13333334 + value: -0.003 + inSlope: -0 + outSlope: 0 + tangentMode: 69 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 0.18333334 + value: -0.003 + inSlope: -0 + outSlope: 0 + tangentMode: 69 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 0.2 + value: -0.003 + inSlope: -0 + outSlope: Infinity + tangentMode: 69 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + attribute: m_LocalPosition.z + path: LongHairHolder/Loop + classID: 4 + script: {fileID: 0} + - curve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 69 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 0.2 + value: 1 + inSlope: -0 + outSlope: 0 + tangentMode: 69 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + attribute: m_LocalScale.x + path: LongHairHolder + classID: 4 + script: {fileID: 0} + - curve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0.8 + inSlope: 0 + outSlope: 3.3500001 + tangentMode: 69 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 0.2 + value: 1.47 + inSlope: 3.3500001 + outSlope: 0 + tangentMode: 69 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + attribute: m_LocalScale.y + path: LongHairHolder + classID: 4 + script: {fileID: 0} + - curve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: 0 + outSlope: 0 + tangentMode: 69 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 0.2 + value: 1 + inSlope: -0 + outSlope: 0 + tangentMode: 69 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + attribute: m_LocalScale.z + path: LongHairHolder + classID: 4 + script: {fileID: 0} + m_EulerEditorCurves: [] + m_HasGenericRootTransform: 0 + m_HasMotionFloatCurves: 0 + m_Events: [] diff --git a/Assets/Resources/Sprites/Games/RhythmTweezers/Animations/Hairs/LoopPull.anim.meta b/Assets/Resources/Sprites/Games/RhythmTweezers/Animations/Hairs/LoopPull.anim.meta new file mode 100644 index 00000000..781fc26a --- /dev/null +++ b/Assets/Resources/Sprites/Games/RhythmTweezers/Animations/Hairs/LoopPull.anim.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 86ffadf9bc91ac64c8b62b28c867df65 +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 7400000 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Resources/Sprites/Games/RhythmTweezers/Animations/Tweezers/TweezerHolder.controller b/Assets/Resources/Sprites/Games/RhythmTweezers/Animations/Tweezers/TweezerHolder.controller index c7ecd531..3bbdfed6 100644 --- a/Assets/Resources/Sprites/Games/RhythmTweezers/Animations/Tweezers/TweezerHolder.controller +++ b/Assets/Resources/Sprites/Games/RhythmTweezers/Animations/Tweezers/TweezerHolder.controller @@ -21,6 +21,9 @@ AnimatorStateMachine: - serializedVersion: 1 m_State: {fileID: 3753830842356383128} m_Position: {x: 280, y: 200, z: 0} + - serializedVersion: 1 + m_State: {fileID: 8955686477747779503} + m_Position: {x: 315, y: 265, z: 0} m_ChildStateMachines: [] m_AnyStateTransitions: [] m_EntryTransitions: [] @@ -157,3 +160,29 @@ AnimatorState: m_MirrorParameter: m_CycleOffsetParameter: m_TimeParameter: +--- !u!1102 &8955686477747779503 +AnimatorState: + serializedVersion: 6 + m_ObjectHideFlags: 1 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: Tweezers_LongPluck + 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: 1b2d596dfb5c7c5409cd40feff375c4b, type: 2} + m_Tag: + m_SpeedParameter: + m_MirrorParameter: + m_CycleOffsetParameter: + m_TimeParameter: diff --git a/Assets/Resources/Sprites/Games/RhythmTweezers/Animations/Tweezers/Tweezers_LongPluck.anim b/Assets/Resources/Sprites/Games/RhythmTweezers/Animations/Tweezers/Tweezers_LongPluck.anim new file mode 100644 index 00000000..c7b0c9f7 --- /dev/null +++ b/Assets/Resources/Sprites/Games/RhythmTweezers/Animations/Tweezers/Tweezers_LongPluck.anim @@ -0,0 +1,372 @@ +%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: Tweezers_LongPluck + serializedVersion: 6 + m_Legacy: 0 + m_Compressed: 0 + m_UseHighQualityCurve: 1 + m_RotationCurves: [] + m_CompressedRotationCurves: [] + m_EulerCurves: [] + m_PositionCurves: + - curve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: {x: -0, y: -7.403, z: 0} + inSlope: {x: 0, y: 0, z: 0} + outSlope: {x: 0, y: -3.160801, z: 0} + tangentMode: 0 + weightedMode: 0 + inWeight: {x: 0.33333334, y: 0.33333334, z: 0.33333334} + outWeight: {x: 0.33333334, y: 0.33333334, z: 0.33333334} + - serializedVersion: 3 + time: 0.41666666 + value: {x: 0, y: -8.72, z: 0} + inSlope: {x: 0, y: -3.160801, z: -0} + outSlope: {x: 0, y: 0, z: 0} + tangentMode: 0 + weightedMode: 0 + inWeight: {x: 0.33333334, y: 0.33333334, z: 0.33333334} + outWeight: {x: 0.33333334, y: 0.33333334, z: 0.33333334} + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + path: Tweezers + - curve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: {x: -0, y: -8.696, z: 0} + inSlope: {x: 0, y: 0, z: 0} + outSlope: {x: 0, y: 0, z: 0} + tangentMode: 0 + weightedMode: 0 + inWeight: {x: 0, y: 0.33333334, z: 0.33333334} + outWeight: {x: 0, y: 0.33333334, z: 0.33333334} + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + path: Zoom + m_ScaleCurves: [] + m_FloatCurves: + - curve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: Infinity + outSlope: Infinity + tangentMode: 69 + weightedMode: 0 + inWeight: 0 + outWeight: 0 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + attribute: m_IsActive + path: PluckFx + classID: 1 + script: {fileID: 0} + - curve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: Infinity + outSlope: -14.999999 + tangentMode: 69 + weightedMode: 0 + inWeight: 0 + outWeight: 0 + - serializedVersion: 3 + time: 0.06666667 + value: 0 + inSlope: -14.999999 + outSlope: Infinity + tangentMode: 69 + weightedMode: 0 + inWeight: 0 + outWeight: 0 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + attribute: m_IsActive + path: Zoom + classID: 1 + script: {fileID: 0} + m_PPtrCurves: + - curve: + - time: 0 + value: {fileID: -5355649897007194340, guid: 8b24cfccb5b27054bbfccc7d7a912b73, type: 3} + attribute: m_Sprite + path: Tweezers + classID: 212 + script: {fileID: 0} + 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: 183621861 + attribute: 1 + script: {fileID: 0} + typeID: 4 + customType: 0 + isPPtrCurve: 0 + - serializedVersion: 2 + path: 1699871734 + attribute: 2086281974 + script: {fileID: 0} + typeID: 1 + customType: 0 + isPPtrCurve: 0 + - serializedVersion: 2 + path: 387569226 + attribute: 2086281974 + script: {fileID: 0} + typeID: 1 + customType: 0 + isPPtrCurve: 0 + - serializedVersion: 2 + path: 183621861 + attribute: 0 + script: {fileID: 0} + typeID: 212 + customType: 23 + isPPtrCurve: 1 + - serializedVersion: 2 + path: 387569226 + attribute: 1 + script: {fileID: 0} + typeID: 4 + customType: 0 + isPPtrCurve: 0 + pptrCurveMapping: + - {fileID: -5355649897007194340, guid: 8b24cfccb5b27054bbfccc7d7a912b73, type: 3} + m_AnimationClipSettings: + serializedVersion: 2 + m_AdditiveReferencePoseClip: {fileID: 0} + m_AdditiveReferencePoseTime: 0 + m_StartTime: 0 + m_StopTime: 0.41666666 + 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: + - curve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: Infinity + outSlope: Infinity + tangentMode: 69 + weightedMode: 0 + inWeight: 0 + outWeight: 0 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + attribute: m_IsActive + path: PluckFx + classID: 1 + script: {fileID: 0} + - curve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: -0 + inSlope: 0 + outSlope: 0 + tangentMode: 69 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 0.41666666 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 69 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + attribute: m_LocalPosition.x + path: Tweezers + classID: 4 + script: {fileID: 0} + - curve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: -7.403 + inSlope: 0 + outSlope: -3.160801 + tangentMode: 69 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 0.41666666 + value: -8.72 + inSlope: -3.160801 + outSlope: 0 + tangentMode: 69 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + attribute: m_LocalPosition.y + path: Tweezers + classID: 4 + script: {fileID: 0} + - curve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 69 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 0.41666666 + value: 0 + inSlope: -0 + outSlope: 0 + tangentMode: 69 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + attribute: m_LocalPosition.z + path: Tweezers + classID: 4 + script: {fileID: 0} + - curve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: -0 + inSlope: 0 + outSlope: 0 + tangentMode: 69 + weightedMode: 0 + inWeight: 0 + outWeight: 0 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + attribute: m_LocalPosition.x + path: Zoom + classID: 4 + script: {fileID: 0} + - curve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: -8.696 + inSlope: 0 + outSlope: 0 + tangentMode: 69 + weightedMode: 0 + inWeight: 0 + outWeight: 0 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + attribute: m_LocalPosition.y + path: Zoom + classID: 4 + script: {fileID: 0} + - curve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 69 + weightedMode: 0 + inWeight: 0 + outWeight: 0 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + attribute: m_LocalPosition.z + path: Zoom + classID: 4 + script: {fileID: 0} + - curve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 1 + inSlope: Infinity + outSlope: -14.999999 + tangentMode: 69 + weightedMode: 0 + inWeight: 0 + outWeight: 0 + - serializedVersion: 3 + time: 0.06666667 + value: 0 + inSlope: -14.999999 + outSlope: Infinity + tangentMode: 69 + weightedMode: 0 + inWeight: 0 + outWeight: 0 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + attribute: m_IsActive + path: Zoom + classID: 1 + script: {fileID: 0} + m_EulerEditorCurves: [] + m_HasGenericRootTransform: 0 + m_HasMotionFloatCurves: 0 + m_Events: [] diff --git a/Assets/Resources/Sprites/Games/RhythmTweezers/Animations/Tweezers/Tweezers_LongPluck.anim.meta b/Assets/Resources/Sprites/Games/RhythmTweezers/Animations/Tweezers/Tweezers_LongPluck.anim.meta new file mode 100644 index 00000000..4d2e3846 --- /dev/null +++ b/Assets/Resources/Sprites/Games/RhythmTweezers/Animations/Tweezers/Tweezers_LongPluck.anim.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 1b2d596dfb5c7c5409cd40feff375c4b +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 7400000 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Scripts/Games/RhythmTweezers/LongHair.cs b/Assets/Scripts/Games/RhythmTweezers/LongHair.cs index b30533f3..0f09203b 100644 --- a/Assets/Scripts/Games/RhythmTweezers/LongHair.cs +++ b/Assets/Scripts/Games/RhythmTweezers/LongHair.cs @@ -2,14 +2,23 @@ using System.Collections; using System.Collections.Generic; using UnityEngine; +using RhythmHeavenMania.Util; + namespace RhythmHeavenMania.Games.RhythmTweezers { public class LongHair : PlayerActionObject { public float createBeat; + public GameObject hairSprite; + public GameObject stubbleSprite; private RhythmTweezers game; private Tweezers tweezers; + private bool isHolding = false; + private float holdBeat = 0f; + + public GameObject holder; + private void Awake() { game = RhythmTweezers.instance; @@ -25,13 +34,42 @@ namespace RhythmHeavenMania.Games.RhythmTweezers { if (state.perfect) { - Ace(); + Jukebox.PlayOneShotGame($"rhythmTweezers/longPull{UnityEngine.Random.Range(1, 5)}"); + isHolding = true; + holdBeat = Conductor.instance.songPositionInBeats; } } + + if (isHolding && Conductor.instance.songPositionInBeats >= holdBeat + 0.5f) + { + Destroy(holder.transform.GetChild(0).gameObject); + isHolding = false; + Ace(); + } + + + if (isHolding) + { + holder.transform.eulerAngles = new Vector3(0, 0, tweezers.transform.eulerAngles.z * 1.056f); + holder.transform.GetChild(0).transform.localScale = Vector2.one / holder.transform.localScale; + + float normalizedBeat = Conductor.instance.GetPositionFromBeat(holdBeat, 0.5f); + GetComponent().Play("LoopPull", 0, normalizedBeat); + tweezers.anim.Play("Tweezers_LongPluck", 0, normalizedBeat); + // float angleBetweenTweezersAndHair = angleBtw2Points(tweezers.transform.position, holder.transform.position); + // holder.transform.rotation = Quaternion.Euler(new Vector3(0, 0, angleBetweenTweezersAndHair)); + } + } + + + float angleBtw2Points(Vector3 a, Vector3 b) + { + return Mathf.Atan2(a.y - b.y, a.x - b.x) * Mathf.Rad2Deg; } public void Ace() { + Jukebox.PlayOneShotGame("rhythmTweezers/longPullEnd"); tweezers.LongPluck(true, this); tweezers.hitOnFrame++; diff --git a/Assets/Scripts/Games/RhythmTweezers/RhythmTweezers.cs b/Assets/Scripts/Games/RhythmTweezers/RhythmTweezers.cs index 08402350..42b1cd47 100644 --- a/Assets/Scripts/Games/RhythmTweezers/RhythmTweezers.cs +++ b/Assets/Scripts/Games/RhythmTweezers/RhythmTweezers.cs @@ -58,6 +58,7 @@ namespace RhythmHeavenMania.Games.RhythmTweezers Jukebox.PlayOneShotGame("rhythmTweezers/shortAppear", beat); Hair hair = Instantiate(hairBase, HairsHolder.transform).GetComponent(); hair.gameObject.SetActive(true); + hair.GetComponent().Play("SmallAppear", 0, 0); float rot = -58f + 116 * Mathp.Normalize(beat, intervalStartBeat, intervalStartBeat + beatInterval - 1f); hair.transform.eulerAngles = new Vector3(0, 0, rot); @@ -77,6 +78,7 @@ namespace RhythmHeavenMania.Games.RhythmTweezers Jukebox.PlayOneShotGame("rhythmTweezers/longAppear", beat); LongHair hair = Instantiate(longHairBase, HairsHolder.transform).GetComponent(); hair.gameObject.SetActive(true); + hair.GetComponent().Play("LongAppear", 0, 0); float rot = -58f + 116 * Mathp.Normalize(beat, intervalStartBeat, intervalStartBeat + beatInterval - 1f); hair.transform.eulerAngles = new Vector3(0, 0, rot); diff --git a/Assets/Scripts/Games/RhythmTweezers/Tweezers.cs b/Assets/Scripts/Games/RhythmTweezers/Tweezers.cs index f25c1190..9980afab 100644 --- a/Assets/Scripts/Games/RhythmTweezers/Tweezers.cs +++ b/Assets/Scripts/Games/RhythmTweezers/Tweezers.cs @@ -79,21 +79,26 @@ namespace RhythmHeavenMania.Games.RhythmTweezers public void LongPluck(bool ace, LongHair hair) { - anim.Play("Tweezers_Pluck", 0, 0); - - if (hitOnFrame > 0) return; + DropHeldHair(); if (ace) { - float beat = Conductor.instance.songPositionInBeats; - MultiSound.Play(new MultiSound.Sound[] - { - new MultiSound.Sound($"rhythmTweezers/longPull{UnityEngine.Random.Range(1, 5)}", beat), - new MultiSound.Sound("rhythmTweezers/longPullEnd", beat + 0.5f), - }); + hair.hairSprite.SetActive(false); + hair.stubbleSprite.SetActive(true); - Destroy(hair.gameObject); + game.hairsLeft--; + game.eyeSize = Mathf.Clamp(game.eyeSize + 1, 0, 10); + + if (game.hairsLeft <= 0) + vegetableAnim.Play("HopFinal", 0, 0); + else + vegetableAnim.Play("Hop" + game.eyeSize.ToString(), 0, 0); + + anim.Play("Tweezers_Pluck_Success", 0, 0); } + + pluckingThisFrame = true; + holdingHair = true; } public void DropHeldHair() @@ -110,6 +115,7 @@ namespace RhythmHeavenMania.Games.RhythmTweezers // Make the hair spin. // (The prefab has a Rigidbody2D component already so that it falls) + droppedHair.GetComponent().interpolation = RigidbodyInterpolation2D.Interpolate; droppedHair.GetComponent().angularVelocity = UnityEngine.Random.Range(-120f, 120f); holdingHair = false;