From 98ff9987eed45b34b71cf350151afff7555ab045 Mon Sep 17 00:00:00 2001 From: minenice55 Date: Fri, 19 Aug 2022 16:48:55 -0400 Subject: [PATCH] adjust screen shake behaviour - fix bug with camera rotation easing --- Assets/Scripts/GameCamera.cs | 12 ++++-------- Assets/Scripts/Minigames.cs | 24 ++++++++---------------- 2 files changed, 12 insertions(+), 24 deletions(-) diff --git a/Assets/Scripts/GameCamera.cs b/Assets/Scripts/GameCamera.cs index 3f98f1c5..45aa8f73 100644 --- a/Assets/Scripts/GameCamera.cs +++ b/Assets/Scripts/GameCamera.cs @@ -148,8 +148,8 @@ namespace HeavenStudio EasingFunction.Function func = EasingFunction.GetEasingFunction(e.ease); float dx = func(rotEluerLast.x, e.valA, Mathf.Min(prog, 1f)); float dy = func(rotEluerLast.y, e.valB, Mathf.Min(prog, 1f)); - float dz = func(rotEluerLast.z, e.valC, Mathf.Min(prog, 1f)); - rotEluer = new Vector3(dx, dy, dz); + float dz = func(-rotEluerLast.z, e.valC, Mathf.Min(prog, 1f)); + rotEluer = new Vector3(dx, dy, dz); //I'm stupid and forgot to negate the rotation gfd 😢 } if (prog > 1f) @@ -159,7 +159,6 @@ namespace HeavenStudio } } - //scren shake spaghetti private void SetShakeIntensity() { foreach (var e in shakeEvents) @@ -167,11 +166,8 @@ namespace HeavenStudio float prog = Conductor.instance.GetPositionFromBeat(e.beat, e.length); if (prog >= 0f) { - EasingFunction.Function func = EasingFunction.GetEasingFunction(e.ease); - float dx = func(positionLast.x, e.valA, Mathf.Min(prog, 1f)); - float dy = func(positionLast.y, e.valA, Mathf.Min(prog, 1f)); - shakeResult = new Vector3(Mathf.Cos(dx * e.length * 20f) * (e.valA / 2), Mathf.Cos(dy * e.length * 30f) * (e.valA / 2)); - + float fac = Mathf.Cos(Time.time * 80f) * 0.5f; + shakeResult = new Vector3(fac * e.valA, fac * e.valB); } if (prog > 1f) { diff --git a/Assets/Scripts/Minigames.cs b/Assets/Scripts/Minigames.cs index 7fe4fb04..7f55dae4 100644 --- a/Assets/Scripts/Minigames.cs +++ b/Assets/Scripts/Minigames.cs @@ -332,18 +332,7 @@ namespace HeavenStudio new Param("ease", EasingFunction.Ease.Linear, "Ease") }, hidden: false ), - new GameAction("screen shake", delegate - { - //TODO: move cam - }, 1f, true, new List() - { - new Param("valA", new EntityTypes.Float(0, 10, 2), "Intensity") - } ), - - new GameAction("move camera", delegate - { - //TODO: move cam - }, 1f, true, new List() + new GameAction("move camera", delegate {}, 1f, true, new List() { new Param("valA", new EntityTypes.Float(-50, 50, 0), "Right / Left"), new Param("valB", new EntityTypes.Float(-50, 50, 0), "Up / Down"), @@ -351,10 +340,7 @@ namespace HeavenStudio new Param("ease", EasingFunction.Ease.Linear, "Ease Type") } ), - new GameAction("rotate camera", delegate - { - //TODO: rot cam - }, 1f, true, new List() + new GameAction("rotate camera", delegate {}, 1f, true, new List() { new Param("valA", new EntityTypes.Integer(-360, 360, 0), "Pitch"), new Param("valB", new EntityTypes.Integer(-360, 360, 0), "Yaw"), @@ -362,6 +348,12 @@ namespace HeavenStudio new Param("ease", EasingFunction.Ease.Linear, "Ease Type") } ), + new GameAction("screen shake", delegate {}, 1f, true, new List() + { + new Param("valA", new EntityTypes.Float(0, 10, 0), "Horizontal Intensity"), + new Param("valB", new EntityTypes.Float(0, 10, 1), "Vertical Intensity") + } ), + new GameAction("display textbox", delegate { }, 1f, true, new List()