From 72de3c7b4291377df97aa61572a3ef3bd7f96b93 Mon Sep 17 00:00:00 2001 From: fu-majime Date: Mon, 15 Apr 2024 18:22:51 +0900 Subject: [PATCH] resizable --- Assets/Resources/Games/chameleon.prefab | 90 +------------ .../Sprites/Editor/GameIcons/chameleon.png | Bin 0 -> 44698 bytes .../Editor/GameIcons/chameleon.png.meta | 123 ++++++++++++++++++ .../Games/Chameleon/Animations/Fly.controller | 107 ++------------- .../Chameleon/Animations/Wing.controller | 29 +++++ .../Chameleon/Animations/flyCloseMoveEnd.anim | 90 ++++++++++++- .../Chameleon/Animations/flyFarFall.anim | 2 +- .../Chameleon/Animations/flyFarMoveEnd.anim | 92 ++++++++++++- Assets/Scripts/Games/Chameleon/Chameleon.cs | 18 ++- Assets/Scripts/Games/Chameleon/Fly.cs | 53 ++++---- 10 files changed, 381 insertions(+), 223 deletions(-) create mode 100644 Assets/Resources/Sprites/Editor/GameIcons/chameleon.png create mode 100644 Assets/Resources/Sprites/Editor/GameIcons/chameleon.png.meta diff --git a/Assets/Resources/Games/chameleon.prefab b/Assets/Resources/Games/chameleon.prefab index 9c1039217..4b6fbcd9d 100644 --- a/Assets/Resources/Games/chameleon.prefab +++ b/Assets/Resources/Games/chameleon.prefab @@ -1316,90 +1316,6 @@ SpriteRenderer: m_WasSpriteAssigned: 1 m_MaskInteraction: 0 m_SpriteSortPoint: 0 ---- !u!1 &2671326294020303789 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 8411741261202548534} - - component: {fileID: 3347665118137351440} - m_Layer: 0 - m_Name: Circle - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!4 &8411741261202548534 -Transform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 2671326294020303789} - m_LocalRotation: {x: -0, y: -0, z: -0, w: 1} - m_LocalPosition: {x: 1.5, y: -0.25, z: 0} - m_LocalScale: {x: 1.5, y: 1.5, z: 1.5} - m_ConstrainProportionsScale: 1 - m_Children: [] - m_Father: {fileID: 5813499711186931250} - m_RootOrder: 3 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!212 &3347665118137351440 -SpriteRenderer: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 2671326294020303789} - m_Enabled: 1 - m_CastShadows: 0 - m_ReceiveShadows: 0 - m_DynamicOccludee: 1 - m_StaticShadowCaster: 0 - 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: 0 - m_Sprite: {fileID: -2413806693520163455, guid: a86470a33a6bf42c4b3595704624658b, type: 3} - m_Color: {r: 1, g: 1, b: 1, a: 1} - m_FlipX: 0 - m_FlipY: 0 - m_DrawMode: 0 - m_Size: {x: 1, y: 1} - m_AdaptiveModeThreshold: 0.5 - m_SpriteTileMode: 0 - m_WasSpriteAssigned: 1 - m_MaskInteraction: 0 - m_SpriteSortPoint: 0 --- !u!1 &2698380409090072979 GameObject: m_ObjectHideFlags: 0 @@ -1424,7 +1340,7 @@ Transform: m_PrefabInstance: {fileID: 0} m_PrefabAsset: {fileID: 0} m_GameObject: {fileID: 2698380409090072979} - m_LocalRotation: {x: -0, y: 0, z: 0.13052616, w: 0.99144495} + m_LocalRotation: {x: 0, y: 0, z: 0.13052616, w: 0.9914449} m_LocalPosition: {x: -0.135, y: 0.10999999, z: 0} m_LocalScale: {x: 1.0000001, y: 1.0000001, z: 1} m_ConstrainProportionsScale: 0 @@ -3054,7 +2970,6 @@ Transform: - {fileID: 2619828408818896828} - {fileID: 4474597943635544359} - {fileID: 1483397584454175980} - - {fileID: 8411741261202548534} m_Father: {fileID: 0} m_RootOrder: 0 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} @@ -3449,8 +3364,9 @@ MonoBehaviour: m_Name: m_EditorClassIdentifier: startBeat: 0 - flyType: 0 + lengthBeat: 0 flyAnim: {fileID: 6799900630987709906} + wingAnim: {fileID: 4509423242586505778} --- !u!95 &6799900630987709906 Animator: serializedVersion: 5 diff --git a/Assets/Resources/Sprites/Editor/GameIcons/chameleon.png b/Assets/Resources/Sprites/Editor/GameIcons/chameleon.png new file mode 100644 index 0000000000000000000000000000000000000000..d1cf589b69d29248cba018f393c05d9e6fee2585 GIT binary patch literal 44698 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 { new Param("countIn", false, "Count-In"), @@ -35,10 +36,11 @@ namespace HeavenStudio.Games.Loaders { preFunction = delegate { var e = eventCaller.currentEntity; - Chameleon.PreSpawnFly(e.beat, 7, (int)Scripts_Chameleon.FlyType.Close); + Chameleon.PreSpawnFly(e.beat, e.length - 4, (int)Scripts_Chameleon.FlyType.Close); if (e["countIn"]) Chameleon.CountIn(e.beat); }, defaultLength = 8f, + resizable = true, parameters = new List() { new Param("countIn", false, "Count-In"), @@ -207,13 +209,21 @@ namespace HeavenStudio.Games moveEyeTime = 0; if (currentFly is not null) { - if (cond.songPositionInBeatsAsDouble >= currentFly.startBeat) + if (cond.songPositionInBeatsAsDouble >= currentFly.startBeat + 1) { Vector3 relative = currentFly.gameObject.transform.InverseTransformPoint(chameleonEye.transform.position); float currentAngle = chameleonEye.eulerAngles.z; currentAngle = currentAngle > 180 ? currentAngle - 360 : currentAngle; float nextAngle = 165 + Mathf.Atan2(relative.y, relative.x) * Mathf.Rad2Deg; nextAngle = nextAngle > 180 ? nextAngle - 360 : nextAngle; + if (currentFly.isFall) + { + nextAngle = currentFly.flyType switch { + FlyType.Far => (nextAngle < -70) ? -70 : nextAngle, + FlyType.Close => (nextAngle < -100) ? -100 : nextAngle, + _ => throw new System.NotImplementedException() + }; + } float angle = Mathf.Lerp(currentAngle, nextAngle, 0.05f); chameleonEye.eulerAngles = new Vector3(0, 0, angle); } @@ -250,8 +260,10 @@ namespace HeavenStudio.Games public void SpawnFly(double beat, double length, int type) { + if (length <= 0) length = 4; var newFly = Instantiate(baseFly, transform).GetComponent(); newFly.startBeat = beat; + newFly.lengthBeat = length; newFly.flyType = (FlyType)type; BeatAction.New(instance, new List() diff --git a/Assets/Scripts/Games/Chameleon/Fly.cs b/Assets/Scripts/Games/Chameleon/Fly.cs index 65cbe573e..02efe94a6 100644 --- a/Assets/Scripts/Games/Chameleon/Fly.cs +++ b/Assets/Scripts/Games/Chameleon/Fly.cs @@ -15,15 +15,17 @@ namespace HeavenStudio.Games.Scripts_Chameleon public class Fly : MonoBehaviour { - public double startBeat; + public double startBeat, lengthBeat; private double currentBeat; - public FlyType flyType; + [System.NonSerialized] public FlyType flyType; [SerializeField] private Animator flyAnim, wingAnim; + public bool isFall { get; private set; } private Sound loopSound; - + float randomAngle = 0; Vector2 moveCurrentPos, moveNextPos, moveEndPos; + bool moveFast; private Chameleon game; @@ -50,15 +52,17 @@ namespace HeavenStudio.Games.Scripts_Chameleon FlyType.Close => new Vector2(1.5f, -0.25f), _ => throw new System.NotImplementedException() }; + randomAngle = UnityEngine.Random.Range(0, 2 * Mathf.PI); + moveNextPos = new Vector2(Mathf.Cos(randomAngle), Mathf.Sin(randomAngle)) + moveEndPos; currentBeat = startBeat; loopSound = SoundByte.PlayOneShotGame("chameleon/fly" + typePrefix + "Loop", -1, 1, 1, true); MultiSound.Play( new MultiSound.Sound[] { - new MultiSound.Sound("chameleon/fly" + typePrefix + "1", startBeat + 4), - new MultiSound.Sound("chameleon/fly" + typePrefix + "2", startBeat + 5), - new MultiSound.Sound("chameleon/fly" + typePrefix + "3", startBeat + 6), + new MultiSound.Sound("chameleon/fly" + typePrefix + "1", startBeat + lengthBeat), + new MultiSound.Sound("chameleon/fly" + typePrefix + "2", startBeat + lengthBeat + 1), + new MultiSound.Sound("chameleon/fly" + typePrefix + "3", startBeat + lengthBeat + 2), } ); @@ -69,10 +73,10 @@ namespace HeavenStudio.Games.Scripts_Chameleon // var currentBeat = Conductor.instance.songPositionInBeatsAsDouble; // flyAnim.DoScaledAnimationAsync("move" + typePrefix, 0.5f, (float)((currentBeat - startBeat)/8)); // }), - new BeatAction.Action(startBeat + 4, delegate { + new BeatAction.Action(startBeat + lengthBeat, delegate { loopSoundRelease(); }), - new BeatAction.Action(startBeat + 7, delegate { + new BeatAction.Action(startBeat + lengthBeat + 3, delegate { if (!flyAnim.enabled) { flyAnim.enabled = true; @@ -87,11 +91,11 @@ namespace HeavenStudio.Games.Scripts_Chameleon FlyType.Close => Chameleon.InputAction_Close, _ => throw new System.NotImplementedException() }; - game.ScheduleInput(startBeat + 4, 3, InputAction, JustCatch, MissCatch, Empty); + game.ScheduleInput(startBeat + lengthBeat, 3, InputAction, JustCatch, MissCatch, Empty); BeatAction.New(this, new List() { - new BeatAction.Action(startBeat + 10, delegate { + new BeatAction.Action(startBeat + lengthBeat + 6, delegate { Destroy(); }), }); @@ -104,28 +108,30 @@ namespace HeavenStudio.Games.Scripts_Chameleon { if (!flyAnim.enabled) { - float normalizedBeat = Conductor.instance.GetPositionFromBeat(startBeat, 0.5, ignoreSwing: true); + float startBeatPosition = Conductor.instance.GetPositionFromBeat(startBeat, 2, ignoreSwing: true); - if (normalizedBeat <= 1) + if (startBeatPosition <= 1) { - transform.position = Vector2.Lerp(moveCurrentPos, moveEndPos, normalizedBeat); + startBeatPosition = (startBeatPosition < 0.5) ? 0 : startBeatPosition * 2 - 1; + transform.position = Vector2.Lerp(moveCurrentPos, moveNextPos, startBeatPosition); } else { - normalizedBeat = Conductor.instance.GetPositionFromBeat(currentBeat, 0.25, ignoreSwing: true); - if (normalizedBeat >= 1) + float currentBeatPosition = Conductor.instance.GetPositionFromBeat(currentBeat, moveFast ? 0.17: 0.5, ignoreSwing: true);; + if (currentBeatPosition > 1) { + if (startBeatPosition > 1.5) moveFast = true; + currentBeat = cond.songPositionInBeatsAsDouble; moveCurrentPos = moveNextPos; - randomAngle = randomAngle + UnityEngine.Random.Range(1f, 1.5f * Mathf.PI); - moveNextPos = new Vector2(Mathf.Cos(randomAngle), Mathf.Sin(randomAngle)) + moveEndPos; + randomAngle = randomAngle + UnityEngine.Random.Range(0.7f, 1.3f * Mathf.PI); + moveNextPos = (moveFast ? 0.5f : 1) * new Vector2(Mathf.Cos(randomAngle), Mathf.Sin(randomAngle)) + moveEndPos; } else { - float newPosX = EasingFunction.EaseInOutSine(moveCurrentPos.x, moveNextPos.x, normalizedBeat); - float newPosY = EasingFunction.EaseInOutSine(moveCurrentPos.y, moveNextPos.y, normalizedBeat); + float newPosX = EasingFunction.EaseInOutSine(moveCurrentPos.x, moveNextPos.x, currentBeatPosition); + float newPosY = EasingFunction.EaseInOutSine(moveCurrentPos.y, moveNextPos.y, currentBeatPosition); transform.position = new Vector2(newPosX, newPosY); - } } } @@ -144,17 +150,18 @@ namespace HeavenStudio.Games.Scripts_Chameleon game.chameleonAnim.DoScaledAnimationAsync("tongue" + typePrefix, 0.5f); if (state <= -1f || state >= 1f) { + isFall = true; flyAnim.DoScaledAnimationAsync("fall" + typePrefix, 0.5f); return; } game.currentFly = null; SoundByte.PlayOneShotGame("chameleon/eatCatch"); - SoundByte.PlayOneShotGame("chameleon/eatGulp", startBeat + 7.25); + SoundByte.PlayOneShotGame("chameleon/eatGulp", startBeat + lengthBeat + 3.25); wingAnim.Play("idle", 0, 0); flyAnim.DoScaledAnimationAsync("catch" + typePrefix, 0.5f); BeatAction.New(game, new List() { - new BeatAction.Action(startBeat + 7.25, delegate { + new BeatAction.Action(startBeat + lengthBeat + 3.25, delegate { game.chameleonAnim.DoScaledAnimationAsync("gurp", 0.5f); }), }); @@ -185,7 +192,7 @@ namespace HeavenStudio.Games.Scripts_Chameleon private void Destroy() { - game.currentFly = null; + if (game.currentFly == this) game.currentFly = null; Destroy(gameObject); } }