From f14203a6621f8429da55af2d3352e8d610b0e287 Mon Sep 17 00:00:00 2001 From: Rapandrasmus <78219215+Rapandrasmus@users.noreply.github.com> Date: Thu, 23 Nov 2023 22:31:23 +0100 Subject: [PATCH] Post Processing Effects + Screen Tiling (#583) * scene setup * post processing script * vignette effect * small change * chromatic abberation added * bloom added * lens distortion added * collapse param stuff * Color grading * screen tiling added --- Assets/PostProcessingVFX.meta | 8 + .../PostProcessingVFX/GameCameraProfile.asset | 1511 +++++++++++++++++ .../GameCameraProfile.asset.meta | 8 + .../Prefabs/GameView/CamerasEditor.prefab | 141 +- Assets/Scenes/Editor.unity | 48 +- Assets/Scripts/Minigames.cs | 168 +- Assets/Scripts/PostProcessingVFX.cs | 236 +++ Assets/Scripts/PostProcessingVFX.cs.meta | 11 + Assets/Scripts/ScreenTiling.cs | 62 + Assets/Scripts/ScreenTiling.cs.meta | 11 + ProjectSettings/TagManager.asset | 2 +- 11 files changed, 2177 insertions(+), 29 deletions(-) create mode 100644 Assets/PostProcessingVFX.meta create mode 100644 Assets/PostProcessingVFX/GameCameraProfile.asset create mode 100644 Assets/PostProcessingVFX/GameCameraProfile.asset.meta create mode 100644 Assets/Scripts/PostProcessingVFX.cs create mode 100644 Assets/Scripts/PostProcessingVFX.cs.meta create mode 100644 Assets/Scripts/ScreenTiling.cs create mode 100644 Assets/Scripts/ScreenTiling.cs.meta diff --git a/Assets/PostProcessingVFX.meta b/Assets/PostProcessingVFX.meta new file mode 100644 index 00000000..d6e23880 --- /dev/null +++ b/Assets/PostProcessingVFX.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 973719517d70b044e95328d5c777afd6 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/PostProcessingVFX/GameCameraProfile.asset b/Assets/PostProcessingVFX/GameCameraProfile.asset new file mode 100644 index 00000000..22b7f02b --- /dev/null +++ b/Assets/PostProcessingVFX/GameCameraProfile.asset @@ -0,0 +1,1511 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!114 &-4362154923023080619 +MonoBehaviour: + m_ObjectHideFlags: 3 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 9b77c5407dc277943b591ade9e6b18c5, type: 3} + m_Name: LensDistortion + m_EditorClassIdentifier: + active: 1 + enabled: + overrideState: 1 + value: 0 + intensity: + overrideState: 1 + value: 0 + intensityX: + overrideState: 1 + value: 1 + intensityY: + overrideState: 1 + value: 1 + centerX: + overrideState: 0 + value: 0 + centerY: + overrideState: 0 + value: 0 + scale: + overrideState: 0 + value: 1 +--- !u!114 &-3146643709030431664 +MonoBehaviour: + m_ObjectHideFlags: 3 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: adb84e30e02715445aeb9959894e3b4d, type: 3} + m_Name: ColorGrading + m_EditorClassIdentifier: + active: 1 + enabled: + overrideState: 1 + value: 0 + gradingMode: + overrideState: 1 + value: 0 + externalLut: + overrideState: 0 + value: {fileID: 0} + defaultState: 1 + tonemapper: + overrideState: 0 + value: 0 + toneCurveToeStrength: + overrideState: 0 + value: 0 + toneCurveToeLength: + overrideState: 0 + value: 0.5 + toneCurveShoulderStrength: + overrideState: 0 + value: 0 + toneCurveShoulderLength: + overrideState: 0 + value: 0.5 + toneCurveShoulderAngle: + overrideState: 0 + value: 0 + toneCurveGamma: + overrideState: 0 + value: 1 + ldrLut: + overrideState: 0 + value: {fileID: 0} + defaultState: 4 + ldrLutContribution: + overrideState: 0 + value: 1 + temperature: + overrideState: 1 + value: 0 + tint: + overrideState: 1 + value: 0 + colorFilter: + overrideState: 1 + value: {r: 1, g: 1, b: 1, a: 1} + hueShift: + overrideState: 1 + value: 0 + saturation: + overrideState: 1 + value: 0 + brightness: + overrideState: 1 + value: 0 + postExposure: + overrideState: 0 + value: 0 + contrast: + overrideState: 1 + value: 0 + mixerRedOutRedIn: + overrideState: 0 + value: 100 + mixerRedOutGreenIn: + overrideState: 0 + value: 0 + mixerRedOutBlueIn: + overrideState: 0 + value: 0 + mixerGreenOutRedIn: + overrideState: 0 + value: 0 + mixerGreenOutGreenIn: + overrideState: 0 + value: 100 + mixerGreenOutBlueIn: + overrideState: 0 + value: 0 + mixerBlueOutRedIn: + overrideState: 0 + value: 0 + mixerBlueOutGreenIn: + overrideState: 0 + value: 0 + mixerBlueOutBlueIn: + overrideState: 0 + value: 100 + lift: + overrideState: 1 + value: {x: 1, y: 1, z: 1, w: 0} + gamma: + overrideState: 1 + value: {x: 1, y: 1, z: 1, w: -0.0000000014512345} + gain: + overrideState: 1 + value: {x: 1, y: 1, z: 1, w: 0} + masterCurve: + overrideState: 0 + value: + curve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 1 + outSlope: 1 + tangentMode: 0 + weightedMode: 0 + inWeight: 0 + outWeight: 0 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 1 + outSlope: 1 + tangentMode: 0 + weightedMode: 0 + inWeight: 0 + outWeight: 0 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + m_Loop: 0 + m_ZeroValue: 0 + m_Range: 1 + cachedData: + - 0 + - 0.0078125 + - 0.015625 + - 0.0234375 + - 0.03125 + - 0.0390625 + - 0.046875 + - 0.0546875 + - 0.0625 + - 0.0703125 + - 0.078125 + - 0.0859375 + - 0.09375 + - 0.1015625 + - 0.109375 + - 0.1171875 + - 0.125 + - 0.1328125 + - 0.140625 + - 0.1484375 + - 0.15625 + - 0.1640625 + - 0.171875 + - 0.1796875 + - 0.1875 + - 0.1953125 + - 0.203125 + - 0.2109375 + - 0.21875 + - 0.2265625 + - 0.234375 + - 0.2421875 + - 0.25 + - 0.2578125 + - 0.265625 + - 0.2734375 + - 0.28125 + - 0.2890625 + - 0.296875 + - 0.3046875 + - 0.3125 + - 0.3203125 + - 0.328125 + - 0.3359375 + - 0.34375 + - 0.3515625 + - 0.359375 + - 0.3671875 + - 0.375 + - 0.3828125 + - 0.390625 + - 0.3984375 + - 0.40625 + - 0.4140625 + - 0.421875 + - 0.4296875 + - 0.4375 + - 0.4453125 + - 0.453125 + - 0.4609375 + - 0.46875 + - 0.4765625 + - 0.484375 + - 0.4921875 + - 0.5 + - 0.5078125 + - 0.515625 + - 0.5234375 + - 0.53125 + - 0.5390625 + - 0.546875 + - 0.5546875 + - 0.5625 + - 0.5703125 + - 0.578125 + - 0.5859375 + - 0.59375 + - 0.6015625 + - 0.609375 + - 0.6171875 + - 0.625 + - 0.6328125 + - 0.640625 + - 0.6484375 + - 0.65625 + - 0.6640625 + - 0.671875 + - 0.6796875 + - 0.6875 + - 0.6953125 + - 0.703125 + - 0.7109375 + - 0.71875 + - 0.7265625 + - 0.734375 + - 0.7421875 + - 0.75 + - 0.7578125 + - 0.765625 + - 0.7734375 + - 0.78125 + - 0.7890625 + - 0.796875 + - 0.8046875 + - 0.8125 + - 0.8203125 + - 0.828125 + - 0.8359375 + - 0.84375 + - 0.8515625 + - 0.859375 + - 0.8671875 + - 0.875 + - 0.8828125 + - 0.890625 + - 0.8984375 + - 0.90625 + - 0.9140625 + - 0.921875 + - 0.9296875 + - 0.9375 + - 0.9453125 + - 0.953125 + - 0.9609375 + - 0.96875 + - 0.9765625 + - 0.984375 + - 0.9921875 + redCurve: + overrideState: 0 + value: + curve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 1 + outSlope: 1 + tangentMode: 0 + weightedMode: 0 + inWeight: 0 + outWeight: 0 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 1 + outSlope: 1 + tangentMode: 0 + weightedMode: 0 + inWeight: 0 + outWeight: 0 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + m_Loop: 0 + m_ZeroValue: 0 + m_Range: 1 + cachedData: + - 0 + - 0.0078125 + - 0.015625 + - 0.0234375 + - 0.03125 + - 0.0390625 + - 0.046875 + - 0.0546875 + - 0.0625 + - 0.0703125 + - 0.078125 + - 0.0859375 + - 0.09375 + - 0.1015625 + - 0.109375 + - 0.1171875 + - 0.125 + - 0.1328125 + - 0.140625 + - 0.1484375 + - 0.15625 + - 0.1640625 + - 0.171875 + - 0.1796875 + - 0.1875 + - 0.1953125 + - 0.203125 + - 0.2109375 + - 0.21875 + - 0.2265625 + - 0.234375 + - 0.2421875 + - 0.25 + - 0.2578125 + - 0.265625 + - 0.2734375 + - 0.28125 + - 0.2890625 + - 0.296875 + - 0.3046875 + - 0.3125 + - 0.3203125 + - 0.328125 + - 0.3359375 + - 0.34375 + - 0.3515625 + - 0.359375 + - 0.3671875 + - 0.375 + - 0.3828125 + - 0.390625 + - 0.3984375 + - 0.40625 + - 0.4140625 + - 0.421875 + - 0.4296875 + - 0.4375 + - 0.4453125 + - 0.453125 + - 0.4609375 + - 0.46875 + - 0.4765625 + - 0.484375 + - 0.4921875 + - 0.5 + - 0.5078125 + - 0.515625 + - 0.5234375 + - 0.53125 + - 0.5390625 + - 0.546875 + - 0.5546875 + - 0.5625 + - 0.5703125 + - 0.578125 + - 0.5859375 + - 0.59375 + - 0.6015625 + - 0.609375 + - 0.6171875 + - 0.625 + - 0.6328125 + - 0.640625 + - 0.6484375 + - 0.65625 + - 0.6640625 + - 0.671875 + - 0.6796875 + - 0.6875 + - 0.6953125 + - 0.703125 + - 0.7109375 + - 0.71875 + - 0.7265625 + - 0.734375 + - 0.7421875 + - 0.75 + - 0.7578125 + - 0.765625 + - 0.7734375 + - 0.78125 + - 0.7890625 + - 0.796875 + - 0.8046875 + - 0.8125 + - 0.8203125 + - 0.828125 + - 0.8359375 + - 0.84375 + - 0.8515625 + - 0.859375 + - 0.8671875 + - 0.875 + - 0.8828125 + - 0.890625 + - 0.8984375 + - 0.90625 + - 0.9140625 + - 0.921875 + - 0.9296875 + - 0.9375 + - 0.9453125 + - 0.953125 + - 0.9609375 + - 0.96875 + - 0.9765625 + - 0.984375 + - 0.9921875 + greenCurve: + overrideState: 0 + value: + curve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 1 + outSlope: 1 + tangentMode: 0 + weightedMode: 0 + inWeight: 0 + outWeight: 0 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 1 + outSlope: 1 + tangentMode: 0 + weightedMode: 0 + inWeight: 0 + outWeight: 0 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + m_Loop: 0 + m_ZeroValue: 0 + m_Range: 1 + cachedData: + - 0 + - 0.0078125 + - 0.015625 + - 0.0234375 + - 0.03125 + - 0.0390625 + - 0.046875 + - 0.0546875 + - 0.0625 + - 0.0703125 + - 0.078125 + - 0.0859375 + - 0.09375 + - 0.1015625 + - 0.109375 + - 0.1171875 + - 0.125 + - 0.1328125 + - 0.140625 + - 0.1484375 + - 0.15625 + - 0.1640625 + - 0.171875 + - 0.1796875 + - 0.1875 + - 0.1953125 + - 0.203125 + - 0.2109375 + - 0.21875 + - 0.2265625 + - 0.234375 + - 0.2421875 + - 0.25 + - 0.2578125 + - 0.265625 + - 0.2734375 + - 0.28125 + - 0.2890625 + - 0.296875 + - 0.3046875 + - 0.3125 + - 0.3203125 + - 0.328125 + - 0.3359375 + - 0.34375 + - 0.3515625 + - 0.359375 + - 0.3671875 + - 0.375 + - 0.3828125 + - 0.390625 + - 0.3984375 + - 0.40625 + - 0.4140625 + - 0.421875 + - 0.4296875 + - 0.4375 + - 0.4453125 + - 0.453125 + - 0.4609375 + - 0.46875 + - 0.4765625 + - 0.484375 + - 0.4921875 + - 0.5 + - 0.5078125 + - 0.515625 + - 0.5234375 + - 0.53125 + - 0.5390625 + - 0.546875 + - 0.5546875 + - 0.5625 + - 0.5703125 + - 0.578125 + - 0.5859375 + - 0.59375 + - 0.6015625 + - 0.609375 + - 0.6171875 + - 0.625 + - 0.6328125 + - 0.640625 + - 0.6484375 + - 0.65625 + - 0.6640625 + - 0.671875 + - 0.6796875 + - 0.6875 + - 0.6953125 + - 0.703125 + - 0.7109375 + - 0.71875 + - 0.7265625 + - 0.734375 + - 0.7421875 + - 0.75 + - 0.7578125 + - 0.765625 + - 0.7734375 + - 0.78125 + - 0.7890625 + - 0.796875 + - 0.8046875 + - 0.8125 + - 0.8203125 + - 0.828125 + - 0.8359375 + - 0.84375 + - 0.8515625 + - 0.859375 + - 0.8671875 + - 0.875 + - 0.8828125 + - 0.890625 + - 0.8984375 + - 0.90625 + - 0.9140625 + - 0.921875 + - 0.9296875 + - 0.9375 + - 0.9453125 + - 0.953125 + - 0.9609375 + - 0.96875 + - 0.9765625 + - 0.984375 + - 0.9921875 + blueCurve: + overrideState: 0 + value: + curve: + serializedVersion: 2 + m_Curve: + - serializedVersion: 3 + time: 0 + value: 0 + inSlope: 1 + outSlope: 1 + tangentMode: 0 + weightedMode: 0 + inWeight: 0 + outWeight: 0 + - serializedVersion: 3 + time: 1 + value: 1 + inSlope: 1 + outSlope: 1 + tangentMode: 0 + weightedMode: 0 + inWeight: 0 + outWeight: 0 + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + m_Loop: 0 + m_ZeroValue: 0 + m_Range: 1 + cachedData: + - 0 + - 0.0078125 + - 0.015625 + - 0.0234375 + - 0.03125 + - 0.0390625 + - 0.046875 + - 0.0546875 + - 0.0625 + - 0.0703125 + - 0.078125 + - 0.0859375 + - 0.09375 + - 0.1015625 + - 0.109375 + - 0.1171875 + - 0.125 + - 0.1328125 + - 0.140625 + - 0.1484375 + - 0.15625 + - 0.1640625 + - 0.171875 + - 0.1796875 + - 0.1875 + - 0.1953125 + - 0.203125 + - 0.2109375 + - 0.21875 + - 0.2265625 + - 0.234375 + - 0.2421875 + - 0.25 + - 0.2578125 + - 0.265625 + - 0.2734375 + - 0.28125 + - 0.2890625 + - 0.296875 + - 0.3046875 + - 0.3125 + - 0.3203125 + - 0.328125 + - 0.3359375 + - 0.34375 + - 0.3515625 + - 0.359375 + - 0.3671875 + - 0.375 + - 0.3828125 + - 0.390625 + - 0.3984375 + - 0.40625 + - 0.4140625 + - 0.421875 + - 0.4296875 + - 0.4375 + - 0.4453125 + - 0.453125 + - 0.4609375 + - 0.46875 + - 0.4765625 + - 0.484375 + - 0.4921875 + - 0.5 + - 0.5078125 + - 0.515625 + - 0.5234375 + - 0.53125 + - 0.5390625 + - 0.546875 + - 0.5546875 + - 0.5625 + - 0.5703125 + - 0.578125 + - 0.5859375 + - 0.59375 + - 0.6015625 + - 0.609375 + - 0.6171875 + - 0.625 + - 0.6328125 + - 0.640625 + - 0.6484375 + - 0.65625 + - 0.6640625 + - 0.671875 + - 0.6796875 + - 0.6875 + - 0.6953125 + - 0.703125 + - 0.7109375 + - 0.71875 + - 0.7265625 + - 0.734375 + - 0.7421875 + - 0.75 + - 0.7578125 + - 0.765625 + - 0.7734375 + - 0.78125 + - 0.7890625 + - 0.796875 + - 0.8046875 + - 0.8125 + - 0.8203125 + - 0.828125 + - 0.8359375 + - 0.84375 + - 0.8515625 + - 0.859375 + - 0.8671875 + - 0.875 + - 0.8828125 + - 0.890625 + - 0.8984375 + - 0.90625 + - 0.9140625 + - 0.921875 + - 0.9296875 + - 0.9375 + - 0.9453125 + - 0.953125 + - 0.9609375 + - 0.96875 + - 0.9765625 + - 0.984375 + - 0.9921875 + hueVsHueCurve: + overrideState: 0 + value: + curve: + serializedVersion: 2 + m_Curve: [] + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + m_Loop: 1 + m_ZeroValue: 0.5 + m_Range: 1 + cachedData: + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + hueVsSatCurve: + overrideState: 0 + value: + curve: + serializedVersion: 2 + m_Curve: [] + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + m_Loop: 1 + m_ZeroValue: 0.5 + m_Range: 1 + cachedData: + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + satVsSatCurve: + overrideState: 0 + value: + curve: + serializedVersion: 2 + m_Curve: [] + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + m_Loop: 0 + m_ZeroValue: 0.5 + m_Range: 1 + cachedData: + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + lumVsSatCurve: + overrideState: 0 + value: + curve: + serializedVersion: 2 + m_Curve: [] + m_PreInfinity: 2 + m_PostInfinity: 2 + m_RotationOrder: 4 + m_Loop: 0 + m_ZeroValue: 0.5 + m_Range: 1 + cachedData: + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 + - 0.5 +--- !u!114 &-2309378551457945779 +MonoBehaviour: + m_ObjectHideFlags: 3 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 6050e2d5de785ce4d931e4dbdbf2d755, type: 3} + m_Name: ChromaticAberration + m_EditorClassIdentifier: + active: 1 + enabled: + overrideState: 1 + value: 0 + spectralLut: + overrideState: 0 + value: {fileID: 0} + defaultState: 1 + intensity: + overrideState: 1 + value: 0 + fastMode: + overrideState: 0 + value: 0 +--- !u!114 &-1752554079016775041 +MonoBehaviour: + m_ObjectHideFlags: 3 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 40b924e2dad56384a8df2a1e111bb675, type: 3} + m_Name: Vignette + m_EditorClassIdentifier: + active: 1 + enabled: + overrideState: 1 + value: 0 + mode: + overrideState: 1 + value: 0 + color: + overrideState: 1 + value: {r: 0, g: 0, b: 0, a: 1} + center: + overrideState: 0 + value: {x: 0.5, y: 0.5} + intensity: + overrideState: 1 + value: 0 + smoothness: + overrideState: 1 + value: 0.2 + roundness: + overrideState: 1 + value: 1 + rounded: + overrideState: 1 + value: 0 + mask: + overrideState: 0 + value: {fileID: 0} + defaultState: 1 + opacity: + overrideState: 0 + value: 1 +--- !u!114 &11400000 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 8e6292b2c06870d4495f009f912b9600, type: 3} + m_Name: GameCameraProfile + m_EditorClassIdentifier: + settings: + - {fileID: -1752554079016775041} + - {fileID: -2309378551457945779} + - {fileID: 8762005197904913450} + - {fileID: -4362154923023080619} + - {fileID: 2598374393394070623} + - {fileID: -3146643709030431664} +--- !u!114 &2598374393394070623 +MonoBehaviour: + m_ObjectHideFlags: 3 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: d65e486e4de6e5448a8fbb43dc8756a0, type: 3} + m_Name: Grain + m_EditorClassIdentifier: + active: 1 + enabled: + overrideState: 1 + value: 0 + colored: + overrideState: 1 + value: 1 + intensity: + overrideState: 1 + value: 0 + size: + overrideState: 1 + value: 1 + lumContrib: + overrideState: 1 + value: 0.8 +--- !u!114 &8762005197904913450 +MonoBehaviour: + m_ObjectHideFlags: 3 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 48a79b01ea5641d4aa6daa2e23605641, type: 3} + m_Name: Bloom + m_EditorClassIdentifier: + active: 1 + enabled: + overrideState: 1 + value: 0 + intensity: + overrideState: 1 + value: 0 + threshold: + overrideState: 1 + value: 1 + softKnee: + overrideState: 1 + value: 0.5 + clamp: + overrideState: 0 + value: 65472 + diffusion: + overrideState: 0 + value: 7 + anamorphicRatio: + overrideState: 1 + value: 0 + color: + overrideState: 1 + value: {r: 1, g: 1, b: 1, a: 1} + fastMode: + overrideState: 0 + value: 0 + dirtTexture: + overrideState: 0 + value: {fileID: 0} + defaultState: 1 + dirtIntensity: + overrideState: 0 + value: 0 diff --git a/Assets/PostProcessingVFX/GameCameraProfile.asset.meta b/Assets/PostProcessingVFX/GameCameraProfile.asset.meta new file mode 100644 index 00000000..3fea2365 --- /dev/null +++ b/Assets/PostProcessingVFX/GameCameraProfile.asset.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: b51cceebf153b484cb3ae8addf344bb3 +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 11400000 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Resources/Prefabs/GameView/CamerasEditor.prefab b/Assets/Resources/Prefabs/GameView/CamerasEditor.prefab index fdbacd81..6bcb60d8 100644 --- a/Assets/Resources/Prefabs/GameView/CamerasEditor.prefab +++ b/Assets/Resources/Prefabs/GameView/CamerasEditor.prefab @@ -295,6 +295,7 @@ GameObject: - component: {fileID: 1535126665250126034} - component: {fileID: 1198356187242493155} - component: {fileID: 647613278910435637} + - component: {fileID: 2582851074058764053} m_Layer: 31 m_Name: GameView m_TagString: Untagged @@ -357,6 +358,18 @@ MonoBehaviour: y: 0 width: 1 height: 1 +--- !u!114 &2582851074058764053 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2464883521749415129} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: d556607141c07af40b1b5ee71c28c5a6, type: 3} + m_Name: + m_EditorClassIdentifier: --- !u!1 &2478945398383251488 GameObject: m_ObjectHideFlags: 0 @@ -597,6 +610,68 @@ MonoBehaviour: m_FillOrigin: 0 m_UseSpriteMesh: 0 m_PixelsPerUnitMultiplier: 1024 +--- !u!1 &5636869531616399768 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 1404010314325821530} + - component: {fileID: 4103352589331584694} + - component: {fileID: 313212884350892521} + m_Layer: 21 + m_Name: PPVolume + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &1404010314325821530 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5636869531616399768} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 6052331674888157612} + m_RootOrder: 5 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!114 &4103352589331584694 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5636869531616399768} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 8b9a305e18de0c04dbd257a21cd47087, type: 3} + m_Name: + m_EditorClassIdentifier: + sharedProfile: {fileID: 11400000, guid: b51cceebf153b484cb3ae8addf344bb3, type: 2} + isGlobal: 1 + blendDistance: 0 + weight: 1 + priority: 0 +--- !u!114 &313212884350892521 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5636869531616399768} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: e3cc0a4bae0c56540b9f598f4644539c, type: 3} + m_Name: + m_EditorClassIdentifier: --- !u!1 &6052331674005083371 GameObject: m_ObjectHideFlags: 0 @@ -684,6 +759,7 @@ GameObject: - component: {fileID: 6052331674369862801} - component: {fileID: 6052331674369862803} - component: {fileID: 4484390403394809578} + - component: {fileID: 154916227922109824} m_Layer: 0 m_Name: Main Camera m_TagString: Untagged @@ -771,6 +847,68 @@ MonoBehaviour: m_EditorClassIdentifier: camera: {fileID: 6052331674369862801} baseColor: {r: 0, g: 0, b: 0, a: 1} +--- !u!114 &154916227922109824 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 6052331674369862802} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 948f4100a11a5c24981795d21301da5c, type: 3} + m_Name: + m_EditorClassIdentifier: + volumeTrigger: {fileID: 6052331674369862766} + volumeLayer: + serializedVersion: 2 + m_Bits: 2097152 + stopNaNPropagation: 1 + finalBlitToCameraTarget: 0 + antialiasingMode: 0 + temporalAntialiasing: + jitterSpread: 0.75 + sharpness: 0.25 + stationaryBlending: 0.95 + motionBlending: 0.85 + subpixelMorphologicalAntialiasing: + quality: 2 + fastApproximateAntialiasing: + fastMode: 0 + keepAlpha: 0 + fog: + enabled: 1 + excludeSkybox: 1 + debugLayer: + lightMeter: + width: 512 + height: 256 + showCurves: 1 + histogram: + width: 512 + height: 256 + channel: 3 + waveform: + exposure: 0.12 + height: 256 + vectorscope: + size: 256 + exposure: 0.12 + overlaySettings: + linearDepth: 0 + motionColorIntensity: 4 + motionGridSize: 64 + colorBlindnessType: 0 + colorBlindnessStrength: 1 + m_Resources: {fileID: 11400000, guid: d82512f9c8e5d4a4d938b575d47f88d4, type: 2} + m_ShowToolkit: 0 + m_ShowCustomSorter: 0 + breakBeforeColorGrading: 0 + m_BeforeTransparentBundles: [] + m_BeforeStackBundles: + - assemblyQualifiedName: PostProcessOutline, Assembly-CSharp, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + m_AfterStackBundles: [] --- !u!1 &6052331674888157615 GameObject: m_ObjectHideFlags: 0 @@ -804,6 +942,7 @@ Transform: - {fileID: 2274170308165449537} - {fileID: 4235880641665482497} - {fileID: 2077856143944097172} + - {fileID: 1404010314325821530} m_Father: {fileID: 0} m_RootOrder: 0 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} @@ -842,7 +981,7 @@ RectTransform: m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} m_AnchorMin: {x: 1, y: 0} m_AnchorMax: {x: 1, y: 1} - m_AnchoredPosition: {x: 0.0000009536743, y: 0} + m_AnchoredPosition: {x: 0, y: 0} m_SizeDelta: {x: 2, y: 12} m_Pivot: {x: 0.5, y: 0.5} --- !u!222 &7734333607666534753 diff --git a/Assets/Scenes/Editor.unity b/Assets/Scenes/Editor.unity index 966fad21..e82017bc 100644 --- a/Assets/Scenes/Editor.unity +++ b/Assets/Scenes/Editor.unity @@ -371,9 +371,9 @@ RectTransform: m_Father: {fileID: 574002313} m_RootOrder: 0 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 0} - m_AnchorMax: {x: 0, y: 0} - m_AnchoredPosition: {x: 0, y: 0} + m_AnchorMin: {x: 0, y: 1} + m_AnchorMax: {x: 0, y: 1} + m_AnchoredPosition: {x: 0, y: -21} m_SizeDelta: {x: 32, y: 32} m_Pivot: {x: 0, y: 0.5} --- !u!114 &9435782 @@ -3519,9 +3519,9 @@ RectTransform: m_Father: {fileID: 539838476} m_RootOrder: 0 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 0} - m_AnchorMax: {x: 0, y: 0} - m_AnchoredPosition: {x: 0, y: 0} + m_AnchorMin: {x: 0, y: 1} + m_AnchorMax: {x: 0, y: 1} + m_AnchoredPosition: {x: 32, y: -21} m_SizeDelta: {x: 32, y: 32} m_Pivot: {x: 1, y: 0.5} --- !u!114 &121871281 @@ -3664,9 +3664,9 @@ RectTransform: m_Father: {fileID: 539838476} m_RootOrder: 1 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 0} - m_AnchorMax: {x: 0, y: 0} - m_AnchoredPosition: {x: 0, y: 0} + m_AnchorMin: {x: 0, y: 1} + m_AnchorMax: {x: 0, y: 1} + m_AnchoredPosition: {x: 72, y: -21} m_SizeDelta: {x: 32, y: 32} m_Pivot: {x: 1, y: 0.5} --- !u!114 &129013734 @@ -3786,9 +3786,9 @@ RectTransform: m_Father: {fileID: 539838476} m_RootOrder: 2 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 0} - m_AnchorMax: {x: 0, y: 0} - m_AnchoredPosition: {x: 0, y: 0} + m_AnchorMin: {x: 0, y: 1} + m_AnchorMax: {x: 0, y: 1} + m_AnchoredPosition: {x: 112, y: -21} m_SizeDelta: {x: 32, y: 32} m_Pivot: {x: 1, y: 0.5} --- !u!114 &151246938 @@ -5005,7 +5005,7 @@ RectTransform: m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} m_AnchorMin: {x: 0, y: 1} m_AnchorMax: {x: 1, y: 1} - m_AnchoredPosition: {x: -400, y: 0} + m_AnchoredPosition: {x: -399.99994, y: 0} m_SizeDelta: {x: -800.0001, y: 194} m_Pivot: {x: 0.5, y: 1} --- !u!114 &195260752 @@ -21343,7 +21343,7 @@ MonoBehaviour: m_TargetGraphic: {fileID: 1589389272} m_HandleRect: {fileID: 1589389271} m_Direction: 2 - m_Value: 1 + m_Value: 0 m_Size: 1 m_NumberOfSteps: 0 m_OnValueChanged: @@ -26115,7 +26115,7 @@ RectTransform: m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} m_AnchorMin: {x: 0, y: 0.5} m_AnchorMax: {x: 1, y: 0.5} - m_AnchoredPosition: {x: 0, y: 153.75513} + m_AnchoredPosition: {x: 0, y: 199.06123} m_SizeDelta: {x: 0, y: 0} m_Pivot: {x: 0.5, y: 1} --- !u!222 &1154875945 @@ -30195,9 +30195,9 @@ RectTransform: m_Father: {fileID: 574002313} m_RootOrder: 1 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 0} - m_AnchorMax: {x: 0, y: 0} - m_AnchoredPosition: {x: 0, y: 0} + m_AnchorMin: {x: 0, y: 1} + m_AnchorMax: {x: 0, y: 1} + m_AnchoredPosition: {x: 40, y: -21} m_SizeDelta: {x: 32, y: 32} m_Pivot: {x: 0, y: 0.5} --- !u!114 &1345846031 @@ -31317,7 +31317,7 @@ RectTransform: m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} m_AnchorMin: {x: 0, y: 1} m_AnchorMax: {x: 1, y: 1} - m_AnchoredPosition: {x: -400, y: 0} + m_AnchoredPosition: {x: -399.99994, y: 0} m_SizeDelta: {x: -800.0001, y: 194} m_Pivot: {x: 0.5, y: 1} --- !u!114 &1426168094 @@ -35305,8 +35305,8 @@ MonoBehaviour: m_TargetGraphic: {fileID: 1220118245} m_HandleRect: {fileID: 1220118244} m_Direction: 2 - m_Value: 1.0000007 - m_Size: 0.87568516 + m_Value: 1 + m_Size: 1 m_NumberOfSteps: 0 m_OnValueChanged: m_PersistentCalls: @@ -38052,9 +38052,9 @@ RectTransform: m_Father: {fileID: 574002313} m_RootOrder: 2 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} - m_AnchorMin: {x: 0, y: 0} - m_AnchorMax: {x: 0, y: 0} - m_AnchoredPosition: {x: 0, y: 0} + m_AnchorMin: {x: 0, y: 1} + m_AnchorMax: {x: 0, y: 1} + m_AnchoredPosition: {x: 80, y: -21} m_SizeDelta: {x: 32, y: 32} m_Pivot: {x: 0, y: 0.5} --- !u!114 &1783491359 diff --git a/Assets/Scripts/Minigames.cs b/Assets/Scripts/Minigames.cs index 4afe66aa..985d5f63 100644 --- a/Assets/Scripts/Minigames.cs +++ b/Assets/Scripts/Minigames.cs @@ -663,7 +663,7 @@ namespace HeavenStudio //temp for testing function = delegate { var e = eventCaller.currentEntity; - Common.SkillStarManager.instance.DoStarIn(e.beat, e.length); + Common.SkillStarManager.instance.DoStarIn(e.beat, e.length); } }, new GameAction("toggle inputs", "Toggle Inputs", 0.5f, true, @@ -774,7 +774,10 @@ namespace HeavenStudio new Param("colorB", Color.white, "End Color"), new Param("valA", new EntityTypes.Float(0, 1, 1), "Start Opacity"), new Param("valB", new EntityTypes.Float(0, 1, 0), "End Opacity"), - new Param("ease", Util.EasingFunction.Ease.Linear, "Ease") + new Param("ease", Util.EasingFunction.Ease.Linear, "Ease", "", new() + { + new((x, y) => (Util.EasingFunction.Ease)x != Util.EasingFunction.Ease.Instant, new string[] { "colorA", "valA" }) + }) } ), new GameAction("filter", "Filter", 1f, true, @@ -791,7 +794,10 @@ namespace HeavenStudio new Param("start", new EntityTypes.Float(0, 1, 1), "Start Intensity"), new Param("end", new EntityTypes.Float(0, 1, 1), "End Intensity"), - new Param("ease", Util.EasingFunction.Ease.Linear, "Ease"), + new Param("ease", Util.EasingFunction.Ease.Linear, "Ease", "", new() + { + new((x, y) => (Util.EasingFunction.Ease)x != Util.EasingFunction.Ease.Instant, new string[] { "start" }) + }), } ), new GameAction("move camera", "Move Camera", 1f, true, new List() @@ -884,6 +890,162 @@ namespace HeavenStudio new Param("instantOff", false, "Instant Hide", "Skip the hide animation?"), } ), + + // Post Processing VFX + new GameAction("vignette", "Vignette") + { + resizable = true, + parameters = new() + { + new("intenStart", new EntityTypes.Float(0f, 1f), "Start Intensity"), + new("intenEnd", new EntityTypes.Float(0f, 1f, 1f), "End Intensity"), + + new("colorStart", Color.black, "Start Color"), + new("colorEnd", Color.black, "End Color"), + + new("smoothStart", new EntityTypes.Float(0.01f, 1f, 0.2f), "Start Smoothness"), + new("smoothEnd", new EntityTypes.Float(0.01f, 1f, 0.2f), "End Smoothness"), + + new("roundStart", new EntityTypes.Float(0f, 1f, 1f), "Start Roundness"), + new("roundEnd", new EntityTypes.Float(0f, 1f, 1f), "End Roundness"), + new("rounded", false, "Rounded"), + + new("ease", Util.EasingFunction.Ease.Linear, "Ease", "", new() + { + new((x, y) => (Util.EasingFunction.Ease)x != Util.EasingFunction.Ease.Instant, new string[] { "intenStart", "colorStart", "smoothStart", "roundStart" }) + }), + } + }, + new GameAction("cabb", "Chromatic Abberation") + { + resizable = true, + parameters = new() + { + new("intenStart", new EntityTypes.Float(0f, 1f), "Start Intensity"), + new("intenEnd", new EntityTypes.Float(0f, 1f, 1f), "End Intensity"), + new("ease", Util.EasingFunction.Ease.Linear, "Ease", "", new() + { + new((x, y) => (Util.EasingFunction.Ease)x != Util.EasingFunction.Ease.Instant, new string[] { "intenStart" }) + }), + } + }, + new GameAction("bloom", "Bloom") + { + resizable = true, + parameters = new() + { + new("intenStart", new EntityTypes.Float(0f, 100f, 0f), "Start Intensity"), + new("intenEnd", new EntityTypes.Float(0f, 100f, 1f), "End Intensity"), + + new("colorStart", Color.white, "Start Tint"), + new("colorEnd", Color.white, "End Tint"), + + new("thresholdStart", new EntityTypes.Float(0f, 100f, 1f), "Start Threshold"), + new("thresholdEnd", new EntityTypes.Float(0f, 100f, 1f), "End Threshold"), + + new("softKneeStart", new EntityTypes.Float(0f, 1f, 0.5f), "Start Soft Knee"), + new("softKneeEnd", new EntityTypes.Float(0f, 1f, 0.5f), "End Soft Knee"), + + new("anaStart", new EntityTypes.Float(-1f, 1f, 0f), "Start Anamorphic Ratio"), + new("anaEnd", new EntityTypes.Float(-1f, 1f, 0f), "End Anamorphic Ratio"), + + new("ease", Util.EasingFunction.Ease.Linear, "Ease", "", new() + { + new((x, y) => (Util.EasingFunction.Ease)x != Util.EasingFunction.Ease.Instant, new string[] { "intenStart", "colorStart", "thresholdStart", "softKneeStart", "anaStart" }) + }), + } + }, + new GameAction("lensD", "Lens Distortion") + { + resizable = true, + parameters = new() + { + new("intenStart", new EntityTypes.Float(-100f, 100f, 0f), "Start Intensity"), + new("intenEnd", new EntityTypes.Float(-100f, 100f, 1f), "End Intensity"), + + new("xStart", new EntityTypes.Float(0f, 1f, 1f), "Start X Multiplier"), + new("yStart", new EntityTypes.Float(0f, 1f, 1f), "Start Y Multiplier"), + new("xEnd", new EntityTypes.Float(0f, 1f, 1f), "End X Multiplier"), + new("yEnd", new EntityTypes.Float(0f, 1f, 1f), "End Y Multiplier"), + + new("ease", Util.EasingFunction.Ease.Linear, "Ease", "", new() + { + new((x, y) => (Util.EasingFunction.Ease)x != Util.EasingFunction.Ease.Instant, new string[] { "intenStart", "xStart", "yStart" }) + }), + } + }, + new GameAction("grain", "Grain") + { + resizable = true, + parameters = new() + { + new("intenStart", new EntityTypes.Float(0f, 1f), "Start Intensity"), + new("intenEnd", new EntityTypes.Float(0f, 1f, 1f), "End Intensity"), + + new("sizeStart", new EntityTypes.Float(0.3f, 3f, 1f), "Start Size"), + new("sizeEnd", new EntityTypes.Float(0.3f, 3f, 1f), "End Size"), + + new("colored", true, "Colored"), + + new("ease", Util.EasingFunction.Ease.Linear, "Ease", "", new() + { + new((x, y) => (Util.EasingFunction.Ease)x != Util.EasingFunction.Ease.Instant, new string[] { "intenStart", "sizeStart" }) + }), + } + }, + new GameAction("colorGrading", "Color Grading") + { + resizable = true, + parameters = new() + { + new("tempStart", new EntityTypes.Float(-100f, 100f), "Start Temperature"), + new("tempEnd", new EntityTypes.Float(-100f, 100f), "End Temperature"), + + new("tintStart", new EntityTypes.Float(-100f, 100f), "Start Tint"), + new("tintEnd", new EntityTypes.Float(-100f, 100f), "End Tint"), + + new("colorStart", Color.white, "Start Color Filter"), + new("colorEnd", Color.white, "End Color Filter"), + + new("hueShiftStart", new EntityTypes.Float(-180f, 180f), "Start Hue Shift"), + new("hueShiftEnd", new EntityTypes.Float(-180f, 180f), "End Hue Shift"), + + new("satStart", new EntityTypes.Float(-100f, 100f), "Start Saturation"), + new("satEnd", new EntityTypes.Float(-100f, 100f), "End Saturation"), + + new("brightStart", new EntityTypes.Float(-100f, 100f), "Start Brightness"), + new("brightEnd", new EntityTypes.Float(-100f, 100f), "End Brightness"), + + new("conStart", new EntityTypes.Float(-100f, 100f), "Start Contrast"), + new("conEnd", new EntityTypes.Float(-100f, 100f), "End Contrast"), + + new("ease", Util.EasingFunction.Ease.Linear, "Ease", "", new() + { + new((x, y) => (Util.EasingFunction.Ease)x != Util.EasingFunction.Ease.Instant, new string[] { "tempStart", "tintStart", "colorStart", "hueShiftStart", "satStart", "brightStart", "conStart" }) + }), + } + }, + new GameAction("screenTiling", "Screen Tiling") + { + resizable = true, + parameters = new() + { + new("xStart", new EntityTypes.Float(1, 100, 1), "Start Horizontal Tiles"), + new("yStart", new EntityTypes.Float(1, 100, 1), "Start Vertical Tiles"), + new("xEnd", new EntityTypes.Float(1, 100, 1), "End Horizontal Tiles"), + new("yEnd", new EntityTypes.Float(1, 100, 1), "End Vertical Tiles"), + + new("xScrollStart", new EntityTypes.Float(-100, 100, 0), "Start Horizontal Scroll"), + new("yScrollStart", new EntityTypes.Float(-100, 100, 0), "Start Vertical Scroll"), + new("xScrollEnd", new EntityTypes.Float(-100, 100, 0), "End Horizontal Scroll"), + new("yScrollEnd", new EntityTypes.Float(-100, 100, 0), "End Vertical Scroll"), + + new("ease", Util.EasingFunction.Ease.Linear, "Ease", "", new() + { + new((x, y) => (Util.EasingFunction.Ease)x != Util.EasingFunction.Ease.Instant, new string[] { "xStart", "yStart", "xScrollStart", "yScrollStart" }) + }), + } + } }), }; diff --git a/Assets/Scripts/PostProcessingVFX.cs b/Assets/Scripts/PostProcessingVFX.cs new file mode 100644 index 00000000..09d75aad --- /dev/null +++ b/Assets/Scripts/PostProcessingVFX.cs @@ -0,0 +1,236 @@ +using Jukebox; +using System.Collections; +using System.Collections.Generic; +using UnityEngine; +using UnityEngine.Rendering.PostProcessing; + +namespace HeavenStudio +{ + public class PostProcessingVFX : MonoBehaviour + { + private PostProcessVolume _volume; + + // events + private List _vignettes = new(); + private List _cabbs = new(); + private List _blooms = new(); + private List _lensDs = new(); + private List _grains = new(); + private List _colorGradings = new(); + + private void Awake() + { + _volume = GetComponent(); + } + + private void Start() + { + GameManager.instance.onBeatChanged += OnBeatChanged; + } + + public void OnBeatChanged(double beat) + { + _vignettes = EventCaller.GetAllInGameManagerList("vfx", new string[] { "vignette" }); + _cabbs = EventCaller.GetAllInGameManagerList("vfx", new string[] { "cabb" }); + _blooms = EventCaller.GetAllInGameManagerList("vfx", new string[] { "bloom" }); + _lensDs = EventCaller.GetAllInGameManagerList("vfx", new string[] { "lensD" }); + _grains = EventCaller.GetAllInGameManagerList("vfx", new string[] { "grain" }); + _colorGradings = EventCaller.GetAllInGameManagerList("vfx", new string[] { "colorGrading" }); + + UpdateVignette(); + UpdateChromaticAbberations(); + UpdateBlooms(); + UpdateLensDistortions(); + UpdateGrain(); + UpdateColorGrading(); + } + + private void Update() + { + UpdateVignette(); + UpdateChromaticAbberations(); + UpdateBlooms(); + UpdateLensDistortions(); + UpdateGrain(); + UpdateColorGrading(); + } + + private void UpdateVignette() + { + if (!_volume.profile.TryGetSettings(out var v)) return; + + v.enabled.Override(false); + foreach (var e in _vignettes) + { + float normalized = Conductor.instance.GetPositionFromBeat(e.beat, e.length); + if (normalized < 0) break; + + float clampNormal = Mathf.Clamp01(normalized); + var func = Util.EasingFunction.GetEasingFunction((Util.EasingFunction.Ease)e["ease"]); + + float newIntensity = func(e["intenStart"], e["intenEnd"], clampNormal); + + v.enabled.Override(newIntensity != 0); + if (!v.enabled) continue; + v.rounded.Override(e["rounded"]); + + Color newColor = ColorEase(e["colorStart"], e["colorEnd"], clampNormal, func); + + v.color.Override(newColor); + + v.intensity.Override(newIntensity); + + float newSmoothness = func(e["smoothStart"], e["smoothEnd"], clampNormal); + v.smoothness.Override(newSmoothness); + + float newRoundness = func(e["roundStart"], e["roundEnd"], clampNormal); + v.roundness.Override(newRoundness); + } + } + + private void UpdateChromaticAbberations() + { + if (!_volume.profile.TryGetSettings(out var c)) return; + c.enabled.Override(false); + foreach (var e in _cabbs) + { + float normalized = Conductor.instance.GetPositionFromBeat(e.beat, e.length); + if (normalized < 0) break; + + float clampNormal = Mathf.Clamp01(normalized); + var func = Util.EasingFunction.GetEasingFunction((Util.EasingFunction.Ease)e["ease"]); + + float newIntensity = func(e["intenStart"], e["intenEnd"], clampNormal); + c.enabled.Override(newIntensity != 0); + if (!c.enabled) continue; + c.intensity.Override(newIntensity); + } + } + + private void UpdateBlooms() + { + if (!_volume.profile.TryGetSettings(out var b)) return; + b.enabled.Override(false); + foreach (var e in _blooms) + { + float normalized = Conductor.instance.GetPositionFromBeat(e.beat, e.length); + if (normalized < 0) break; + + float clampNormal = Mathf.Clamp01(normalized); + var func = Util.EasingFunction.GetEasingFunction((Util.EasingFunction.Ease)e["ease"]); + + float newIntensity = func(e["intenStart"], e["intenEnd"], clampNormal); + b.enabled.Override(newIntensity != 0); + if (!b.enabled) continue; + b.intensity.Override(newIntensity); + + Color newColor = ColorEase(e["colorStart"], e["colorEnd"], clampNormal, func); + + b.color.Override(newColor); + + float newThreshold = func(e["thresholdStart"], e["thresholdEnd"], clampNormal); + b.threshold.Override(newThreshold); + + float newSoftKnee = func(e["softKneeStart"], e["softKneeEnd"], clampNormal); + b.softKnee.Override(newSoftKnee); + + float newAna = func(e["anaStart"], e["anaEnd"], clampNormal); + b.anamorphicRatio.Override(newAna); + } + } + + private void UpdateLensDistortions() + { + if (!_volume.profile.TryGetSettings(out var l)) return; + l.enabled.Override(false); + foreach (var e in _lensDs) + { + float normalized = Conductor.instance.GetPositionFromBeat(e.beat, e.length); + if (normalized < 0) break; + + float clampNormal = Mathf.Clamp01(normalized); + var func = Util.EasingFunction.GetEasingFunction((Util.EasingFunction.Ease)e["ease"]); + + float newIntensity = func(e["intenStart"], e["intenEnd"], clampNormal); + l.enabled.Override(newIntensity != 0); + if (!l.enabled) continue; + l.intensity.Override(newIntensity); + + float newX = func(e["xStart"], e["xEnd"], clampNormal); + l.intensityX.Override(newX); + + float newY = func(e["yStart"], e["yEnd"], clampNormal); + l.intensityY.Override(newY); + } + } + + private void UpdateGrain() + { + if (!_volume.profile.TryGetSettings(out var g)) return; + g.enabled.Override(false); + foreach (var e in _grains) + { + float normalized = Conductor.instance.GetPositionFromBeat(e.beat, e.length); + if (normalized < 0) break; + + float clampNormal = Mathf.Clamp01(normalized); + var func = Util.EasingFunction.GetEasingFunction((Util.EasingFunction.Ease)e["ease"]); + + float newIntensity = func(e["intenStart"], e["intenEnd"], clampNormal); + g.enabled.Override(newIntensity != 0); + if (!g.enabled) continue; + g.intensity.Override(newIntensity); + g.colored.Override(e["colored"]); + + float newSize = func(e["sizeStart"], e["sizeEnd"], clampNormal); + g.size.Override(newSize); + } + } + + private void UpdateColorGrading() + { + if (!_volume.profile.TryGetSettings(out var c)) return; + c.enabled.Override(false); + foreach (var e in _colorGradings) + { + c.enabled.Override(true); + float normalized = Conductor.instance.GetPositionFromBeat(e.beat, e.length); + if (normalized < 0) break; + + float clampNormal = Mathf.Clamp01(normalized); + var func = Util.EasingFunction.GetEasingFunction((Util.EasingFunction.Ease)e["ease"]); + + float newTemp = func(e["tempStart"], e["tempEnd"], clampNormal); + c.temperature.Override(newTemp); + + float newTint = func(e["tintStart"], e["tintEnd"], clampNormal); + c.tint.Override(newTint); + + Color newColor = ColorEase(e["colorStart"], e["colorEnd"], clampNormal, func); + c.colorFilter.Override(newColor); + + float newHue = func(e["hueShiftStart"], e["hueShiftEnd"], clampNormal); + c.hueShift.Override(newHue); + + float newSat = func(e["satStart"], e["satEnd"], clampNormal); + c.saturation.Override(newSat); + + float newBright = func(e["brightStart"], e["brightEnd"], clampNormal); + c.brightness.Override(newBright); + + float newCon = func(e["conStart"], e["conEnd"], clampNormal); + c.contrast.Override(newCon); + } + } + + private Color ColorEase(Color start, Color end, float time, Util.EasingFunction.Function func) + { + float newR = func(start.r, end.r, time); + float newG = func(start.g, end.g, time); + float newB = func(start.b, end.b, time); + + return new Color(newR, newG, newB, 1); + } + } +} + diff --git a/Assets/Scripts/PostProcessingVFX.cs.meta b/Assets/Scripts/PostProcessingVFX.cs.meta new file mode 100644 index 00000000..9b893ed6 --- /dev/null +++ b/Assets/Scripts/PostProcessingVFX.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: e3cc0a4bae0c56540b9f598f4644539c +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Scripts/ScreenTiling.cs b/Assets/Scripts/ScreenTiling.cs new file mode 100644 index 00000000..16863676 --- /dev/null +++ b/Assets/Scripts/ScreenTiling.cs @@ -0,0 +1,62 @@ +using System.Collections; +using System.Collections.Generic; +using UnityEngine; +using Jukebox; +using UnityEngine.UI; + +namespace HeavenStudio +{ + public class ScreenTiling : MonoBehaviour + { + private RawImage _image; + private RectTransform _rectTransform; + + private List _events = new(); + + private void Awake() + { + _image = GetComponent(); + _rectTransform = GetComponent(); + } + + private void Start() + { + GameManager.instance.onBeatChanged += OnBeatChanged; + } + + public void OnBeatChanged(double beat) + { + _events = EventCaller.GetAllInGameManagerList("vfx", new string[] { "screenTiling" }); + ResetUVRect(); + Update(); + } + + private void Update() + { + foreach (var e in _events) + { + float normalized = Conductor.instance.GetPositionFromBeat(e.beat, e.length); + if (normalized < 0) break; + + float clampNormal = Mathf.Clamp01(normalized); + + var func = Util.EasingFunction.GetEasingFunction((Util.EasingFunction.Ease)e["ease"]); + + float newXTiles = func(e["xStart"], e["xEnd"], clampNormal); + float newYTiles = func(e["yStart"], e["yEnd"], clampNormal); + float newXScroll = func(e["xScrollStart"], e["xScrollEnd"], clampNormal); + float newYScroll = func(e["yScrollStart"], e["yScrollEnd"], clampNormal); + + _image.uvRect = new Rect(newXScroll, newYScroll, newXTiles, newYTiles); + _rectTransform.localScale = new Vector3(1 / newXTiles, 1 / newYTiles); + } + } + + public void ResetUVRect() + { + _image.uvRect = new Rect(0, 0, 1, 1); + _rectTransform.localScale = Vector3.one; + } + } +} + diff --git a/Assets/Scripts/ScreenTiling.cs.meta b/Assets/Scripts/ScreenTiling.cs.meta new file mode 100644 index 00000000..513f1350 --- /dev/null +++ b/Assets/Scripts/ScreenTiling.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: d556607141c07af40b1b5ee71c28c5a6 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/ProjectSettings/TagManager.asset b/ProjectSettings/TagManager.asset index 0b6653f5..350cc168 100644 --- a/ProjectSettings/TagManager.asset +++ b/ProjectSettings/TagManager.asset @@ -26,7 +26,7 @@ TagManager: - - - GameOverlaysCmn - - + - PostProcessingVFX - - -