From e6adef1f94a3db0d374993554104dbdb508ff53b Mon Sep 17 00:00:00 2001 From: Jenny Crowe Date: Thu, 10 Mar 2022 05:45:21 -0700 Subject: [PATCH] BTSDS: Outlines via Post Processing --- Assets/PostProcessingOutlines.meta | 8 + Assets/PostProcessingOutlines/Outline.shader | 146 +++++ .../Outline.shader.meta | 10 + .../OutlinePostProfile.asset | 84 +++ .../OutlinePostProfile.asset.meta | 8 + .../PostProcessOutline.cs | 42 ++ .../PostProcessOutline.cs.meta | 11 + Assets/PostProcessingOutlines/Scripts.meta | 8 + .../RenderReplacementShaderToTexture.cs | 61 ++ .../RenderReplacementShaderToTexture.cs.meta | 11 + Assets/PostProcessingOutlines/Shaders.meta | 8 + .../Shaders/HiddenNormalsTexture.shader | 52 ++ .../Shaders/HiddenNormalsTexture.shader.meta | 9 + Assets/Resources/Games/builtToScaleDS.prefab | 553 ++++++++++++++++-- Assets/Resources/Prefabs/Cameras.prefab | 4 +- .../BuiltToScaleDS/Materials/Divider.mat | 78 +++ .../BuiltToScaleDS/Materials/Divider.mat.meta | 8 + .../Games/BuiltToScaleDS/Materials/Object.mat | 5 + .../Games/BuiltToScaleDS/BuiltToScaleDS.cs | 3 + Packages/manifest.json | 1 + Packages/packages-lock.json | 9 + ProjectSettings/ProjectSettings.asset | 15 +- ProjectSettings/TagManager.asset | 2 +- 23 files changed, 1096 insertions(+), 40 deletions(-) create mode 100644 Assets/PostProcessingOutlines.meta create mode 100644 Assets/PostProcessingOutlines/Outline.shader create mode 100644 Assets/PostProcessingOutlines/Outline.shader.meta create mode 100644 Assets/PostProcessingOutlines/OutlinePostProfile.asset create mode 100644 Assets/PostProcessingOutlines/OutlinePostProfile.asset.meta create mode 100644 Assets/PostProcessingOutlines/PostProcessOutline.cs create mode 100644 Assets/PostProcessingOutlines/PostProcessOutline.cs.meta create mode 100644 Assets/PostProcessingOutlines/Scripts.meta create mode 100644 Assets/PostProcessingOutlines/Scripts/RenderReplacementShaderToTexture.cs create mode 100644 Assets/PostProcessingOutlines/Scripts/RenderReplacementShaderToTexture.cs.meta create mode 100644 Assets/PostProcessingOutlines/Shaders.meta create mode 100644 Assets/PostProcessingOutlines/Shaders/HiddenNormalsTexture.shader create mode 100644 Assets/PostProcessingOutlines/Shaders/HiddenNormalsTexture.shader.meta create mode 100644 Assets/Resources/Sprites/Games/BuiltToScaleDS/Materials/Divider.mat create mode 100644 Assets/Resources/Sprites/Games/BuiltToScaleDS/Materials/Divider.mat.meta diff --git a/Assets/PostProcessingOutlines.meta b/Assets/PostProcessingOutlines.meta new file mode 100644 index 00000000..1444abc5 --- /dev/null +++ b/Assets/PostProcessingOutlines.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 7d0fe2e630ebf6a46a9f69de01fd0773 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/PostProcessingOutlines/Outline.shader b/Assets/PostProcessingOutlines/Outline.shader new file mode 100644 index 00000000..50eda39e --- /dev/null +++ b/Assets/PostProcessingOutlines/Outline.shader @@ -0,0 +1,146 @@ +Shader "Hidden/Roystan/Outline Post Process" +{ + SubShader + { + Cull Off ZWrite Off ZTest Always + + Pass + { + // Custom post processing effects are written in HLSL blocks, + // with lots of macros to aid with platform differences. + // https://github.com/Unity-Technologies/PostProcessing/wiki/Writing-Custom-Effects#shader + HLSLPROGRAM + #pragma vertex Vert + #pragma fragment Frag + #include "Packages/com.unity.postprocessing/PostProcessing/Shaders/StdLib.hlsl" + + TEXTURE2D_SAMPLER2D(_MainTex, sampler_MainTex); + // _CameraNormalsTexture contains the view space normals transformed + // to be in the 0...1 range. + TEXTURE2D_SAMPLER2D(_CameraNormalsTexture, sampler_CameraNormalsTexture); + TEXTURE2D_SAMPLER2D(_CameraDepthTexture, sampler_CameraDepthTexture); + + // Data pertaining to _MainTex's dimensions. + // https://docs.unity3d.com/Manual/SL-PropertiesInPrograms.html + float4 _MainTex_TexelSize; + + float _Scale; + float4 _Color; + + float _DepthThreshold; + float _DepthNormalThreshold; + float _DepthNormalThresholdScale; + + float _NormalThreshold; + + // This matrix is populated in PostProcessOutline.cs. + float4x4 _ClipToView; + + // Combines the top and bottom colors using normal blending. + // https://en.wikipedia.org/wiki/Blend_modes#Normal_blend_mode + // This performs the same operation as Blend SrcAlpha OneMinusSrcAlpha. + float4 alphaBlend(float4 top, float4 bottom) + { + float3 color = (top.rgb * top.a) + (bottom.rgb * (1 - top.a)); + float alpha = top.a + bottom.a * (1 - top.a); + + return float4(color, alpha); + } + + // Both the Varyings struct and the Vert shader are copied + // from StdLib.hlsl included above, with some modifications. + struct Varyings + { + float4 vertex : SV_POSITION; + float2 texcoord : TEXCOORD0; + float2 texcoordStereo : TEXCOORD1; + float3 viewSpaceDir : TEXCOORD2; + #if STEREO_INSTANCING_ENABLED + uint stereoTargetEyeIndex : SV_RenderTargetArrayIndex; + #endif + }; + + Varyings Vert(AttributesDefault v) + { + Varyings o; + o.vertex = float4(v.vertex.xy, 0.0, 1.0); + o.texcoord = TransformTriangleVertexToUV(v.vertex.xy); + // Transform our point first from clip to view space, + // taking the xyz to interpret it as a direction. + o.viewSpaceDir = mul(_ClipToView, o.vertex).xyz; + + #if UNITY_UV_STARTS_AT_TOP + o.texcoord = o.texcoord * float2(1.0, -1.0) + float2(0.0, 1.0); + #endif + + o.texcoordStereo = TransformStereoScreenSpaceTex(o.texcoord, 1.0); + + return o; + } + + float4 Frag(Varyings i) : SV_Target + { + float halfScaleFloor = floor(_Scale * 0.5); + float halfScaleCeil = ceil(_Scale * 0.5); + + // Sample the pixels in an X shape, roughly centered around i.texcoord. + // As the _CameraDepthTexture and _CameraNormalsTexture default samplers + // use point filtering, we use the above variables to ensure we offset + // exactly one pixel at a time. + float2 bottomLeftUV = i.texcoord - float2(_MainTex_TexelSize.x, _MainTex_TexelSize.y) * halfScaleFloor; + float2 topRightUV = i.texcoord + float2(_MainTex_TexelSize.x, _MainTex_TexelSize.y) * halfScaleCeil; + float2 bottomRightUV = i.texcoord + float2(_MainTex_TexelSize.x * halfScaleCeil, -_MainTex_TexelSize.y * halfScaleFloor); + float2 topLeftUV = i.texcoord + float2(-_MainTex_TexelSize.x * halfScaleFloor, _MainTex_TexelSize.y * halfScaleCeil); + + float3 normal0 = SAMPLE_TEXTURE2D(_CameraNormalsTexture, sampler_CameraNormalsTexture, bottomLeftUV).rgb; + float3 normal1 = SAMPLE_TEXTURE2D(_CameraNormalsTexture, sampler_CameraNormalsTexture, topRightUV).rgb; + float3 normal2 = SAMPLE_TEXTURE2D(_CameraNormalsTexture, sampler_CameraNormalsTexture, bottomRightUV).rgb; + float3 normal3 = SAMPLE_TEXTURE2D(_CameraNormalsTexture, sampler_CameraNormalsTexture, topLeftUV).rgb; + + float depth0 = SAMPLE_DEPTH_TEXTURE(_CameraDepthTexture, sampler_CameraDepthTexture, bottomLeftUV).r; + float depth1 = SAMPLE_DEPTH_TEXTURE(_CameraDepthTexture, sampler_CameraDepthTexture, topRightUV).r; + float depth2 = SAMPLE_DEPTH_TEXTURE(_CameraDepthTexture, sampler_CameraDepthTexture, bottomRightUV).r; + float depth3 = SAMPLE_DEPTH_TEXTURE(_CameraDepthTexture, sampler_CameraDepthTexture, topLeftUV).r; + + // Transform the view normal from the 0...1 range to the -1...1 range. + float3 viewNormal = normal0 * 2 - 1; + float NdotV = 1 - dot(viewNormal, -i.viewSpaceDir); + + // Return a value in the 0...1 range depending on where NdotV lies + // between _DepthNormalThreshold and 1. + float normalThreshold01 = saturate((NdotV - _DepthNormalThreshold) / (1 - _DepthNormalThreshold)); + // Scale the threshold, and add 1 so that it is in the range of 1..._NormalThresholdScale + 1. + float normalThreshold = normalThreshold01 * _DepthNormalThresholdScale + 1; + + // Modulate the threshold by the existing depth value; + // pixels further from the screen will require smaller differences + // to draw an edge. + float depthThreshold = _DepthThreshold * depth0 * normalThreshold; + + float depthFiniteDifference0 = depth1 - depth0; + float depthFiniteDifference1 = depth3 - depth2; + // edgeDepth is calculated using the Roberts cross operator. + // The same operation is applied to the normal below. + // https://en.wikipedia.org/wiki/Roberts_cross + float edgeDepth = sqrt(pow(depthFiniteDifference0, 2) + pow(depthFiniteDifference1, 2)) * 100; + edgeDepth = edgeDepth > depthThreshold ? 1 : 0; + + float3 normalFiniteDifference0 = normal1 - normal0; + float3 normalFiniteDifference1 = normal3 - normal2; + // Dot the finite differences with themselves to transform the + // three-dimensional values to scalars. + float edgeNormal = sqrt(dot(normalFiniteDifference0, normalFiniteDifference0) + dot(normalFiniteDifference1, normalFiniteDifference1)); + edgeNormal = edgeNormal > _NormalThreshold ? 1 : 0; + + float edge = max(edgeDepth, edgeNormal); + + float4 edgeColor = float4(_Color.rgb, _Color.a * edge); + + float4 color = SAMPLE_TEXTURE2D(_MainTex, sampler_MainTex, i.texcoord); + + return alphaBlend(edgeColor, color); + } + ENDHLSL + } + } +} \ No newline at end of file diff --git a/Assets/PostProcessingOutlines/Outline.shader.meta b/Assets/PostProcessingOutlines/Outline.shader.meta new file mode 100644 index 00000000..2e21914d --- /dev/null +++ b/Assets/PostProcessingOutlines/Outline.shader.meta @@ -0,0 +1,10 @@ +fileFormatVersion: 2 +guid: 534727a34958a6b409102bf07fadffab +ShaderImporter: + externalObjects: {} + defaultTextures: [] + nonModifiableTextures: [] + preprocessorOverride: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/PostProcessingOutlines/OutlinePostProfile.asset b/Assets/PostProcessingOutlines/OutlinePostProfile.asset new file mode 100644 index 00000000..26a2fcb3 --- /dev/null +++ b/Assets/PostProcessingOutlines/OutlinePostProfile.asset @@ -0,0 +1,84 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!114 &-511430771441868654 +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: 957177531333f744abeb6082b4c44bc0, type: 3} + m_Name: PostProcessOutline + m_EditorClassIdentifier: + active: 1 + enabled: + overrideState: 1 + value: 1 + scale: + overrideState: 1 + value: 4 + color: + overrideState: 1 + value: {r: 0, g: 0, b: 0, a: 1} + depthThreshold: + overrideState: 1 + value: 0.6 + depthNormalThreshold: + overrideState: 1 + value: 0.6 + depthNormalThresholdScale: + overrideState: 0 + value: 7 + normalThreshold: + overrideState: 1 + value: 0.4 +--- !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: OutlinePostProfile + m_EditorClassIdentifier: + settings: + - {fileID: -511430771441868654} +--- !u!114 &114178475910842986 +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: 7f161f1bfe8d69542a86f8d442c273b8, type: 3} + m_Name: PostProcessOutline + m_EditorClassIdentifier: + active: 1 + enabled: + overrideState: 1 + value: 1 + scale: + overrideState: 0 + value: 1 + color: + overrideState: 0 + value: {r: 1, g: 1, b: 1, a: 1} + depthThreshold: + overrideState: 0 + value: 1.5 + depthNormalThreshold: + overrideState: 0 + value: 0.5 + depthNormalThresholdScale: + overrideState: 0 + value: 7 + normalThreshold: + overrideState: 0 + value: 0.4 diff --git a/Assets/PostProcessingOutlines/OutlinePostProfile.asset.meta b/Assets/PostProcessingOutlines/OutlinePostProfile.asset.meta new file mode 100644 index 00000000..9521eff4 --- /dev/null +++ b/Assets/PostProcessingOutlines/OutlinePostProfile.asset.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 11527536cbbe79e46ae805ff65dfc703 +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/PostProcessingOutlines/PostProcessOutline.cs b/Assets/PostProcessingOutlines/PostProcessOutline.cs new file mode 100644 index 00000000..2734ac35 --- /dev/null +++ b/Assets/PostProcessingOutlines/PostProcessOutline.cs @@ -0,0 +1,42 @@ +using System; +using UnityEngine; +using UnityEngine.Rendering.PostProcessing; + +[Serializable] +[PostProcess(typeof(PostProcessOutlineRenderer), PostProcessEvent.BeforeStack, "Roystan/Post Process Outline")] +public sealed class PostProcessOutline : PostProcessEffectSettings +{ + [Tooltip("Number of pixels between samples that are tested for an edge. When this value is 1, tested samples are adjacent.")] + public IntParameter scale = new IntParameter { value = 1 }; + public ColorParameter color = new ColorParameter { value = Color.white }; + [Tooltip("Difference between depth values, scaled by the current depth, required to draw an edge.")] + public FloatParameter depthThreshold = new FloatParameter { value = 1.5f }; + [Range(0, 1), Tooltip("The value at which the dot product between the surface normal and the view direction will affect " + + "the depth threshold. This ensures that surfaces at right angles to the camera require a larger depth threshold to draw " + + "an edge, avoiding edges being drawn along slopes.")] + public FloatParameter depthNormalThreshold = new FloatParameter { value = 0.5f }; + [Tooltip("Scale the strength of how much the depthNormalThreshold affects the depth threshold.")] + public FloatParameter depthNormalThresholdScale = new FloatParameter { value = 7 }; + [Range(0, 1), Tooltip("Larger values will require the difference between normals to be greater to draw an edge.")] + public FloatParameter normalThreshold = new FloatParameter { value = 0.4f }; +} + +public sealed class PostProcessOutlineRenderer : PostProcessEffectRenderer +{ + public override void Render(PostProcessRenderContext context) + { + var sheet = context.propertySheets.Get(Shader.Find("Hidden/Roystan/Outline Post Process")); + sheet.properties.SetFloat("_Scale", settings.scale); + sheet.properties.SetColor("_Color", settings.color); + sheet.properties.SetFloat("_DepthThreshold", settings.depthThreshold); + sheet.properties.SetFloat("_DepthNormalThreshold", settings.depthNormalThreshold); + sheet.properties.SetFloat("_DepthNormalThresholdScale", settings.depthNormalThresholdScale); + sheet.properties.SetFloat("_NormalThreshold", settings.normalThreshold); + sheet.properties.SetColor("_Color", settings.color); + + Matrix4x4 clipToView = GL.GetGPUProjectionMatrix(context.camera.projectionMatrix, true).inverse; + sheet.properties.SetMatrix("_ClipToView", clipToView); + + context.command.BlitFullscreenTriangle(context.source, context.destination, sheet, 0); + } +} \ No newline at end of file diff --git a/Assets/PostProcessingOutlines/PostProcessOutline.cs.meta b/Assets/PostProcessingOutlines/PostProcessOutline.cs.meta new file mode 100644 index 00000000..bdb4b40c --- /dev/null +++ b/Assets/PostProcessingOutlines/PostProcessOutline.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 957177531333f744abeb6082b4c44bc0 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/PostProcessingOutlines/Scripts.meta b/Assets/PostProcessingOutlines/Scripts.meta new file mode 100644 index 00000000..a01e40a4 --- /dev/null +++ b/Assets/PostProcessingOutlines/Scripts.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 91791aadbbc222442ad483fa480daeb6 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/PostProcessingOutlines/Scripts/RenderReplacementShaderToTexture.cs b/Assets/PostProcessingOutlines/Scripts/RenderReplacementShaderToTexture.cs new file mode 100644 index 00000000..537b6a84 --- /dev/null +++ b/Assets/PostProcessingOutlines/Scripts/RenderReplacementShaderToTexture.cs @@ -0,0 +1,61 @@ +using UnityEngine; + +public class RenderReplacementShaderToTexture : MonoBehaviour +{ + [SerializeField] + bool deleteChildren = true; + + [SerializeField] + Shader replacementShader; + + [SerializeField] + RenderTextureFormat renderTextureFormat = RenderTextureFormat.ARGB32; + + [SerializeField] + FilterMode filterMode = FilterMode.Point; + + [SerializeField] + int renderTextureDepth = 24; + + [SerializeField] + CameraClearFlags cameraClearFlags = CameraClearFlags.Color; + + [SerializeField] + Color background = Color.black; + + [SerializeField] + string targetTexture = "_RenderTexture"; + + private RenderTexture renderTexture; + private new Camera camera; + + private void Start() + { + if (deleteChildren) + { + foreach (Transform t in transform) + { + DestroyImmediate(t.gameObject); + } + } + + Camera thisCamera = GetComponent(); + + // Create a render texture matching the main camera's current dimensions. + renderTexture = new RenderTexture(thisCamera.pixelWidth, thisCamera.pixelHeight, renderTextureDepth, renderTextureFormat); + renderTexture.filterMode = filterMode; + // Surface the render texture as a global variable, available to all shaders. + Shader.SetGlobalTexture(targetTexture, renderTexture); + + // Setup a copy of the camera to render the scene using the normals shader. + GameObject copy = new GameObject("Camera" + targetTexture); + camera = copy.AddComponent(); + camera.CopyFrom(thisCamera); + camera.transform.SetParent(transform); + camera.targetTexture = renderTexture; + camera.SetReplacementShader(replacementShader, "RenderType"); + camera.depth = thisCamera.depth - 1; + camera.clearFlags = cameraClearFlags; + camera.backgroundColor = background; + } +} diff --git a/Assets/PostProcessingOutlines/Scripts/RenderReplacementShaderToTexture.cs.meta b/Assets/PostProcessingOutlines/Scripts/RenderReplacementShaderToTexture.cs.meta new file mode 100644 index 00000000..da5fb551 --- /dev/null +++ b/Assets/PostProcessingOutlines/Scripts/RenderReplacementShaderToTexture.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 2a7b4608cc97a8940ad8a9229d742532 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/PostProcessingOutlines/Shaders.meta b/Assets/PostProcessingOutlines/Shaders.meta new file mode 100644 index 00000000..c2ab434f --- /dev/null +++ b/Assets/PostProcessingOutlines/Shaders.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 5f4f903709ce9854ba9f1fd8341311bb +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/PostProcessingOutlines/Shaders/HiddenNormalsTexture.shader b/Assets/PostProcessingOutlines/Shaders/HiddenNormalsTexture.shader new file mode 100644 index 00000000..780f4811 --- /dev/null +++ b/Assets/PostProcessingOutlines/Shaders/HiddenNormalsTexture.shader @@ -0,0 +1,52 @@ +Shader "Hidden/Roystan/Normals Texture" +{ + Properties + { + } + SubShader + { + Tags + { + "RenderType" = "Opaque" + } + + Pass + { + CGPROGRAM + #pragma vertex vert + #pragma fragment frag + + #include "UnityCG.cginc" + + struct appdata + { + float4 vertex : POSITION; + float3 normal : NORMAL; + }; + + struct v2f + { + float4 vertex : SV_POSITION; + float3 viewNormal : NORMAL; + }; + + sampler2D _MainTex; + float4 _MainTex_ST; + + v2f vert (appdata v) + { + v2f o; + o.vertex = UnityObjectToClipPos(v.vertex); + o.viewNormal = COMPUTE_VIEW_NORMAL; + //o.viewNormal = mul((float3x3)UNITY_MATRIX_M, v.normal); + return o; + } + + float4 frag (v2f i) : SV_Target + { + return float4(normalize(i.viewNormal) * 0.5 + 0.5, 0); + } + ENDCG + } + } +} diff --git a/Assets/PostProcessingOutlines/Shaders/HiddenNormalsTexture.shader.meta b/Assets/PostProcessingOutlines/Shaders/HiddenNormalsTexture.shader.meta new file mode 100644 index 00000000..b29b0132 --- /dev/null +++ b/Assets/PostProcessingOutlines/Shaders/HiddenNormalsTexture.shader.meta @@ -0,0 +1,9 @@ +fileFormatVersion: 2 +guid: 95d6144eab187a34b929151454e2969d +ShaderImporter: + externalObjects: {} + defaultTextures: [] + nonModifiableTextures: [] + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Resources/Games/builtToScaleDS.prefab b/Assets/Resources/Games/builtToScaleDS.prefab index a1821e02..d8b25efe 100644 --- a/Assets/Resources/Games/builtToScaleDS.prefab +++ b/Assets/Resources/Games/builtToScaleDS.prefab @@ -76,7 +76,7 @@ GameObject: - component: {fileID: 1904058474743205874} - component: {fileID: 2593179036039019434} - component: {fileID: 7787531497184134989} - m_Layer: 10 + m_Layer: 11 m_Name: Plane (3) m_TagString: Untagged m_Icon: {fileID: 0} @@ -204,7 +204,7 @@ GameObject: - component: {fileID: 8172507218711460023} - component: {fileID: 6821258395101897873} - component: {fileID: 926746708260372244} - m_Layer: 10 + m_Layer: 11 m_Name: Plane (2) m_TagString: Untagged m_Icon: {fileID: 0} @@ -459,7 +459,7 @@ GameObject: serializedVersion: 6 m_Component: - component: {fileID: 2358312652426514775} - m_Layer: 10 + m_Layer: 11 m_Name: Planes m_TagString: Untagged m_Icon: {fileID: 0} @@ -490,6 +490,102 @@ Transform: m_Father: {fileID: 1557051792312115487} m_RootOrder: 2 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!1 &3090516112524541089 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 4836141832820598539} + - component: {fileID: 808698608665831083} + - component: {fileID: 4269084920770116494} + - component: {fileID: 2961358663447901173} + m_Layer: 11 + m_Name: Divider + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &4836141832820598539 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3090516112524541089} + m_LocalRotation: {x: -1, y: -4.622913e-24, z: 0.0000000754979, w: 6.123234e-17} + m_LocalPosition: {x: 0, y: 0.06, z: -0.119999915} + m_LocalScale: {x: 0.24499999, y: 0.007000001, z: 0.24500002} + m_Children: [] + m_Father: {fileID: 8792995672121405517} + m_RootOrder: 2 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!33 &808698608665831083 +MeshFilter: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3090516112524541089} + m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0} +--- !u!23 &4269084920770116494 +MeshRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3090516112524541089} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_DynamicOccludee: 1 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_RayTracingMode: 2 + m_RayTraceProcedural: 0 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 2100000, guid: fe19b7cdebcfcc048b1b853d82b84007, type: 2} + 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: 3 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 + m_AdditionalVertexStreams: {fileID: 0} +--- !u!136 &2961358663447901173 +CapsuleCollider: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3090516112524541089} + m_Material: {fileID: 0} + m_IsTrigger: 0 + m_Enabled: 1 + m_Radius: 0.5000001 + m_Height: 2 + m_Direction: 1 + m_Center: {x: 0.000000059604645, y: 0, z: -0.00000008940697} --- !u!1 &3746681655371897827 GameObject: m_ObjectHideFlags: 0 @@ -502,7 +598,7 @@ GameObject: - component: {fileID: 3915554652557535260} - component: {fileID: 2698157461596878833} - component: {fileID: 8546361489454318009} - m_Layer: 10 + m_Layer: 11 m_Name: Plane (4) m_TagString: Untagged m_Icon: {fileID: 0} @@ -596,6 +692,9 @@ GameObject: m_Component: - component: {fileID: 6509993024069972873} - component: {fileID: 6268063764140376526} + - component: {fileID: 1833765851953057228} + - component: {fileID: 3899385968880951982} + - component: {fileID: 4047444889478369497} - component: {fileID: 5375084517660044087} m_Layer: 10 m_Name: 3dCam @@ -614,7 +713,8 @@ Transform: m_LocalRotation: {x: -0.0000000074505815, y: -0.953717, z: 0.3007058, w: -0.000000014901163} m_LocalPosition: {x: 0.0006840229, y: 4.692, z: 6.6988134} m_LocalScale: {x: 1, y: 1, z: 1} - m_Children: [] + m_Children: + - {fileID: 7871539074872527053} m_Father: {fileID: 7562518461416892310} m_RootOrder: 0 m_LocalEulerAnglesHint: {x: 35, y: -150, z: 0} @@ -650,7 +750,7 @@ Camera: m_CullingMask: serializedVersion: 2 m_Bits: 1047 - m_RenderingPath: -1 + m_RenderingPath: 1 m_TargetTexture: {fileID: 8400000, guid: 34ad849a7863186428ae52d94f70e5b8, type: 2} m_TargetDisplay: 0 m_TargetEye: 3 @@ -661,6 +761,105 @@ Camera: m_OcclusionCulling: 1 m_StereoConvergence: 10 m_StereoSeparation: 0.022 +--- !u!114 &1833765851953057228 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 4052947733920485538} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 948f4100a11a5c24981795d21301da5c, type: 3} + m_Name: + m_EditorClassIdentifier: + volumeTrigger: {fileID: 6509993024069972873} + volumeLayer: + serializedVersion: 2 + m_Bits: 1024 + stopNaNPropagation: 1 + finalBlitToCameraTarget: 0 + antialiasingMode: 1 + 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!114 &3899385968880951982 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 4052947733920485538} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 8b9a305e18de0c04dbd257a21cd47087, type: 3} + m_Name: + m_EditorClassIdentifier: + sharedProfile: {fileID: 11400000, guid: 11527536cbbe79e46ae805ff65dfc703, type: 2} + isGlobal: 1 + blendDistance: 0 + weight: 1 + priority: 0 +--- !u!114 &4047444889478369497 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 4052947733920485538} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 2a7b4608cc97a8940ad8a9229d742532, type: 3} + m_Name: + m_EditorClassIdentifier: + deleteChildren: 0 + replacementShader: {fileID: 4800000, guid: 95d6144eab187a34b929151454e2969d, type: 3} + renderTextureFormat: 0 + filterMode: 0 + renderTextureDepth: 24 + cameraClearFlags: 2 + background: {r: 0, g: 0, b: 0, a: 1} + targetTexture: _CameraNormalsTexture --- !u!114 &5375084517660044087 MonoBehaviour: m_ObjectHideFlags: 0 @@ -690,7 +889,7 @@ GameObject: - component: {fileID: 5254653596350875027} - component: {fileID: 1516114728037185858} - component: {fileID: 5881324161737374487} - m_Layer: 10 + m_Layer: 11 m_Name: Plane (6) m_TagString: Untagged m_Icon: {fileID: 0} @@ -786,7 +985,7 @@ GameObject: - component: {fileID: 4204787640200217297} - component: {fileID: 4523509094988040840} - component: {fileID: 4679553875105140593} - m_Layer: 10 + m_Layer: 11 m_Name: Plane (9) m_TagString: Untagged m_Icon: {fileID: 0} @@ -870,6 +1069,102 @@ MeshCollider: m_Convex: 0 m_CookingOptions: 30 m_Mesh: {fileID: 10209, guid: 0000000000000000e000000000000000, type: 0} +--- !u!1 &5988651665316781079 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 6688485145801278811} + - component: {fileID: 2078030723293257927} + - component: {fileID: 1733019304924981543} + - component: {fileID: 1414836455959539945} + m_Layer: 11 + m_Name: Divider + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &6688485145801278811 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5988651665316781079} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: -0.045} + m_LocalScale: {x: 0.092, y: 0.003, z: 0.092} + m_Children: [] + m_Father: {fileID: 6995055239062017402} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!33 &2078030723293257927 +MeshFilter: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5988651665316781079} + m_Mesh: {fileID: 10206, guid: 0000000000000000e000000000000000, type: 0} +--- !u!23 &1733019304924981543 +MeshRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5988651665316781079} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_DynamicOccludee: 1 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_RayTracingMode: 2 + m_RayTraceProcedural: 0 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 2100000, guid: fe19b7cdebcfcc048b1b853d82b84007, type: 2} + 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: 3 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 + m_AdditionalVertexStreams: {fileID: 0} +--- !u!136 &1414836455959539945 +CapsuleCollider: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5988651665316781079} + m_Material: {fileID: 0} + m_IsTrigger: 0 + m_Enabled: 1 + m_Radius: 0.5000001 + m_Height: 2 + m_Direction: 1 + m_Center: {x: 0.000000059604645, y: 0, z: -0.00000008940697} --- !u!1 &6043820681562294048 GameObject: m_ObjectHideFlags: 0 @@ -916,7 +1211,7 @@ GameObject: - component: {fileID: 7788944813802751694} - component: {fileID: 18367675309029693} - component: {fileID: 8773134977642427847} - m_Layer: 10 + m_Layer: 11 m_Name: Plane (5) m_TagString: Untagged m_Icon: {fileID: 0} @@ -1012,7 +1307,7 @@ GameObject: - component: {fileID: 1797627499614140997} - component: {fileID: 2687562583631215252} - component: {fileID: 4549875497958115675} - m_Layer: 10 + m_Layer: 11 m_Name: Plane (7) m_TagString: Untagged m_Icon: {fileID: 0} @@ -1108,7 +1403,7 @@ GameObject: - component: {fileID: 1529640171278634590} - component: {fileID: 308810065821932336} - component: {fileID: 2585355676986619030} - m_Layer: 10 + m_Layer: 11 m_Name: Plane (1) m_TagString: Untagged m_Icon: {fileID: 0} @@ -1204,7 +1499,7 @@ GameObject: - component: {fileID: 5045868219633812480} - component: {fileID: 5656031445236713004} - component: {fileID: 1837997458868511495} - m_Layer: 10 + m_Layer: 11 m_Name: Plane m_TagString: Untagged m_Icon: {fileID: 0} @@ -1288,6 +1583,176 @@ MeshCollider: m_Convex: 0 m_CookingOptions: 30 m_Mesh: {fileID: 10209, guid: 0000000000000000e000000000000000, type: 0} +--- !u!1 &7795690690383294874 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 7871539074872527053} + - component: {fileID: 5405555760620080584} + m_Layer: 10 + m_Name: 3dCam_NoPost + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &7871539074872527053 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7795690690383294874} + m_LocalRotation: {x: -0, y: 1.7763566e-15, z: -1.3322675e-15, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 6509993024069972873} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 35, y: -150, z: 0} +--- !u!20 &5405555760620080584 +Camera: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7795690690383294874} + m_Enabled: 1 + serializedVersion: 2 + m_ClearFlags: 4 + m_BackGroundColor: {r: 0.32872015, g: 0.8396226, b: 0.3447749, a: 0} + m_projectionMatrixMode: 1 + m_GateFitMode: 2 + m_FOVAxisMode: 0 + m_SensorSize: {x: 36, y: 24} + m_LensShift: {x: 0, y: 0} + m_FocalLength: 50 + m_NormalizedViewPortRect: + serializedVersion: 2 + x: 0 + y: 0 + width: 1 + height: 1 + near clip plane: 0.3 + far clip plane: 1000 + field of view: 13 + orthographic: 0 + orthographic size: 1 + m_Depth: 1 + m_CullingMask: + serializedVersion: 2 + m_Bits: 2048 + m_RenderingPath: 1 + m_TargetTexture: {fileID: 8400000, guid: 34ad849a7863186428ae52d94f70e5b8, type: 2} + m_TargetDisplay: 0 + m_TargetEye: 3 + m_HDR: 1 + m_AllowMSAA: 1 + m_AllowDynamicResolution: 0 + m_ForceIntoRT: 0 + m_OcclusionCulling: 1 + m_StereoConvergence: 10 + m_StereoSeparation: 0.022 +--- !u!1 &7982743164555358858 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 7866117344103829638} + - component: {fileID: 7316215853278314007} + - component: {fileID: 516756431382683263} + - component: {fileID: 2415126858528165813} + m_Layer: 11 + m_Name: Divider + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!4 &7866117344103829638 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7982743164555358858} + m_LocalRotation: {x: -1, y: -4.622913e-24, z: 0.0000000754979, w: 6.123234e-17} + m_LocalPosition: {x: 0, y: 0.06, z: -0.119999915} + m_LocalScale: {x: 0.09199999, y: 0.0030000003, z: 0.092} + m_Children: [] + m_Father: {fileID: 7297589149425534831} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!33 &7316215853278314007 +MeshFilter: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7982743164555358858} + m_Mesh: {fileID: 10206, guid: 0000000000000000e000000000000000, type: 0} +--- !u!23 &516756431382683263 +MeshRenderer: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7982743164555358858} + m_Enabled: 1 + m_CastShadows: 1 + m_ReceiveShadows: 1 + m_DynamicOccludee: 1 + m_MotionVectors: 1 + m_LightProbeUsage: 1 + m_ReflectionProbeUsage: 1 + m_RayTracingMode: 2 + m_RayTraceProcedural: 0 + m_RenderingLayerMask: 1 + m_RendererPriority: 0 + m_Materials: + - {fileID: 2100000, guid: fe19b7cdebcfcc048b1b853d82b84007, type: 2} + 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: 3 + m_MinimumChartSize: 4 + m_AutoUVMaxDistance: 0.5 + m_AutoUVMaxAngle: 89 + m_LightmapParameters: {fileID: 0} + m_SortingLayerID: 0 + m_SortingLayer: 0 + m_SortingOrder: 0 + m_AdditionalVertexStreams: {fileID: 0} +--- !u!136 &2415126858528165813 +CapsuleCollider: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7982743164555358858} + m_Material: {fileID: 0} + m_IsTrigger: 0 + m_Enabled: 1 + m_Radius: 0.5000001 + m_Height: 2 + m_Direction: 1 + m_Center: {x: 0.000000059604645, y: 0, z: -0.00000008940697} --- !u!1 &8070718553788868724 GameObject: m_ObjectHideFlags: 0 @@ -1337,6 +1802,7 @@ MonoBehaviour: firstEnable: 0 renderQuadTrans: {fileID: 743597382397742394} camPivot: {fileID: 7562518461416892310} + camComp: {fileID: 6268063764140376526} environmentRenderer: {fileID: 3593377758750892331} flyingRodBase: {fileID: 4881628242623067222} movingBlocksBase: {fileID: 6531576029795059484} @@ -1482,7 +1948,7 @@ GameObject: - component: {fileID: 7896298911117363642} - component: {fileID: 6403188663626989240} - component: {fileID: 4200106339439436060} - m_Layer: 10 + m_Layer: 11 m_Name: Plane (8) m_TagString: Untagged m_Icon: {fileID: 0} @@ -1619,7 +2085,7 @@ PrefabInstance: objectReference: {fileID: 0} - target: {fileID: -8132531614644770919, guid: 21a743717f79155429b45d3a0fd77c68, type: 3} propertyPath: m_Layer - value: 10 + value: 11 objectReference: {fileID: 0} - target: {fileID: -6643014861322606625, guid: 21a743717f79155429b45d3a0fd77c68, type: 3} propertyPath: m_Materials.Array.data[0] @@ -1683,15 +2149,15 @@ PrefabInstance: objectReference: {fileID: 2100000, guid: f8523e095c9f2194d8ae47687a42305a, type: 2} - target: {fileID: -6039374180021687990, guid: 21a743717f79155429b45d3a0fd77c68, type: 3} propertyPath: m_Layer - value: 10 + value: 11 objectReference: {fileID: 0} - target: {fileID: -4863704078625465896, guid: 21a743717f79155429b45d3a0fd77c68, type: 3} propertyPath: m_Layer - value: 10 + value: 11 objectReference: {fileID: 0} - target: {fileID: 401148810032451334, guid: 21a743717f79155429b45d3a0fd77c68, type: 3} propertyPath: m_Layer - value: 10 + value: 11 objectReference: {fileID: 0} - target: {fileID: 919132149155446097, guid: 21a743717f79155429b45d3a0fd77c68, type: 3} propertyPath: m_Name @@ -1699,7 +2165,7 @@ PrefabInstance: objectReference: {fileID: 0} - target: {fileID: 919132149155446097, guid: 21a743717f79155429b45d3a0fd77c68, type: 3} propertyPath: m_Layer - value: 10 + value: 11 objectReference: {fileID: 0} m_RemovedComponents: [] m_SourcePrefab: {fileID: 100100000, guid: 21a743717f79155429b45d3a0fd77c68, type: 3} @@ -1894,16 +2360,16 @@ PrefabInstance: objectReference: {fileID: 0} m_RemovedComponents: [] m_SourcePrefab: {fileID: 100100000, guid: 26c46c4ecd6e69145a6e971ac2cf6dcf, type: 3} ---- !u!1 &2303042808372188642 stripped -GameObject: - m_CorrespondingSourceObject: {fileID: 919132149155446097, guid: 26c46c4ecd6e69145a6e971ac2cf6dcf, type: 3} - m_PrefabInstance: {fileID: 1384686368965781683} - m_PrefabAsset: {fileID: 0} --- !u!4 &1494594296080928600 stripped Transform: m_CorrespondingSourceObject: {fileID: -8679921383154817045, guid: 26c46c4ecd6e69145a6e971ac2cf6dcf, type: 3} m_PrefabInstance: {fileID: 1384686368965781683} m_PrefabAsset: {fileID: 0} +--- !u!1 &2303042808372188642 stripped +GameObject: + m_CorrespondingSourceObject: {fileID: 919132149155446097, guid: 26c46c4ecd6e69145a6e971ac2cf6dcf, type: 3} + m_PrefabInstance: {fileID: 1384686368965781683} + m_PrefabAsset: {fileID: 0} --- !u!95 &327112291406064303 Animator: serializedVersion: 3 @@ -2082,6 +2548,11 @@ Transform: m_CorrespondingSourceObject: {fileID: -8679921383154817045, guid: 4d6a1ca519b6789419c00178b5d2b983, type: 3} m_PrefabInstance: {fileID: 1860677578905467174} m_PrefabAsset: {fileID: 0} +--- !u!4 &8792995672121405517 stripped +Transform: + m_CorrespondingSourceObject: {fileID: 7193526923147233643, guid: 4d6a1ca519b6789419c00178b5d2b983, type: 3} + m_PrefabInstance: {fileID: 1860677578905467174} + m_PrefabAsset: {fileID: 0} --- !u!95 &4258085773905465771 Animator: serializedVersion: 3 @@ -2207,16 +2678,21 @@ PrefabInstance: objectReference: {fileID: 0} m_RemovedComponents: [] m_SourcePrefab: {fileID: 100100000, guid: 69111fa8d72cdb847ad14fc0d8fd984c, type: 3} ---- !u!4 &5257063787336281836 stripped -Transform: - m_CorrespondingSourceObject: {fileID: -8679921383154817045, guid: 69111fa8d72cdb847ad14fc0d8fd984c, type: 3} - m_PrefabInstance: {fileID: 5728137633595574535} - m_PrefabAsset: {fileID: 0} --- !u!1 &4881628242623067222 stripped GameObject: m_CorrespondingSourceObject: {fileID: 919132149155446097, guid: 69111fa8d72cdb847ad14fc0d8fd984c, type: 3} m_PrefabInstance: {fileID: 5728137633595574535} m_PrefabAsset: {fileID: 0} +--- !u!4 &7297589149425534831 stripped +Transform: + m_CorrespondingSourceObject: {fileID: 3042270054197743208, guid: 69111fa8d72cdb847ad14fc0d8fd984c, type: 3} + m_PrefabInstance: {fileID: 5728137633595574535} + m_PrefabAsset: {fileID: 0} +--- !u!4 &5257063787336281836 stripped +Transform: + m_CorrespondingSourceObject: {fileID: -8679921383154817045, guid: 69111fa8d72cdb847ad14fc0d8fd984c, type: 3} + m_PrefabInstance: {fileID: 5728137633595574535} + m_PrefabAsset: {fileID: 0} --- !u!95 &8117935502587229019 Animator: serializedVersion: 3 @@ -2358,16 +2834,16 @@ PrefabInstance: objectReference: {fileID: 0} m_RemovedComponents: [] m_SourcePrefab: {fileID: 100100000, guid: e6239db4d6763504fa0e5ad6ce9761b7, type: 3} ---- !u!4 &5903939180778773926 stripped -Transform: - m_CorrespondingSourceObject: {fileID: -8679921383154817045, guid: e6239db4d6763504fa0e5ad6ce9761b7, type: 3} - m_PrefabInstance: {fileID: 6225584485801998925} - m_PrefabAsset: {fileID: 0} --- !u!1 &6531576029795059484 stripped GameObject: m_CorrespondingSourceObject: {fileID: 919132149155446097, guid: e6239db4d6763504fa0e5ad6ce9761b7, type: 3} m_PrefabInstance: {fileID: 6225584485801998925} m_PrefabAsset: {fileID: 0} +--- !u!4 &5903939180778773926 stripped +Transform: + m_CorrespondingSourceObject: {fileID: -8679921383154817045, guid: e6239db4d6763504fa0e5ad6ce9761b7, type: 3} + m_PrefabInstance: {fileID: 6225584485801998925} + m_PrefabAsset: {fileID: 0} --- !u!95 &7940570394249237327 Animator: serializedVersion: 3 @@ -2704,14 +3180,19 @@ PrefabInstance: objectReference: {fileID: 0} m_RemovedComponents: [] m_SourcePrefab: {fileID: 100100000, guid: 266571bf0a87816428e18a51e3c57d0f, type: 3} +--- !u!1 &8986598071013078877 stripped +GameObject: + m_CorrespondingSourceObject: {fileID: 919132149155446097, guid: 266571bf0a87816428e18a51e3c57d0f, type: 3} + m_PrefabInstance: {fileID: 8104129143664069132} + m_PrefabAsset: {fileID: 0} --- !u!4 &8646102017070181863 stripped Transform: m_CorrespondingSourceObject: {fileID: -8679921383154817045, guid: 266571bf0a87816428e18a51e3c57d0f, type: 3} m_PrefabInstance: {fileID: 8104129143664069132} m_PrefabAsset: {fileID: 0} ---- !u!1 &8986598071013078877 stripped -GameObject: - m_CorrespondingSourceObject: {fileID: 919132149155446097, guid: 266571bf0a87816428e18a51e3c57d0f, type: 3} +--- !u!4 &6995055239062017402 stripped +Transform: + m_CorrespondingSourceObject: {fileID: -7970022061681008778, guid: 266571bf0a87816428e18a51e3c57d0f, type: 3} m_PrefabInstance: {fileID: 8104129143664069132} m_PrefabAsset: {fileID: 0} --- !u!95 &1613410199122163856 diff --git a/Assets/Resources/Prefabs/Cameras.prefab b/Assets/Resources/Prefabs/Cameras.prefab index 99d67e41..74058e7f 100644 --- a/Assets/Resources/Prefabs/Cameras.prefab +++ b/Assets/Resources/Prefabs/Cameras.prefab @@ -59,7 +59,7 @@ Camera: field of view: 53.15 orthographic: 1 orthographic size: 5 - m_Depth: 1 + m_Depth: 2 m_CullingMask: serializedVersion: 2 m_Bits: 72 @@ -138,7 +138,7 @@ Camera: m_Depth: -1 m_CullingMask: serializedVersion: 2 - m_Bits: 2583 + m_Bits: 4631 m_RenderingPath: -1 m_TargetTexture: {fileID: 0} m_TargetDisplay: 0 diff --git a/Assets/Resources/Sprites/Games/BuiltToScaleDS/Materials/Divider.mat b/Assets/Resources/Sprites/Games/BuiltToScaleDS/Materials/Divider.mat new file mode 100644 index 00000000..fd53ffb7 --- /dev/null +++ b/Assets/Resources/Sprites/Games/BuiltToScaleDS/Materials/Divider.mat @@ -0,0 +1,78 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!21 &2100000 +Material: + serializedVersion: 6 + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: Divider + m_Shader: {fileID: 10755, guid: 0000000000000000f000000000000000, type: 0} + m_ShaderKeywords: + m_LightmapFlags: 4 + m_EnableInstancingVariants: 0 + m_DoubleSidedGI: 0 + m_CustomRenderQueue: -1 + stringTagMap: {} + disabledShaderPasses: [] + m_SavedProperties: + serializedVersion: 3 + m_TexEnvs: + - _BumpMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _DetailAlbedoMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _DetailMask: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _DetailNormalMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _EmissionMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _MainTex: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _MetallicGlossMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _OcclusionMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + - _ParallaxMap: + m_Texture: {fileID: 0} + m_Scale: {x: 1, y: 1} + m_Offset: {x: 0, y: 0} + m_Floats: + - _BumpScale: 1 + - _Cutoff: 0.5 + - _DetailNormalMapScale: 1 + - _DstBlend: 0 + - _GlossMapScale: 1 + - _Glossiness: 0.5 + - _GlossyReflections: 1 + - _Metallic: 0 + - _Mode: 0 + - _OcclusionStrength: 1 + - _Parallax: 0.02 + - _SmoothnessTextureChannel: 0 + - _SpecularHighlights: 1 + - _SrcBlend: 1 + - _UVSec: 0 + - _ZWrite: 1 + m_Colors: + - _Color: {r: 0, g: 0, b: 0, a: 1} + - _EmissionColor: {r: 0, g: 0, b: 0, a: 1} + m_BuildTextureStacks: [] diff --git a/Assets/Resources/Sprites/Games/BuiltToScaleDS/Materials/Divider.mat.meta b/Assets/Resources/Sprites/Games/BuiltToScaleDS/Materials/Divider.mat.meta new file mode 100644 index 00000000..64e32c3f --- /dev/null +++ b/Assets/Resources/Sprites/Games/BuiltToScaleDS/Materials/Divider.mat.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: fe19b7cdebcfcc048b1b853d82b84007 +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 2100000 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Resources/Sprites/Games/BuiltToScaleDS/Materials/Object.mat b/Assets/Resources/Sprites/Games/BuiltToScaleDS/Materials/Object.mat index 4bf89744..ad597ab7 100644 --- a/Assets/Resources/Sprites/Games/BuiltToScaleDS/Materials/Object.mat +++ b/Assets/Resources/Sprites/Games/BuiltToScaleDS/Materials/Object.mat @@ -82,6 +82,7 @@ Material: m_Floats: - _AdditionalLightIgnoreCelShade: 0.9 - _AlphaClip: 0 + - _Angle: 89 - _Blend: 0 - _BumpScale: 1 - _CelShadeMidPoint: -0.5 @@ -96,6 +97,7 @@ Material: - _DstBlend: 0 - _EmissionMulByBaseColor: 0 - _EnvironmentReflections: 1 + - _FirstOutlineWidth: 0.02 - _GlossMapScale: 0 - _Glossiness: 0 - _GlossinessSource: 0 @@ -118,6 +120,7 @@ Material: - _ReceiveShadowMappingPosOffset: 0 - _ReceiveShadows: 1 - _SampleGI: 0 + - _SecondOutlineWidth: 0.02 - _Shininess: 0 - _Smoothness: 0.5 - _SmoothnessSource: 0 @@ -137,9 +140,11 @@ Material: - _Color: {r: 1, g: 1, b: 1, a: 1} - _EmissionColor: {r: 0, g: 0, b: 0, a: 1} - _EmissionMapChannelMask: {r: 1, g: 1, b: 1, a: 0} + - _FirstOutlineColor: {r: 0, g: 0, b: 0, a: 0.5} - _IndirectLightMinColor: {r: 0, g: 0, b: 0, a: 1} - _OcclusionMapChannelMask: {r: 1, g: 0, b: 0, a: 0} - _OutlineColor: {r: 0, g: 0, b: 0, a: 1} + - _SecondOutlineColor: {r: 0, g: 0, b: 0, a: 1} - _ShadowMapColor: {r: 0, g: 0, b: 0, a: 1} - _SpecColor: {r: 0.2, g: 0.2, b: 0.2, a: 1} m_BuildTextureStacks: [] diff --git a/Assets/Scripts/Games/BuiltToScaleDS/BuiltToScaleDS.cs b/Assets/Scripts/Games/BuiltToScaleDS/BuiltToScaleDS.cs index 7a1b5838..2eda015c 100644 --- a/Assets/Scripts/Games/BuiltToScaleDS/BuiltToScaleDS.cs +++ b/Assets/Scripts/Games/BuiltToScaleDS/BuiltToScaleDS.cs @@ -15,6 +15,7 @@ namespace RhythmHeavenMania.Games.BuiltToScaleDS [Header("Camera")] public Transform renderQuadTrans; public Transform camPivot; + public Camera camComp; [Header("References")] public SkinnedMeshRenderer environmentRenderer; @@ -57,6 +58,8 @@ namespace RhythmHeavenMania.Games.BuiltToScaleDS var camWidth = camHeight * cam.aspect; renderQuadTrans.localScale = new Vector3(camWidth, camHeight, 1f); + camComp.depthTextureMode = camComp.depthTextureMode | DepthTextureMode.Depth; + elevatorAnim.Play("MakeRod", 0, 1f); } diff --git a/Packages/manifest.json b/Packages/manifest.json index d86d3bfe..46364798 100644 --- a/Packages/manifest.json +++ b/Packages/manifest.json @@ -6,6 +6,7 @@ "com.unity.ide.visualstudio": "2.0.12", "com.unity.ide.vscode": "1.2.4", "com.unity.nuget.newtonsoft-json": "2.0.2", + "com.unity.postprocessing": "3.2.1", "com.unity.test-framework": "1.1.29", "com.unity.textmeshpro": "3.0.6", "com.unity.timeline": "1.4.8", diff --git a/Packages/packages-lock.json b/Packages/packages-lock.json index a04e64b4..2921c205 100644 --- a/Packages/packages-lock.json +++ b/Packages/packages-lock.json @@ -55,6 +55,15 @@ "dependencies": {}, "url": "https://packages.unity.com" }, + "com.unity.postprocessing": { + "version": "3.2.1", + "depth": 0, + "source": "registry", + "dependencies": { + "com.unity.modules.physics": "1.0.0" + }, + "url": "https://packages.unity.com" + }, "com.unity.services.core": { "version": "1.0.1", "depth": 1, diff --git a/ProjectSettings/ProjectSettings.asset b/ProjectSettings/ProjectSettings.asset index 745c7547..7da3149c 100644 --- a/ProjectSettings/ProjectSettings.asset +++ b/ProjectSettings/ProjectSettings.asset @@ -567,7 +567,20 @@ PlayerSettings: webGLLinkerTarget: 1 webGLThreadsSupport: 0 webGLDecompressionFallback: 0 - scriptingDefineSymbols: {} + scriptingDefineSymbols: + 1: UNITY_POST_PROCESSING_STACK_V2 + 7: UNITY_POST_PROCESSING_STACK_V2 + 13: UNITY_POST_PROCESSING_STACK_V2 + 14: UNITY_POST_PROCESSING_STACK_V2 + 19: UNITY_POST_PROCESSING_STACK_V2 + 21: UNITY_POST_PROCESSING_STACK_V2 + 25: UNITY_POST_PROCESSING_STACK_V2 + 27: UNITY_POST_PROCESSING_STACK_V2 + 28: UNITY_POST_PROCESSING_STACK_V2 + 29: UNITY_POST_PROCESSING_STACK_V2 + 30: UNITY_POST_PROCESSING_STACK_V2 + 32: UNITY_POST_PROCESSING_STACK_V2 + 33: UNITY_POST_PROCESSING_STACK_V2 additionalCompilerArguments: {} platformArchitecture: {} scriptingBackend: {} diff --git a/ProjectSettings/TagManager.asset b/ProjectSettings/TagManager.asset index 7a55c047..c775d8c6 100644 --- a/ProjectSettings/TagManager.asset +++ b/ProjectSettings/TagManager.asset @@ -16,6 +16,7 @@ TagManager: - EventProperties - RenderTextures - 3DDefault + - 3DAlt - Flash - - @@ -36,7 +37,6 @@ TagManager: - - - - - m_SortingLayers: - name: Default uniqueID: 0