mirror of
https://github.com/RHeavenStudioPlus/HeavenStudioPlus.git
synced 2024-11-15 06:05:10 +00:00
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
This commit is contained in:
parent
9c37ec4216
commit
012b354db8
11 changed files with 2177 additions and 29 deletions
8
Assets/PostProcessingVFX.meta
Normal file
8
Assets/PostProcessingVFX.meta
Normal file
|
@ -0,0 +1,8 @@
|
||||||
|
fileFormatVersion: 2
|
||||||
|
guid: 973719517d70b044e95328d5c777afd6
|
||||||
|
folderAsset: yes
|
||||||
|
DefaultImporter:
|
||||||
|
externalObjects: {}
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
1511
Assets/PostProcessingVFX/GameCameraProfile.asset
Normal file
1511
Assets/PostProcessingVFX/GameCameraProfile.asset
Normal file
File diff suppressed because it is too large
Load diff
8
Assets/PostProcessingVFX/GameCameraProfile.asset.meta
Normal file
8
Assets/PostProcessingVFX/GameCameraProfile.asset.meta
Normal file
|
@ -0,0 +1,8 @@
|
||||||
|
fileFormatVersion: 2
|
||||||
|
guid: b51cceebf153b484cb3ae8addf344bb3
|
||||||
|
NativeFormatImporter:
|
||||||
|
externalObjects: {}
|
||||||
|
mainObjectFileID: 11400000
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
|
@ -295,6 +295,7 @@ GameObject:
|
||||||
- component: {fileID: 1535126665250126034}
|
- component: {fileID: 1535126665250126034}
|
||||||
- component: {fileID: 1198356187242493155}
|
- component: {fileID: 1198356187242493155}
|
||||||
- component: {fileID: 647613278910435637}
|
- component: {fileID: 647613278910435637}
|
||||||
|
- component: {fileID: 2582851074058764053}
|
||||||
m_Layer: 31
|
m_Layer: 31
|
||||||
m_Name: GameView
|
m_Name: GameView
|
||||||
m_TagString: Untagged
|
m_TagString: Untagged
|
||||||
|
@ -357,6 +358,18 @@ MonoBehaviour:
|
||||||
y: 0
|
y: 0
|
||||||
width: 1
|
width: 1
|
||||||
height: 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
|
--- !u!1 &2478945398383251488
|
||||||
GameObject:
|
GameObject:
|
||||||
m_ObjectHideFlags: 0
|
m_ObjectHideFlags: 0
|
||||||
|
@ -597,6 +610,68 @@ MonoBehaviour:
|
||||||
m_FillOrigin: 0
|
m_FillOrigin: 0
|
||||||
m_UseSpriteMesh: 0
|
m_UseSpriteMesh: 0
|
||||||
m_PixelsPerUnitMultiplier: 1024
|
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
|
--- !u!1 &6052331674005083371
|
||||||
GameObject:
|
GameObject:
|
||||||
m_ObjectHideFlags: 0
|
m_ObjectHideFlags: 0
|
||||||
|
@ -684,6 +759,7 @@ GameObject:
|
||||||
- component: {fileID: 6052331674369862801}
|
- component: {fileID: 6052331674369862801}
|
||||||
- component: {fileID: 6052331674369862803}
|
- component: {fileID: 6052331674369862803}
|
||||||
- component: {fileID: 4484390403394809578}
|
- component: {fileID: 4484390403394809578}
|
||||||
|
- component: {fileID: 154916227922109824}
|
||||||
m_Layer: 0
|
m_Layer: 0
|
||||||
m_Name: Main Camera
|
m_Name: Main Camera
|
||||||
m_TagString: Untagged
|
m_TagString: Untagged
|
||||||
|
@ -771,6 +847,68 @@ MonoBehaviour:
|
||||||
m_EditorClassIdentifier:
|
m_EditorClassIdentifier:
|
||||||
camera: {fileID: 6052331674369862801}
|
camera: {fileID: 6052331674369862801}
|
||||||
baseColor: {r: 0, g: 0, b: 0, a: 1}
|
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
|
--- !u!1 &6052331674888157615
|
||||||
GameObject:
|
GameObject:
|
||||||
m_ObjectHideFlags: 0
|
m_ObjectHideFlags: 0
|
||||||
|
@ -804,6 +942,7 @@ Transform:
|
||||||
- {fileID: 2274170308165449537}
|
- {fileID: 2274170308165449537}
|
||||||
- {fileID: 4235880641665482497}
|
- {fileID: 4235880641665482497}
|
||||||
- {fileID: 2077856143944097172}
|
- {fileID: 2077856143944097172}
|
||||||
|
- {fileID: 1404010314325821530}
|
||||||
m_Father: {fileID: 0}
|
m_Father: {fileID: 0}
|
||||||
m_RootOrder: 0
|
m_RootOrder: 0
|
||||||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||||
|
@ -842,7 +981,7 @@ RectTransform:
|
||||||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||||
m_AnchorMin: {x: 1, y: 0}
|
m_AnchorMin: {x: 1, y: 0}
|
||||||
m_AnchorMax: {x: 1, y: 1}
|
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_SizeDelta: {x: 2, y: 12}
|
||||||
m_Pivot: {x: 0.5, y: 0.5}
|
m_Pivot: {x: 0.5, y: 0.5}
|
||||||
--- !u!222 &7734333607666534753
|
--- !u!222 &7734333607666534753
|
||||||
|
|
|
@ -371,9 +371,9 @@ RectTransform:
|
||||||
m_Father: {fileID: 574002313}
|
m_Father: {fileID: 574002313}
|
||||||
m_RootOrder: 0
|
m_RootOrder: 0
|
||||||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||||
m_AnchorMin: {x: 0, y: 0}
|
m_AnchorMin: {x: 0, y: 1}
|
||||||
m_AnchorMax: {x: 0, y: 0}
|
m_AnchorMax: {x: 0, y: 1}
|
||||||
m_AnchoredPosition: {x: 0, y: 0}
|
m_AnchoredPosition: {x: 0, y: -21}
|
||||||
m_SizeDelta: {x: 32, y: 32}
|
m_SizeDelta: {x: 32, y: 32}
|
||||||
m_Pivot: {x: 0, y: 0.5}
|
m_Pivot: {x: 0, y: 0.5}
|
||||||
--- !u!114 &9435782
|
--- !u!114 &9435782
|
||||||
|
@ -3519,9 +3519,9 @@ RectTransform:
|
||||||
m_Father: {fileID: 539838476}
|
m_Father: {fileID: 539838476}
|
||||||
m_RootOrder: 0
|
m_RootOrder: 0
|
||||||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||||
m_AnchorMin: {x: 0, y: 0}
|
m_AnchorMin: {x: 0, y: 1}
|
||||||
m_AnchorMax: {x: 0, y: 0}
|
m_AnchorMax: {x: 0, y: 1}
|
||||||
m_AnchoredPosition: {x: 0, y: 0}
|
m_AnchoredPosition: {x: 32, y: -21}
|
||||||
m_SizeDelta: {x: 32, y: 32}
|
m_SizeDelta: {x: 32, y: 32}
|
||||||
m_Pivot: {x: 1, y: 0.5}
|
m_Pivot: {x: 1, y: 0.5}
|
||||||
--- !u!114 &121871281
|
--- !u!114 &121871281
|
||||||
|
@ -3664,9 +3664,9 @@ RectTransform:
|
||||||
m_Father: {fileID: 539838476}
|
m_Father: {fileID: 539838476}
|
||||||
m_RootOrder: 1
|
m_RootOrder: 1
|
||||||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||||
m_AnchorMin: {x: 0, y: 0}
|
m_AnchorMin: {x: 0, y: 1}
|
||||||
m_AnchorMax: {x: 0, y: 0}
|
m_AnchorMax: {x: 0, y: 1}
|
||||||
m_AnchoredPosition: {x: 0, y: 0}
|
m_AnchoredPosition: {x: 72, y: -21}
|
||||||
m_SizeDelta: {x: 32, y: 32}
|
m_SizeDelta: {x: 32, y: 32}
|
||||||
m_Pivot: {x: 1, y: 0.5}
|
m_Pivot: {x: 1, y: 0.5}
|
||||||
--- !u!114 &129013734
|
--- !u!114 &129013734
|
||||||
|
@ -3786,9 +3786,9 @@ RectTransform:
|
||||||
m_Father: {fileID: 539838476}
|
m_Father: {fileID: 539838476}
|
||||||
m_RootOrder: 2
|
m_RootOrder: 2
|
||||||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||||
m_AnchorMin: {x: 0, y: 0}
|
m_AnchorMin: {x: 0, y: 1}
|
||||||
m_AnchorMax: {x: 0, y: 0}
|
m_AnchorMax: {x: 0, y: 1}
|
||||||
m_AnchoredPosition: {x: 0, y: 0}
|
m_AnchoredPosition: {x: 112, y: -21}
|
||||||
m_SizeDelta: {x: 32, y: 32}
|
m_SizeDelta: {x: 32, y: 32}
|
||||||
m_Pivot: {x: 1, y: 0.5}
|
m_Pivot: {x: 1, y: 0.5}
|
||||||
--- !u!114 &151246938
|
--- !u!114 &151246938
|
||||||
|
@ -5005,7 +5005,7 @@ RectTransform:
|
||||||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||||
m_AnchorMin: {x: 0, y: 1}
|
m_AnchorMin: {x: 0, y: 1}
|
||||||
m_AnchorMax: {x: 1, 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_SizeDelta: {x: -800.0001, y: 194}
|
||||||
m_Pivot: {x: 0.5, y: 1}
|
m_Pivot: {x: 0.5, y: 1}
|
||||||
--- !u!114 &195260752
|
--- !u!114 &195260752
|
||||||
|
@ -21343,7 +21343,7 @@ MonoBehaviour:
|
||||||
m_TargetGraphic: {fileID: 1589389272}
|
m_TargetGraphic: {fileID: 1589389272}
|
||||||
m_HandleRect: {fileID: 1589389271}
|
m_HandleRect: {fileID: 1589389271}
|
||||||
m_Direction: 2
|
m_Direction: 2
|
||||||
m_Value: 1
|
m_Value: 0
|
||||||
m_Size: 1
|
m_Size: 1
|
||||||
m_NumberOfSteps: 0
|
m_NumberOfSteps: 0
|
||||||
m_OnValueChanged:
|
m_OnValueChanged:
|
||||||
|
@ -26115,7 +26115,7 @@ RectTransform:
|
||||||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||||
m_AnchorMin: {x: 0, y: 0.5}
|
m_AnchorMin: {x: 0, y: 0.5}
|
||||||
m_AnchorMax: {x: 1, 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_SizeDelta: {x: 0, y: 0}
|
||||||
m_Pivot: {x: 0.5, y: 1}
|
m_Pivot: {x: 0.5, y: 1}
|
||||||
--- !u!222 &1154875945
|
--- !u!222 &1154875945
|
||||||
|
@ -30195,9 +30195,9 @@ RectTransform:
|
||||||
m_Father: {fileID: 574002313}
|
m_Father: {fileID: 574002313}
|
||||||
m_RootOrder: 1
|
m_RootOrder: 1
|
||||||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||||
m_AnchorMin: {x: 0, y: 0}
|
m_AnchorMin: {x: 0, y: 1}
|
||||||
m_AnchorMax: {x: 0, y: 0}
|
m_AnchorMax: {x: 0, y: 1}
|
||||||
m_AnchoredPosition: {x: 0, y: 0}
|
m_AnchoredPosition: {x: 40, y: -21}
|
||||||
m_SizeDelta: {x: 32, y: 32}
|
m_SizeDelta: {x: 32, y: 32}
|
||||||
m_Pivot: {x: 0, y: 0.5}
|
m_Pivot: {x: 0, y: 0.5}
|
||||||
--- !u!114 &1345846031
|
--- !u!114 &1345846031
|
||||||
|
@ -31317,7 +31317,7 @@ RectTransform:
|
||||||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||||
m_AnchorMin: {x: 0, y: 1}
|
m_AnchorMin: {x: 0, y: 1}
|
||||||
m_AnchorMax: {x: 1, 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_SizeDelta: {x: -800.0001, y: 194}
|
||||||
m_Pivot: {x: 0.5, y: 1}
|
m_Pivot: {x: 0.5, y: 1}
|
||||||
--- !u!114 &1426168094
|
--- !u!114 &1426168094
|
||||||
|
@ -35305,8 +35305,8 @@ MonoBehaviour:
|
||||||
m_TargetGraphic: {fileID: 1220118245}
|
m_TargetGraphic: {fileID: 1220118245}
|
||||||
m_HandleRect: {fileID: 1220118244}
|
m_HandleRect: {fileID: 1220118244}
|
||||||
m_Direction: 2
|
m_Direction: 2
|
||||||
m_Value: 1.0000007
|
m_Value: 1
|
||||||
m_Size: 0.87568516
|
m_Size: 1
|
||||||
m_NumberOfSteps: 0
|
m_NumberOfSteps: 0
|
||||||
m_OnValueChanged:
|
m_OnValueChanged:
|
||||||
m_PersistentCalls:
|
m_PersistentCalls:
|
||||||
|
@ -38052,9 +38052,9 @@ RectTransform:
|
||||||
m_Father: {fileID: 574002313}
|
m_Father: {fileID: 574002313}
|
||||||
m_RootOrder: 2
|
m_RootOrder: 2
|
||||||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||||
m_AnchorMin: {x: 0, y: 0}
|
m_AnchorMin: {x: 0, y: 1}
|
||||||
m_AnchorMax: {x: 0, y: 0}
|
m_AnchorMax: {x: 0, y: 1}
|
||||||
m_AnchoredPosition: {x: 0, y: 0}
|
m_AnchoredPosition: {x: 80, y: -21}
|
||||||
m_SizeDelta: {x: 32, y: 32}
|
m_SizeDelta: {x: 32, y: 32}
|
||||||
m_Pivot: {x: 0, y: 0.5}
|
m_Pivot: {x: 0, y: 0.5}
|
||||||
--- !u!114 &1783491359
|
--- !u!114 &1783491359
|
||||||
|
|
|
@ -774,7 +774,10 @@ namespace HeavenStudio
|
||||||
new Param("colorB", Color.white, "End Color"),
|
new Param("colorB", Color.white, "End Color"),
|
||||||
new Param("valA", new EntityTypes.Float(0, 1, 1), "Start Opacity"),
|
new Param("valA", new EntityTypes.Float(0, 1, 1), "Start Opacity"),
|
||||||
new Param("valB", new EntityTypes.Float(0, 1, 0), "End 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,
|
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("start", new EntityTypes.Float(0, 1, 1), "Start Intensity"),
|
||||||
new Param("end", new EntityTypes.Float(0, 1, 1), "End 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<Param>()
|
new GameAction("move camera", "Move Camera", 1f, true, new List<Param>()
|
||||||
|
@ -884,6 +890,162 @@ namespace HeavenStudio
|
||||||
new Param("instantOff", false, "Instant Hide", "Skip the hide animation?"),
|
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" })
|
||||||
|
}),
|
||||||
|
}
|
||||||
|
}
|
||||||
}),
|
}),
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
236
Assets/Scripts/PostProcessingVFX.cs
Normal file
236
Assets/Scripts/PostProcessingVFX.cs
Normal file
|
@ -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<RiqEntity> _vignettes = new();
|
||||||
|
private List<RiqEntity> _cabbs = new();
|
||||||
|
private List<RiqEntity> _blooms = new();
|
||||||
|
private List<RiqEntity> _lensDs = new();
|
||||||
|
private List<RiqEntity> _grains = new();
|
||||||
|
private List<RiqEntity> _colorGradings = new();
|
||||||
|
|
||||||
|
private void Awake()
|
||||||
|
{
|
||||||
|
_volume = GetComponent<PostProcessVolume>();
|
||||||
|
}
|
||||||
|
|
||||||
|
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<Vignette>(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<ChromaticAberration>(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<Bloom>(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<LensDistortion>(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<Grain>(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<ColorGrading>(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);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
11
Assets/Scripts/PostProcessingVFX.cs.meta
Normal file
11
Assets/Scripts/PostProcessingVFX.cs.meta
Normal file
|
@ -0,0 +1,11 @@
|
||||||
|
fileFormatVersion: 2
|
||||||
|
guid: e3cc0a4bae0c56540b9f598f4644539c
|
||||||
|
MonoImporter:
|
||||||
|
externalObjects: {}
|
||||||
|
serializedVersion: 2
|
||||||
|
defaultReferences: []
|
||||||
|
executionOrder: 0
|
||||||
|
icon: {instanceID: 0}
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
62
Assets/Scripts/ScreenTiling.cs
Normal file
62
Assets/Scripts/ScreenTiling.cs
Normal file
|
@ -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<RiqEntity> _events = new();
|
||||||
|
|
||||||
|
private void Awake()
|
||||||
|
{
|
||||||
|
_image = GetComponent<RawImage>();
|
||||||
|
_rectTransform = GetComponent<RectTransform>();
|
||||||
|
}
|
||||||
|
|
||||||
|
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;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
11
Assets/Scripts/ScreenTiling.cs.meta
Normal file
11
Assets/Scripts/ScreenTiling.cs.meta
Normal file
|
@ -0,0 +1,11 @@
|
||||||
|
fileFormatVersion: 2
|
||||||
|
guid: d556607141c07af40b1b5ee71c28c5a6
|
||||||
|
MonoImporter:
|
||||||
|
externalObjects: {}
|
||||||
|
serializedVersion: 2
|
||||||
|
defaultReferences: []
|
||||||
|
executionOrder: 0
|
||||||
|
icon: {instanceID: 0}
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
|
@ -26,7 +26,7 @@ TagManager:
|
||||||
-
|
-
|
||||||
-
|
-
|
||||||
- GameOverlaysCmn
|
- GameOverlaysCmn
|
||||||
-
|
- PostProcessingVFX
|
||||||
-
|
-
|
||||||
-
|
-
|
||||||
-
|
-
|
||||||
|
|
Loading…
Reference in a new issue