diff --git a/Assets/Scenes/ArtStaging.unity b/Assets/Scenes/ArtStaging.unity
index 60848ba72..bcfe33a77 100644
--- a/Assets/Scenes/ArtStaging.unity
+++ b/Assets/Scenes/ArtStaging.unity
@@ -298,6 +298,103 @@ Transform:
m_Children: []
m_Father: {fileID: 0}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!1 &1315222322
+GameObject:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ serializedVersion: 6
+ m_Component:
+ - component: {fileID: 1315222324}
+ - component: {fileID: 1315222323}
+ m_Layer: 0
+ m_Name: RimCold
+ m_TagString: Untagged
+ m_Icon: {fileID: 0}
+ m_NavMeshLayer: 0
+ m_StaticEditorFlags: 0
+ m_IsActive: 1
+--- !u!108 &1315222323
+Light:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1315222322}
+ m_Enabled: 1
+ serializedVersion: 13
+ m_Type: 1
+ m_Color: {r: 0.45, g: 0.75, b: 1, a: 1}
+ m_Intensity: 0.7
+ m_Range: 10
+ m_SpotAngle: 30
+ m_InnerSpotAngle: 21.80208
+ m_CookieSize2D: {x: 0.5, y: 0.5}
+ m_Shadows:
+ m_Type: 0
+ m_Resolution: -1
+ m_CustomResolution: -1
+ m_Strength: 1
+ m_Bias: 0.05
+ m_NormalBias: 0.4
+ m_NearPlane: 0.2
+ m_CullingMatrixOverride:
+ e00: 1
+ e01: 0
+ e02: 0
+ e03: 0
+ e10: 0
+ e11: 1
+ e12: 0
+ e13: 0
+ e20: 0
+ e21: 0
+ e22: 1
+ e23: 0
+ e30: 0
+ e31: 0
+ e32: 0
+ e33: 1
+ m_UseCullingMatrixOverride: 0
+ m_Cookie: {fileID: 0}
+ m_DrawHalo: 0
+ m_Flare: {fileID: 0}
+ m_RenderMode: 0
+ m_CullingMask:
+ serializedVersion: 2
+ m_Bits: 4294967295
+ m_RenderingLayerMask: 1
+ m_Lightmapping: 4
+ m_LightShadowCasterMode: 0
+ m_AreaSize: {x: 1, y: 1}
+ m_BounceIntensity: 1
+ m_ColorTemperature: 6570
+ m_UseColorTemperature: 0
+ m_BoundingSphereOverride: {x: 0, y: 0, z: 0, w: 0}
+ m_UseBoundingSphereOverride: 0
+ m_UseViewFrustumForShadowCasterCull: 1
+ m_ForceVisible: 0
+ m_ShapeRadius: 0.025
+ m_ShadowAngle: 0
+ m_LightUnit: 1
+ m_LuxAtDistance: 1
+ m_EnableSpotReflector: 1
+--- !u!4 &1315222324
+Transform:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1315222322}
+ serializedVersion: 2
+ m_LocalRotation: {x: -0.022624101, y: 0.9709478, z: -0.10205072, w: -0.21525395}
+ m_LocalPosition: {x: 0, y: 0, z: 0}
+ m_LocalScale: {x: 1, y: 1, z: 1}
+ m_ConstrainProportionsScale: 0
+ m_Children: []
+ m_Father: {fileID: 0}
+ m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!1 &1464065895
GameObject:
m_ObjectHideFlags: 0
@@ -501,6 +598,7 @@ GameObject:
m_Component:
- component: {fileID: 1858992822}
- component: {fileID: 1858992821}
+ - component: {fileID: 1858992823}
m_Layer: 0
m_Name: ~StagingDev
m_TagString: Untagged
@@ -535,6 +633,26 @@ Transform:
m_Children: []
m_Father: {fileID: 0}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!114 &1858992823
+MonoBehaviour:
+ m_ObjectHideFlags: 0
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_GameObject: {fileID: 1858992820}
+ m_Enabled: 1
+ m_EditorHideFlags: 0
+ m_Script: {fileID: 11500000, guid: abe491d4d98103f4ab08712d8a78a1eb, type: 3}
+ m_Name:
+ m_EditorClassIdentifier: ProjectM.Client::ProjectM.Client.StagingAmbiance
+ causticsSpinDegPerSec: 4
+ floraPulseAmount: 0.35
+ floraPulseSpeed: 1.1
+ camDriftAmplitude: 0.13
+ camDriftSpeed: 0.17
+ bobAmplitude: 0.045
+ bobSpeed: 0.55
+ swayDegrees: 0.9
--- !u!1 &1943208579
GameObject:
m_ObjectHideFlags: 0
@@ -1232,13 +1350,25 @@ PrefabInstance:
propertyPath: m_InnerSpotAngle
value: 40
objectReference: {fileID: 0}
+ - target: {fileID: 3746036557242884362, guid: a56e554160baf224282f9467d6a5dfa0, type: 3}
+ propertyPath: m_Shadows.m_Type
+ value: 2
+ objectReference: {fileID: 0}
+ - target: {fileID: 3746036557242884362, guid: a56e554160baf224282f9467d6a5dfa0, type: 3}
+ propertyPath: m_Shadows.m_Strength
+ value: 0.55
+ objectReference: {fileID: 0}
- target: {fileID: 4458646397483401264, guid: a56e554160baf224282f9467d6a5dfa0, type: 3}
propertyPath: m_Intensity
value: 0.22
objectReference: {fileID: 0}
- target: {fileID: 4548773710126222555, guid: a56e554160baf224282f9467d6a5dfa0, type: 3}
propertyPath: m_Intensity
- value: 0.15
+ value: 0.85
+ objectReference: {fileID: 0}
+ - target: {fileID: 4548773710126222555, guid: a56e554160baf224282f9467d6a5dfa0, type: 3}
+ propertyPath: m_Shadows.m_Strength
+ value: 0.75
objectReference: {fileID: 0}
- target: {fileID: 6513448254367613169, guid: a56e554160baf224282f9467d6a5dfa0, type: 3}
propertyPath: m_LocalPosition.x
@@ -1305,3 +1435,4 @@ SceneRoots:
- {fileID: 1464065898}
- {fileID: 1943208582}
- {fileID: 1858992822}
+ - {fileID: 1315222324}
diff --git a/Assets/Scenes/Game.unity b/Assets/Scenes/Game.unity
index 49c5e196b..b5519ce0f 100644
--- a/Assets/Scenes/Game.unity
+++ b/Assets/Scenes/Game.unity
@@ -183,7 +183,7 @@ Transform:
m_Children: []
m_Father: {fileID: 0}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
---- !u!1 &205208180
+--- !u!1 &190248698
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
@@ -191,43 +191,43 @@ GameObject:
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- - component: {fileID: 205208181}
- - component: {fileID: 205208182}
+ - component: {fileID: 190248699}
+ - component: {fileID: 190248700}
m_Layer: 0
- m_Name: SurveyCampLight_S1
+ m_Name: RimCold
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
---- !u!4 &205208181
+--- !u!4 &190248699
Transform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
- m_GameObject: {fileID: 205208180}
+ m_GameObject: {fileID: 190248698}
serializedVersion: 2
- m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
- m_LocalPosition: {x: 1538, y: 2.5, z: 23}
+ m_LocalRotation: {x: -0.022624101, y: 0.9709478, z: -0.10205072, w: -0.21525395}
+ m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1}
m_ConstrainProportionsScale: 0
m_Children: []
- m_Father: {fileID: 1276835916}
+ m_Father: {fileID: 1643709739}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
---- !u!108 &205208182
+--- !u!108 &190248700
Light:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
- m_GameObject: {fileID: 205208180}
+ m_GameObject: {fileID: 190248698}
m_Enabled: 1
serializedVersion: 13
- m_Type: 2
- m_Color: {r: 1, g: 0.72, b: 0.4, a: 1}
- m_Intensity: 3.5
- m_Range: 12
+ m_Type: 1
+ m_Color: {r: 0.45, g: 0.75, b: 1, a: 1}
+ m_Intensity: 1.025
+ m_Range: 10
m_SpotAngle: 30
m_InnerSpotAngle: 21.80208
m_CookieSize2D: {x: 0.5, y: 0.5}
@@ -490,260 +490,6 @@ MonoBehaviour:
FallbackTarget: {x: 3, y: 0, z: 4}
AimLeadDistance: 0.5
LeadSharpness: 3
---- !u!1 &410087039
-GameObject:
- m_ObjectHideFlags: 0
- m_CorrespondingSourceObject: {fileID: 0}
- m_PrefabInstance: {fileID: 0}
- m_PrefabAsset: {fileID: 0}
- serializedVersion: 6
- m_Component:
- - component: {fileID: 410087041}
- - component: {fileID: 410087040}
- - component: {fileID: 410087042}
- m_Layer: 0
- m_Name: Directional Light
- m_TagString: Untagged
- m_Icon: {fileID: 0}
- m_NavMeshLayer: 0
- m_StaticEditorFlags: 0
- m_IsActive: 1
---- !u!108 &410087040
-Light:
- m_ObjectHideFlags: 0
- m_CorrespondingSourceObject: {fileID: 0}
- m_PrefabInstance: {fileID: 0}
- m_PrefabAsset: {fileID: 0}
- m_GameObject: {fileID: 410087039}
- m_Enabled: 1
- serializedVersion: 13
- m_Type: 1
- m_Color: {r: 0.93, g: 0.91, b: 0.88, a: 1}
- m_Intensity: 1.05
- m_Range: 10
- m_SpotAngle: 30
- m_InnerSpotAngle: 21.80208
- m_CookieSize2D: {x: 10, y: 10}
- m_Shadows:
- m_Type: 2
- m_Resolution: -1
- m_CustomResolution: -1
- m_Strength: 0.85
- m_Bias: 0.05
- m_NormalBias: 0.4
- m_NearPlane: 0.2
- m_CullingMatrixOverride:
- e00: 1
- e01: 0
- e02: 0
- e03: 0
- e10: 0
- e11: 1
- e12: 0
- e13: 0
- e20: 0
- e21: 0
- e22: 1
- e23: 0
- e30: 0
- e31: 0
- e32: 0
- e33: 1
- m_UseCullingMatrixOverride: 0
- m_Cookie: {fileID: 0}
- m_DrawHalo: 0
- m_Flare: {fileID: 0}
- m_RenderMode: 0
- m_CullingMask:
- serializedVersion: 2
- m_Bits: 4294967295
- m_RenderingLayerMask: 1
- m_Lightmapping: 4
- m_LightShadowCasterMode: 0
- m_AreaSize: {x: 1, y: 1}
- m_BounceIntensity: 1
- m_ColorTemperature: 5000
- m_UseColorTemperature: 1
- m_BoundingSphereOverride: {x: 0, y: 0, z: 0, w: 0}
- m_UseBoundingSphereOverride: 0
- m_UseViewFrustumForShadowCasterCull: 1
- m_ForceVisible: 0
- m_ShapeRadius: 0
- m_ShadowAngle: 0
- m_LightUnit: 1
- m_LuxAtDistance: 1
- m_EnableSpotReflector: 1
---- !u!4 &410087041
-Transform:
- m_ObjectHideFlags: 0
- m_CorrespondingSourceObject: {fileID: 0}
- m_PrefabInstance: {fileID: 0}
- m_PrefabAsset: {fileID: 0}
- m_GameObject: {fileID: 410087039}
- serializedVersion: 2
- m_LocalRotation: {x: 0.39713126, y: 0.30997553, z: -0.14454395, w: 0.8516508}
- m_LocalPosition: {x: 0, y: 3, z: 0}
- m_LocalScale: {x: 1, y: 1, z: 1}
- m_ConstrainProportionsScale: 0
- m_Children: []
- m_Father: {fileID: 0}
- m_LocalEulerAnglesHint: {x: 50, y: -30, z: 0}
---- !u!114 &410087042
-MonoBehaviour:
- m_ObjectHideFlags: 0
- m_CorrespondingSourceObject: {fileID: 0}
- m_PrefabInstance: {fileID: 0}
- m_PrefabAsset: {fileID: 0}
- m_GameObject: {fileID: 410087039}
- m_Enabled: 1
- m_EditorHideFlags: 0
- m_Script: {fileID: 11500000, guid: 474bcb49853aa07438625e644c072ee6, type: 3}
- m_Name:
- m_EditorClassIdentifier:
- m_UsePipelineSettings: 1
- m_AdditionalLightsShadowResolutionTier: 2
- m_CustomShadowLayers: 0
- m_LightCookieSize: {x: 1, y: 1}
- m_LightCookieOffset: {x: 0, y: 0}
- m_SoftShadowQuality: 1
- m_RenderingLayersMask:
- serializedVersion: 0
- m_Bits: 1
- m_ShadowRenderingLayersMask:
- serializedVersion: 0
- m_Bits: 1
- m_Version: 4
- m_LightLayerMask: 1
- m_ShadowLayerMask: 1
- m_RenderingLayers: 1
- m_ShadowRenderingLayers: 1
---- !u!1 &663963125
-GameObject:
- m_ObjectHideFlags: 0
- m_CorrespondingSourceObject: {fileID: 0}
- m_PrefabInstance: {fileID: 0}
- m_PrefabAsset: {fileID: 0}
- serializedVersion: 6
- m_Component:
- - component: {fileID: 663963126}
- - component: {fileID: 663963127}
- - component: {fileID: 663963128}
- m_Layer: 0
- m_Name: ArtefactLight
- m_TagString: Untagged
- m_Icon: {fileID: 0}
- m_NavMeshLayer: 0
- m_StaticEditorFlags: 0
- m_IsActive: 1
---- !u!4 &663963126
-Transform:
- m_ObjectHideFlags: 0
- m_CorrespondingSourceObject: {fileID: 0}
- m_PrefabInstance: {fileID: 0}
- m_PrefabAsset: {fileID: 0}
- m_GameObject: {fileID: 663963125}
- serializedVersion: 2
- m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
- m_LocalPosition: {x: 1030, y: 3.5, z: -8}
- m_LocalScale: {x: 1, y: 1, z: 1}
- m_ConstrainProportionsScale: 0
- m_Children: []
- m_Father: {fileID: 1276835916}
- m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
---- !u!108 &663963127
-Light:
- m_ObjectHideFlags: 0
- m_CorrespondingSourceObject: {fileID: 0}
- m_PrefabInstance: {fileID: 0}
- m_PrefabAsset: {fileID: 0}
- m_GameObject: {fileID: 663963125}
- m_Enabled: 1
- serializedVersion: 13
- m_Type: 2
- m_Color: {r: 0.75, g: 0.45, b: 1, a: 1}
- m_Intensity: 4.5
- m_Range: 14
- m_SpotAngle: 30
- m_InnerSpotAngle: 21.80208
- m_CookieSize2D: {x: 0.5, y: 0.5}
- m_Shadows:
- m_Type: 0
- m_Resolution: -1
- m_CustomResolution: -1
- m_Strength: 1
- m_Bias: 0.05
- m_NormalBias: 0.4
- m_NearPlane: 0.2
- m_CullingMatrixOverride:
- e00: 1
- e01: 0
- e02: 0
- e03: 0
- e10: 0
- e11: 1
- e12: 0
- e13: 0
- e20: 0
- e21: 0
- e22: 1
- e23: 0
- e30: 0
- e31: 0
- e32: 0
- e33: 1
- m_UseCullingMatrixOverride: 0
- m_Cookie: {fileID: 0}
- m_DrawHalo: 0
- m_Flare: {fileID: 0}
- m_RenderMode: 0
- m_CullingMask:
- serializedVersion: 2
- m_Bits: 4294967295
- m_RenderingLayerMask: 1
- m_Lightmapping: 4
- m_LightShadowCasterMode: 0
- m_AreaSize: {x: 1, y: 1}
- m_BounceIntensity: 1
- m_ColorTemperature: 6570
- m_UseColorTemperature: 0
- m_BoundingSphereOverride: {x: 0, y: 0, z: 0, w: 0}
- m_UseBoundingSphereOverride: 0
- m_UseViewFrustumForShadowCasterCull: 1
- m_ForceVisible: 0
- m_ShapeRadius: 0.025
- m_ShadowAngle: 0
- m_LightUnit: 1
- m_LuxAtDistance: 1
- m_EnableSpotReflector: 1
---- !u!114 &663963128
-MonoBehaviour:
- m_ObjectHideFlags: 0
- m_CorrespondingSourceObject: {fileID: 0}
- m_PrefabInstance: {fileID: 0}
- m_PrefabAsset: {fileID: 0}
- m_GameObject: {fileID: 663963125}
- m_Enabled: 1
- m_EditorHideFlags: 0
- m_Script: {fileID: 11500000, guid: 474bcb49853aa07438625e644c072ee6, type: 3}
- m_Name:
- m_EditorClassIdentifier: Unity.RenderPipelines.Universal.Runtime::UnityEngine.Rendering.Universal.UniversalAdditionalLightData
- m_UsePipelineSettings: 1
- m_AdditionalLightsShadowResolutionTier: 2
- m_CustomShadowLayers: 0
- m_LightCookieSize: {x: 1, y: 1}
- m_LightCookieOffset: {x: 0, y: 0}
- m_SoftShadowQuality: 0
- m_RenderingLayersMask:
- serializedVersion: 0
- m_Bits: 1
- m_ShadowRenderingLayersMask:
- serializedVersion: 0
- m_Bits: 1
- m_Version: 4
- m_LightLayerMask: 1
- m_ShadowLayerMask: 1
- m_RenderingLayers: 1
- m_ShadowRenderingLayers: 1
--- !u!1 &832575517
GameObject:
m_ObjectHideFlags: 0
@@ -906,170 +652,6 @@ Transform:
m_Children: []
m_Father: {fileID: 0}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
---- !u!1 &1120306465
-GameObject:
- m_ObjectHideFlags: 0
- m_CorrespondingSourceObject: {fileID: 0}
- m_PrefabInstance: {fileID: 0}
- m_PrefabAsset: {fileID: 0}
- serializedVersion: 6
- m_Component:
- - component: {fileID: 1120306466}
- - component: {fileID: 1120306467}
- - component: {fileID: 1120306468}
- m_Layer: 0
- m_Name: SurveyCampLight
- m_TagString: Untagged
- m_Icon: {fileID: 0}
- m_NavMeshLayer: 0
- m_StaticEditorFlags: 0
- m_IsActive: 1
---- !u!4 &1120306466
-Transform:
- m_ObjectHideFlags: 0
- m_CorrespondingSourceObject: {fileID: 0}
- m_PrefabInstance: {fileID: 0}
- m_PrefabAsset: {fileID: 0}
- m_GameObject: {fileID: 1120306465}
- serializedVersion: 2
- m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
- m_LocalPosition: {x: 1038, y: 2.5, z: 23}
- m_LocalScale: {x: 1, y: 1, z: 1}
- m_ConstrainProportionsScale: 0
- m_Children: []
- m_Father: {fileID: 1276835916}
- m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
---- !u!108 &1120306467
-Light:
- m_ObjectHideFlags: 0
- m_CorrespondingSourceObject: {fileID: 0}
- m_PrefabInstance: {fileID: 0}
- m_PrefabAsset: {fileID: 0}
- m_GameObject: {fileID: 1120306465}
- m_Enabled: 1
- serializedVersion: 13
- m_Type: 2
- m_Color: {r: 1, g: 0.72, b: 0.4, a: 1}
- m_Intensity: 3.5
- m_Range: 12
- m_SpotAngle: 30
- m_InnerSpotAngle: 21.80208
- m_CookieSize2D: {x: 0.5, y: 0.5}
- m_Shadows:
- m_Type: 0
- m_Resolution: -1
- m_CustomResolution: -1
- m_Strength: 1
- m_Bias: 0.05
- m_NormalBias: 0.4
- m_NearPlane: 0.2
- m_CullingMatrixOverride:
- e00: 1
- e01: 0
- e02: 0
- e03: 0
- e10: 0
- e11: 1
- e12: 0
- e13: 0
- e20: 0
- e21: 0
- e22: 1
- e23: 0
- e30: 0
- e31: 0
- e32: 0
- e33: 1
- m_UseCullingMatrixOverride: 0
- m_Cookie: {fileID: 0}
- m_DrawHalo: 0
- m_Flare: {fileID: 0}
- m_RenderMode: 0
- m_CullingMask:
- serializedVersion: 2
- m_Bits: 4294967295
- m_RenderingLayerMask: 1
- m_Lightmapping: 4
- m_LightShadowCasterMode: 0
- m_AreaSize: {x: 1, y: 1}
- m_BounceIntensity: 1
- m_ColorTemperature: 6570
- m_UseColorTemperature: 0
- m_BoundingSphereOverride: {x: 0, y: 0, z: 0, w: 0}
- m_UseBoundingSphereOverride: 0
- m_UseViewFrustumForShadowCasterCull: 1
- m_ForceVisible: 0
- m_ShapeRadius: 0.025
- m_ShadowAngle: 0
- m_LightUnit: 1
- m_LuxAtDistance: 1
- m_EnableSpotReflector: 1
---- !u!114 &1120306468
-MonoBehaviour:
- m_ObjectHideFlags: 0
- m_CorrespondingSourceObject: {fileID: 0}
- m_PrefabInstance: {fileID: 0}
- m_PrefabAsset: {fileID: 0}
- m_GameObject: {fileID: 1120306465}
- m_Enabled: 1
- m_EditorHideFlags: 0
- m_Script: {fileID: 11500000, guid: 474bcb49853aa07438625e644c072ee6, type: 3}
- m_Name:
- m_EditorClassIdentifier: Unity.RenderPipelines.Universal.Runtime::UnityEngine.Rendering.Universal.UniversalAdditionalLightData
- m_UsePipelineSettings: 1
- m_AdditionalLightsShadowResolutionTier: 2
- m_CustomShadowLayers: 0
- m_LightCookieSize: {x: 1, y: 1}
- m_LightCookieOffset: {x: 0, y: 0}
- m_SoftShadowQuality: 0
- m_RenderingLayersMask:
- serializedVersion: 0
- m_Bits: 1
- m_ShadowRenderingLayersMask:
- serializedVersion: 0
- m_Bits: 1
- m_Version: 4
- m_LightLayerMask: 1
- m_ShadowLayerMask: 1
- m_RenderingLayers: 1
- m_ShadowRenderingLayers: 1
---- !u!1 &1276835915
-GameObject:
- m_ObjectHideFlags: 0
- m_CorrespondingSourceObject: {fileID: 0}
- m_PrefabInstance: {fileID: 0}
- m_PrefabAsset: {fileID: 0}
- serializedVersion: 6
- m_Component:
- - component: {fileID: 1276835916}
- m_Layer: 0
- m_Name: LandmarkLights
- m_TagString: Untagged
- m_Icon: {fileID: 0}
- m_NavMeshLayer: 0
- m_StaticEditorFlags: 0
- m_IsActive: 1
---- !u!4 &1276835916
-Transform:
- m_ObjectHideFlags: 0
- m_CorrespondingSourceObject: {fileID: 0}
- m_PrefabInstance: {fileID: 0}
- m_PrefabAsset: {fileID: 0}
- m_GameObject: {fileID: 1276835915}
- serializedVersion: 2
- 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:
- - {fileID: 1915626474}
- - {fileID: 663963126}
- - {fileID: 1501947283}
- - {fileID: 1120306466}
- - {fileID: 205208181}
- - {fileID: 2045829909}
- m_Father: {fileID: 0}
- m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!1 &1314640898
GameObject:
m_ObjectHideFlags: 0
@@ -1123,103 +705,6 @@ Transform:
m_Children: []
m_Father: {fileID: 0}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
---- !u!1 &1501947282
-GameObject:
- m_ObjectHideFlags: 0
- m_CorrespondingSourceObject: {fileID: 0}
- m_PrefabInstance: {fileID: 0}
- m_PrefabAsset: {fileID: 0}
- serializedVersion: 6
- m_Component:
- - component: {fileID: 1501947283}
- - component: {fileID: 1501947284}
- m_Layer: 0
- m_Name: ArtefactLight_S1
- m_TagString: Untagged
- m_Icon: {fileID: 0}
- m_NavMeshLayer: 0
- m_StaticEditorFlags: 0
- m_IsActive: 1
---- !u!4 &1501947283
-Transform:
- m_ObjectHideFlags: 0
- m_CorrespondingSourceObject: {fileID: 0}
- m_PrefabInstance: {fileID: 0}
- m_PrefabAsset: {fileID: 0}
- m_GameObject: {fileID: 1501947282}
- serializedVersion: 2
- m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
- m_LocalPosition: {x: 1530, y: 3.5, z: -8}
- m_LocalScale: {x: 1, y: 1, z: 1}
- m_ConstrainProportionsScale: 0
- m_Children: []
- m_Father: {fileID: 1276835916}
- m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
---- !u!108 &1501947284
-Light:
- m_ObjectHideFlags: 0
- m_CorrespondingSourceObject: {fileID: 0}
- m_PrefabInstance: {fileID: 0}
- m_PrefabAsset: {fileID: 0}
- m_GameObject: {fileID: 1501947282}
- m_Enabled: 1
- serializedVersion: 13
- m_Type: 2
- m_Color: {r: 0.75, g: 0.45, b: 1, a: 1}
- m_Intensity: 4.5
- m_Range: 14
- m_SpotAngle: 30
- m_InnerSpotAngle: 21.80208
- m_CookieSize2D: {x: 0.5, y: 0.5}
- m_Shadows:
- m_Type: 0
- m_Resolution: -1
- m_CustomResolution: -1
- m_Strength: 1
- m_Bias: 0.05
- m_NormalBias: 0.4
- m_NearPlane: 0.2
- m_CullingMatrixOverride:
- e00: 1
- e01: 0
- e02: 0
- e03: 0
- e10: 0
- e11: 1
- e12: 0
- e13: 0
- e20: 0
- e21: 0
- e22: 1
- e23: 0
- e30: 0
- e31: 0
- e32: 0
- e33: 1
- m_UseCullingMatrixOverride: 0
- m_Cookie: {fileID: 0}
- m_DrawHalo: 0
- m_Flare: {fileID: 0}
- m_RenderMode: 0
- m_CullingMask:
- serializedVersion: 2
- m_Bits: 4294967295
- m_RenderingLayerMask: 1
- m_Lightmapping: 4
- m_LightShadowCasterMode: 0
- m_AreaSize: {x: 1, y: 1}
- m_BounceIntensity: 1
- m_ColorTemperature: 6570
- m_UseColorTemperature: 0
- m_BoundingSphereOverride: {x: 0, y: 0, z: 0, w: 0}
- m_UseBoundingSphereOverride: 0
- m_UseViewFrustumForShadowCasterCull: 1
- m_ForceVisible: 0
- m_ShapeRadius: 0.025
- m_ShadowAngle: 0
- m_LightUnit: 1
- m_LuxAtDistance: 1
- m_EnableSpotReflector: 1
--- !u!1001 &1643709738
PrefabInstance:
m_ObjectHideFlags: 0
@@ -1232,6 +717,18 @@ PrefabInstance:
propertyPath: m_Name
value: Env_SeabedKit
objectReference: {fileID: 0}
+ - target: {fileID: 3746036557242884362, guid: a56e554160baf224282f9467d6a5dfa0, type: 3}
+ propertyPath: m_Shadows.m_Type
+ value: 2
+ objectReference: {fileID: 0}
+ - target: {fileID: 3746036557242884362, guid: a56e554160baf224282f9467d6a5dfa0, type: 3}
+ propertyPath: m_Shadows.m_Strength
+ value: 0.55
+ objectReference: {fileID: 0}
+ - target: {fileID: 4458646397483401264, guid: a56e554160baf224282f9467d6a5dfa0, type: 3}
+ propertyPath: m_Intensity
+ value: 0.3238342
+ objectReference: {fileID: 0}
- target: {fileID: 6513448254367613169, guid: a56e554160baf224282f9467d6a5dfa0, type: 3}
propertyPath: m_LocalPosition.x
value: 0
@@ -1274,9 +771,17 @@ PrefabInstance:
objectReference: {fileID: 0}
m_RemovedComponents: []
m_RemovedGameObjects: []
- m_AddedGameObjects: []
+ m_AddedGameObjects:
+ - targetCorrespondingSourceObject: {fileID: 6513448254367613169, guid: a56e554160baf224282f9467d6a5dfa0, type: 3}
+ insertIndex: -1
+ addedObject: {fileID: 190248699}
m_AddedComponents: []
m_SourcePrefab: {fileID: 100100000, guid: a56e554160baf224282f9467d6a5dfa0, type: 3}
+--- !u!4 &1643709739 stripped
+Transform:
+ m_CorrespondingSourceObject: {fileID: 6513448254367613169, guid: a56e554160baf224282f9467d6a5dfa0, type: 3}
+ m_PrefabInstance: {fileID: 1643709738}
+ m_PrefabAsset: {fileID: 0}
--- !u!1 &1709609452
GameObject:
m_ObjectHideFlags: 0
@@ -1329,272 +834,16 @@ Transform:
m_Children: []
m_Father: {fileID: 0}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
---- !u!1 &1915626473
-GameObject:
- m_ObjectHideFlags: 0
- m_CorrespondingSourceObject: {fileID: 0}
- m_PrefabInstance: {fileID: 0}
- m_PrefabAsset: {fileID: 0}
- serializedVersion: 6
- m_Component:
- - component: {fileID: 1915626474}
- - component: {fileID: 1915626475}
- - component: {fileID: 1915626476}
- m_Layer: 0
- m_Name: WarpgateLight
- m_TagString: Untagged
- m_Icon: {fileID: 0}
- m_NavMeshLayer: 0
- m_StaticEditorFlags: 0
- m_IsActive: 1
---- !u!4 &1915626474
-Transform:
- m_ObjectHideFlags: 0
- m_CorrespondingSourceObject: {fileID: 0}
- m_PrefabInstance: {fileID: 0}
- m_PrefabAsset: {fileID: 0}
- m_GameObject: {fileID: 1915626473}
- serializedVersion: 2
- m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
- m_LocalPosition: {x: 0, y: 3, z: -21.5}
- m_LocalScale: {x: 1, y: 1, z: 1}
- m_ConstrainProportionsScale: 0
- m_Children: []
- m_Father: {fileID: 1276835916}
- m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
---- !u!108 &1915626475
-Light:
- m_ObjectHideFlags: 0
- m_CorrespondingSourceObject: {fileID: 0}
- m_PrefabInstance: {fileID: 0}
- m_PrefabAsset: {fileID: 0}
- m_GameObject: {fileID: 1915626473}
- m_Enabled: 1
- serializedVersion: 13
- m_Type: 2
- m_Color: {r: 0.35, g: 0.85, b: 1, a: 1}
- m_Intensity: 4
- m_Range: 14
- m_SpotAngle: 30
- m_InnerSpotAngle: 21.80208
- m_CookieSize2D: {x: 0.5, y: 0.5}
- m_Shadows:
- m_Type: 0
- m_Resolution: -1
- m_CustomResolution: -1
- m_Strength: 1
- m_Bias: 0.05
- m_NormalBias: 0.4
- m_NearPlane: 0.2
- m_CullingMatrixOverride:
- e00: 1
- e01: 0
- e02: 0
- e03: 0
- e10: 0
- e11: 1
- e12: 0
- e13: 0
- e20: 0
- e21: 0
- e22: 1
- e23: 0
- e30: 0
- e31: 0
- e32: 0
- e33: 1
- m_UseCullingMatrixOverride: 0
- m_Cookie: {fileID: 0}
- m_DrawHalo: 0
- m_Flare: {fileID: 0}
- m_RenderMode: 0
- m_CullingMask:
- serializedVersion: 2
- m_Bits: 4294967295
- m_RenderingLayerMask: 1
- m_Lightmapping: 4
- m_LightShadowCasterMode: 0
- m_AreaSize: {x: 1, y: 1}
- m_BounceIntensity: 1
- m_ColorTemperature: 6570
- m_UseColorTemperature: 0
- m_BoundingSphereOverride: {x: 0, y: 0, z: 0, w: 0}
- m_UseBoundingSphereOverride: 0
- m_UseViewFrustumForShadowCasterCull: 1
- m_ForceVisible: 0
- m_ShapeRadius: 0.025
- m_ShadowAngle: 0
- m_LightUnit: 1
- m_LuxAtDistance: 1
- m_EnableSpotReflector: 1
---- !u!114 &1915626476
-MonoBehaviour:
- m_ObjectHideFlags: 0
- m_CorrespondingSourceObject: {fileID: 0}
- m_PrefabInstance: {fileID: 0}
- m_PrefabAsset: {fileID: 0}
- m_GameObject: {fileID: 1915626473}
- m_Enabled: 1
- m_EditorHideFlags: 0
- m_Script: {fileID: 11500000, guid: 474bcb49853aa07438625e644c072ee6, type: 3}
- m_Name:
- m_EditorClassIdentifier: Unity.RenderPipelines.Universal.Runtime::UnityEngine.Rendering.Universal.UniversalAdditionalLightData
- m_UsePipelineSettings: 1
- m_AdditionalLightsShadowResolutionTier: 2
- m_CustomShadowLayers: 0
- m_LightCookieSize: {x: 1, y: 1}
- m_LightCookieOffset: {x: 0, y: 0}
- m_SoftShadowQuality: 0
- m_RenderingLayersMask:
- serializedVersion: 0
- m_Bits: 1
- m_ShadowRenderingLayersMask:
- serializedVersion: 0
- m_Bits: 1
- m_Version: 4
- m_LightLayerMask: 1
- m_ShadowLayerMask: 1
- m_RenderingLayers: 1
- m_ShadowRenderingLayers: 1
---- !u!1 &2045829908
-GameObject:
- m_ObjectHideFlags: 0
- m_CorrespondingSourceObject: {fileID: 0}
- m_PrefabInstance: {fileID: 0}
- m_PrefabAsset: {fileID: 0}
- serializedVersion: 6
- m_Component:
- - component: {fileID: 2045829909}
- - component: {fileID: 2045829910}
- - component: {fileID: 2045829911}
- m_Layer: 0
- m_Name: CabinLight
- m_TagString: Untagged
- m_Icon: {fileID: 0}
- m_NavMeshLayer: 0
- m_StaticEditorFlags: 0
- m_IsActive: 1
---- !u!4 &2045829909
-Transform:
- m_ObjectHideFlags: 0
- m_CorrespondingSourceObject: {fileID: 0}
- m_PrefabInstance: {fileID: 0}
- m_PrefabAsset: {fileID: 0}
- m_GameObject: {fileID: 2045829908}
- serializedVersion: 2
- m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
- m_LocalPosition: {x: 22, y: 2.5, z: 14}
- m_LocalScale: {x: 1, y: 1, z: 1}
- m_ConstrainProportionsScale: 0
- m_Children: []
- m_Father: {fileID: 1276835916}
- m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
---- !u!108 &2045829910
-Light:
- m_ObjectHideFlags: 0
- m_CorrespondingSourceObject: {fileID: 0}
- m_PrefabInstance: {fileID: 0}
- m_PrefabAsset: {fileID: 0}
- m_GameObject: {fileID: 2045829908}
- m_Enabled: 1
- serializedVersion: 13
- m_Type: 2
- m_Color: {r: 1, g: 0.75, b: 0.45, a: 1}
- m_Intensity: 3
- m_Range: 10
- m_SpotAngle: 30
- m_InnerSpotAngle: 21.80208
- m_CookieSize2D: {x: 0.5, y: 0.5}
- m_Shadows:
- m_Type: 0
- m_Resolution: -1
- m_CustomResolution: -1
- m_Strength: 1
- m_Bias: 0.05
- m_NormalBias: 0.4
- m_NearPlane: 0.2
- m_CullingMatrixOverride:
- e00: 1
- e01: 0
- e02: 0
- e03: 0
- e10: 0
- e11: 1
- e12: 0
- e13: 0
- e20: 0
- e21: 0
- e22: 1
- e23: 0
- e30: 0
- e31: 0
- e32: 0
- e33: 1
- m_UseCullingMatrixOverride: 0
- m_Cookie: {fileID: 0}
- m_DrawHalo: 0
- m_Flare: {fileID: 0}
- m_RenderMode: 0
- m_CullingMask:
- serializedVersion: 2
- m_Bits: 4294967295
- m_RenderingLayerMask: 1
- m_Lightmapping: 4
- m_LightShadowCasterMode: 0
- m_AreaSize: {x: 1, y: 1}
- m_BounceIntensity: 1
- m_ColorTemperature: 6570
- m_UseColorTemperature: 0
- m_BoundingSphereOverride: {x: 0, y: 0, z: 0, w: 0}
- m_UseBoundingSphereOverride: 0
- m_UseViewFrustumForShadowCasterCull: 1
- m_ForceVisible: 0
- m_ShapeRadius: 0.025
- m_ShadowAngle: 0
- m_LightUnit: 1
- m_LuxAtDistance: 1
- m_EnableSpotReflector: 1
---- !u!114 &2045829911
-MonoBehaviour:
- m_ObjectHideFlags: 0
- m_CorrespondingSourceObject: {fileID: 0}
- m_PrefabInstance: {fileID: 0}
- m_PrefabAsset: {fileID: 0}
- m_GameObject: {fileID: 2045829908}
- m_Enabled: 1
- m_EditorHideFlags: 0
- m_Script: {fileID: 11500000, guid: 474bcb49853aa07438625e644c072ee6, type: 3}
- m_Name:
- m_EditorClassIdentifier: Unity.RenderPipelines.Universal.Runtime::UnityEngine.Rendering.Universal.UniversalAdditionalLightData
- m_UsePipelineSettings: 1
- m_AdditionalLightsShadowResolutionTier: 2
- m_CustomShadowLayers: 0
- m_LightCookieSize: {x: 1, y: 1}
- m_LightCookieOffset: {x: 0, y: 0}
- m_SoftShadowQuality: 0
- m_RenderingLayersMask:
- serializedVersion: 0
- m_Bits: 1
- m_ShadowRenderingLayersMask:
- serializedVersion: 0
- m_Bits: 1
- m_Version: 4
- m_LightLayerMask: 1
- m_ShadowLayerMask: 1
- m_RenderingLayers: 1
- m_ShadowRenderingLayers: 1
--- !u!1660057539 &9223372036854775807
SceneRoots:
m_ObjectHideFlags: 0
m_Roots:
- {fileID: 330585546}
- - {fileID: 410087041}
- {fileID: 832575519}
- {fileID: 1314640900}
- {fileID: 228729546}
- {fileID: 1116745582}
- {fileID: 1709609454}
- {fileID: 70737666}
- - {fileID: 1276835916}
- {fileID: 1007206783}
- {fileID: 1643709738}
diff --git a/Assets/_Project/Animation/AC_EnemyTopDown.controller b/Assets/_Project/Animation/AC_EnemyTopDown.controller
index 612f1fe5a..ad149ce1e 100644
--- a/Assets/_Project/Animation/AC_EnemyTopDown.controller
+++ b/Assets/_Project/Animation/AC_EnemyTopDown.controller
@@ -316,7 +316,8 @@ AnimatorState:
m_Name: Death
m_Speed: 1
m_CycleOffset: 0
- m_Transitions: []
+ m_Transitions:
+ - {fileID: 8293450300144498373}
m_StateMachineBehaviours: []
m_Position: {x: 50, y: 50, z: 0}
m_IKOnFeet: 0
@@ -508,6 +509,31 @@ AnimatorState:
m_MirrorParameter:
m_CycleOffsetParameter:
m_TimeParameter:
+--- !u!1101 &8293450300144498373
+AnimatorStateTransition:
+ m_ObjectHideFlags: 1
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_Name:
+ m_Conditions:
+ - m_ConditionMode: 2
+ m_ConditionEvent: IsDead
+ m_EventTreshold: 0
+ m_DstStateMachine: {fileID: 0}
+ m_DstState: {fileID: 8302574255206078140}
+ m_Solo: 0
+ m_Mute: 0
+ m_IsExit: 0
+ serializedVersion: 3
+ m_TransitionDuration: 0.25
+ m_TransitionOffset: 0
+ m_ExitTime: 0.9
+ m_HasExitTime: 0
+ m_HasFixedDuration: 1
+ m_InterruptionSource: 0
+ m_OrderedInterruption: 1
+ m_CanTransitionToSelf: 1
--- !u!1102 &8302574255206078140
AnimatorState:
serializedVersion: 6
diff --git a/Assets/_Project/Animation/AC_PlayerTopDown.controller b/Assets/_Project/Animation/AC_PlayerTopDown.controller
index 6469a0fbb..1245a212e 100644
--- a/Assets/_Project/Animation/AC_PlayerTopDown.controller
+++ b/Assets/_Project/Animation/AC_PlayerTopDown.controller
@@ -317,6 +317,31 @@ AnimatorState:
m_MirrorParameter:
m_CycleOffsetParameter:
m_TimeParameter:
+--- !u!1101 &-3626785697368707688
+AnimatorStateTransition:
+ m_ObjectHideFlags: 1
+ m_CorrespondingSourceObject: {fileID: 0}
+ m_PrefabInstance: {fileID: 0}
+ m_PrefabAsset: {fileID: 0}
+ m_Name:
+ m_Conditions:
+ - m_ConditionMode: 2
+ m_ConditionEvent: IsDead
+ m_EventTreshold: 0
+ m_DstStateMachine: {fileID: 0}
+ m_DstState: {fileID: 8302574255206078140}
+ m_Solo: 0
+ m_Mute: 0
+ m_IsExit: 0
+ serializedVersion: 3
+ m_TransitionDuration: 0.25
+ m_TransitionOffset: 0
+ m_ExitTime: 0.9
+ m_HasExitTime: 0
+ m_HasFixedDuration: 1
+ m_InterruptionSource: 0
+ m_OrderedInterruption: 1
+ m_CanTransitionToSelf: 1
--- !u!206 &-3541598292348706530
BlendTree:
m_ObjectHideFlags: 1
@@ -892,7 +917,8 @@ AnimatorState:
m_Name: Death
m_Speed: 1
m_CycleOffset: 0
- m_Transitions: []
+ m_Transitions:
+ - {fileID: -3626785697368707688}
m_StateMachineBehaviours: []
m_Position: {x: 50, y: 50, z: 0}
m_IKOnFeet: 0
diff --git a/Assets/_Project/Art/Materials/Staging/M_EmissiveGloam_Flora.mat b/Assets/_Project/Art/Materials/Staging/M_EmissiveGloam_Flora.mat
index e3000ceb0..eb10a651f 100644
--- a/Assets/_Project/Art/Materials/Staging/M_EmissiveGloam_Flora.mat
+++ b/Assets/_Project/Art/Materials/Staging/M_EmissiveGloam_Flora.mat
@@ -25,8 +25,8 @@ Material:
m_TexEnvs: []
m_Ints: []
m_Floats:
- - _FlickerAmount: 0.35
- - _FlickerSpeed: 5
+ - _FlickerAmount: 0.6
+ - _FlickerSpeed: 2.6
- _Seed: 0
m_Colors:
- _EmissionColor: {r: 0.28, g: 2.1000001, b: 3.5, a: 3.5}
diff --git a/Assets/_Project/Materials/M_Drowner_EyeGlow.mat b/Assets/_Project/Materials/M_Drowner_EyeGlow.mat
index 8ad86a4fb..599496c46 100644
--- a/Assets/_Project/Materials/M_Drowner_EyeGlow.mat
+++ b/Assets/_Project/Materials/M_Drowner_EyeGlow.mat
@@ -25,9 +25,9 @@ Material:
m_TexEnvs: []
m_Ints: []
m_Floats:
- - _FlickerAmount: 0.4
- - _FlickerSpeed: 5.5
- - _Seed: 0
+ - _FlickerAmount: 0.7
+ - _FlickerSpeed: 3
+ - _Seed: 2.7
m_Colors:
- _EmissionColor: {r: 0.45000002, g: 2.85, b: 1.2, a: 3}
m_BuildTextureStacks: []
diff --git a/Assets/_Project/Scripts/Client/Presentation/AmbientMotionConfig.cs b/Assets/_Project/Scripts/Client/Presentation/AmbientMotionConfig.cs
index 41df7e120..db0516c9b 100644
--- a/Assets/_Project/Scripts/Client/Presentation/AmbientMotionConfig.cs
+++ b/Assets/_Project/Scripts/Client/Presentation/AmbientMotionConfig.cs
@@ -16,15 +16,12 @@ namespace ProjectM.Client
[Header("Master")]
public bool Enabled = true;
- [Header("Biome drift particles (emitter follows the camera; sim space stays world)")]
+ [Header("Ambient drift particles (emitter follows the camera; sim space stays world)")]
+ // 2026-08-07: the four per-biome mote colours + AridWind went with the expedition — LANTERN is one look,
+ // so the colour is fixed cold in AmbientMotionSystem. Only rate and size stay tunable.
public bool DriftEnabled = true;
- [Min(0f)] public float DriftRate = 28f;
- [Min(0.01f)] public float DriftSize = 0.09f;
- public Color MeadowMoteColor = new Color(0.62f, 0.85f, 0.60f, 0.35f);
- public Color AridDustColor = new Color(0.85f, 0.68f, 0.45f, 0.28f);
- public Color CavernMoteColor = new Color(0.55f, 0.65f, 0.95f, 0.33f);
- public Color BlightSporeColor = new Color(0.72f, 0.50f, 0.85f, 0.33f);
- public Vector3 AridWind = new Vector3(2.2f, -0.15f, 0.5f);
+ [Min(0f)] public float DriftRate = 18f;
+ [Min(0.01f)] public float DriftSize = 0.07f;
[Header("Idle foliage sway (root tilt) — OFF by default since 1.5b: ALL Synty flora uses the Synty/Foliage")]
[Header("VERTEX-wind shader, so root tilt double-animates. Keep for A/B; rustle below stays the reactive layer.")]
diff --git a/Assets/_Project/Scripts/Client/Presentation/AmbientMotionSystem.cs b/Assets/_Project/Scripts/Client/Presentation/AmbientMotionSystem.cs
index f2bf661f5..5241975a0 100644
--- a/Assets/_Project/Scripts/Client/Presentation/AmbientMotionSystem.cs
+++ b/Assets/_Project/Scripts/Client/Presentation/AmbientMotionSystem.cs
@@ -147,35 +147,22 @@ namespace ProjectM.Client
emission.enabled = true;
}
- // palette key: base hub vs the replicated per-room biome (WorldAtmosphereSystem's switch shape)
- int key = 0; // 0 = meadow/base
- if (_cam.transform.position.x > 500f)
+ // 2026-08-07 (A0 gate): the per-biome drift — meadow / arid / cavern / blight — went with the
+ // expedition. LANTERN is ONE look, so this collapses to a single cold marine particulate. The old
+ // "meadow" default was painting GREEN motes across the whole seabed (the most off-palette thing in
+ // the shipping frame), and the x>500 region probe pointed at space that now holds zero renderers.
+ if (_biomeKey != 0)
{
- key = 1; // arid default
- // 2026-08-07 audit purge: per-room biome selection keyed off RunInfo.CurrentBiome, which went
- // with the run FSM. The expedition region keeps its single motion set.
- }
- if (key != _biomeKey)
- {
- _biomeKey = key;
+ _biomeKey = 0;
var main = _drift.main;
- main.startSize = cfg != null ? cfg.DriftSize : 0.09f;
- Color c;
- Vector3 wind;
- switch (key)
- {
- case 1: c = cfg != null ? cfg.AridDustColor : new Color(0.85f, 0.68f, 0.45f, 0.28f); wind = cfg != null ? cfg.AridWind : new Vector3(2.2f, -0.15f, 0.5f); break;
- case 2: c = cfg != null ? cfg.CavernMoteColor : new Color(0.55f, 0.65f, 0.95f, 0.33f); wind = new Vector3(0f, 0.18f, 0f); break;
- case 3: c = cfg != null ? cfg.BlightSporeColor : new Color(0.72f, 0.50f, 0.85f, 0.33f); wind = new Vector3(0f, 0.28f, 0f); break;
- default: c = cfg != null ? cfg.MeadowMoteColor : new Color(0.62f, 0.85f, 0.60f, 0.35f); wind = new Vector3(0f, 0.22f, 0f); break;
- }
- main.startColor = c;
+ main.startSize = cfg != null ? cfg.DriftSize : 0.07f;
+ main.startColor = new Color(0.55f, 0.80f, 0.95f, 0.26f); // cold: warm is reserved for OURS
var vel = _drift.velocityOverLifetime;
vel.enabled = true;
vel.space = ParticleSystemSimulationSpace.World;
- vel.x = wind.x; vel.y = wind.y; vel.z = wind.z;
+ vel.x = 0f; vel.y = 0.16f; vel.z = 0f; // detritus rising up the water column
var emission = _drift.emission;
- emission.rateOverTime = cfg != null ? cfg.DriftRate : 28f;
+ emission.rateOverTime = cfg != null ? cfg.DriftRate : 18f;
}
if (!_drift.isPlaying) _drift.Play();
// follow the camera's ground focus so the volume always blankets the view
diff --git a/Assets/_Project/Scripts/Client/Presentation/FeedbackFx.cs b/Assets/_Project/Scripts/Client/Presentation/FeedbackFx.cs
index 64e95b771..bb3e38735 100644
--- a/Assets/_Project/Scripts/Client/Presentation/FeedbackFx.cs
+++ b/Assets/_Project/Scripts/Client/Presentation/FeedbackFx.cs
@@ -33,6 +33,38 @@ namespace ProjectM.Client
return clip;
}
+ static Texture2D s_softDot;
+
+ ///
+ /// Sprites/Default with NO texture renders hard SQUARES — which is what the ambient drift was painting
+ /// across the seabed (found at the 2026-08-07 A0 gate). Build the dot procedurally instead of referencing
+ /// an asset: runtime Resources.Load is stripped from player builds, and asset-free presentation is the
+ /// house rule. Self-healing across fast-enter-playmode — a destroyed texture compares == null and rebuilds.
+ ///
+ public static Texture2D SoftDot()
+ {
+ if (s_softDot != null) return s_softDot;
+ const int N = 32;
+ var t = new Texture2D(N, N, TextureFormat.RGBA32, false)
+ {
+ name = "T_SoftDotProc",
+ wrapMode = TextureWrapMode.Clamp
+ };
+ for (int y = 0; y < N; y++)
+ {
+ for (int x = 0; x < N; x++)
+ {
+ float dx = (x + 0.5f) / N * 2f - 1f;
+ float dy = (y + 0.5f) / N * 2f - 1f;
+ float a = Mathf.Clamp01(1f - Mathf.Sqrt(dx * dx + dy * dy));
+ t.SetPixel(x, y, new Color(1f, 1f, 1f, a * a)); // squared = softer falloff
+ }
+ }
+ t.Apply();
+ s_softDot = t;
+ return t;
+ }
+
public static Material MakeParticleMaterial(string name = "FeedbackParticle")
{
// Sprites/Default is an always-included transparent vertex-coloured shader (reliable billboarded sparks;
@@ -40,7 +72,7 @@ namespace ProjectM.Client
Shader sh = Shader.Find("Sprites/Default");
if (sh == null) sh = Shader.Find("Universal Render Pipeline/Particles/Unlit");
if (sh == null) sh = Shader.Find("Unlit/Color");
- return new Material(sh) { name = name };
+ return new Material(sh) { name = name, mainTexture = SoftDot() };
}
public static ParticleSystem MakeBurst(Transform parent, string name, Material mat, Color color,
diff --git a/Assets/_Project/Scripts/Client/Presentation/StagingAmbiance.cs b/Assets/_Project/Scripts/Client/Presentation/StagingAmbiance.cs
index 66b3fdc1b..05fe242be 100644
--- a/Assets/_Project/Scripts/Client/Presentation/StagingAmbiance.cs
+++ b/Assets/_Project/Scripts/Client/Presentation/StagingAmbiance.cs
@@ -3,8 +3,15 @@ using UnityEngine;
namespace ProjectM.Client
{
///
- /// Dev-only ambiance animator for the ArtStaging scene. Play-mode; modulates LIGHTS only
- /// (no material/asset writes) so nothing persists on Play exit. Self-wires by object name.
+ /// Dev-only ambiance animator for the ArtStaging scene. Play-mode; touches LIGHTS, TRANSFORMS of dev-only
+ /// objects, and particle play-state — never materials or assets — so nothing persists on Play exit.
+ /// Self-wires by object name.
+ ///
+ /// 2026-08-07 (A0 gate, operator: "it looks flat and static"): this component existed but was attached to
+ /// NOTHING, so the staging scene had never actually animated. Its flora wiring also looked for a "FloraLights"
+ /// parent that does not exist in the scene — it now matches lights by name prefix instead. Added the motion a
+ /// static-bake scene cannot get from animation: camera drift, buoyancy bob on the posed heroes, and a current
+ /// on the particulate. The readability law is unchanged: STEADY warm = true light, GUTTERING cold = false.
///
[DisallowMultipleComponent]
public sealed class StagingAmbiance : MonoBehaviour
@@ -12,52 +19,106 @@ namespace ProjectM.Client
[Header("Caustics")]
public float causticsSpinDegPerSec = 4f;
- [Header("Warm beacon flicker")]
- public float beaconFlickerAmount = 0.06f;
+ [Header("Bioluminescent pulse (cold = false light)")]
+ public float floraPulseAmount = 0.35f;
+ public float floraPulseSpeed = 1.1f;
- [Header("Bioluminescent pulse")]
- public float floraPulseAmount = 0.22f;
- public float floraPulseSpeed = 1.4f;
+ [Header("Camera drift — a locked-off camera reads as a screenshot, not a place")]
+ public float camDriftAmplitude = 0.13f;
+ public float camDriftSpeed = 0.17f;
+
+ [Header("Buoyancy — the heroes are static bakes; sell the water instead")]
+ public float bobAmplitude = 0.045f;
+ public float bobSpeed = 0.55f;
+ public float swayDegrees = 0.9f;
Transform _caustics;
- Light _beacon; float _beaconBase;
Light[] _flora; float[] _floraBase;
+ Transform _cam; Vector3 _camBase;
+ Transform[] _heroes; Vector3[] _heroBase; float[] _heroPhase;
void Awake()
{
var c = GameObject.Find("CausticsSpot");
if (c != null) _caustics = c.transform;
- var b = GameObject.Find("WarmPool");
- if (b != null) { _beacon = b.GetComponent(); if (_beacon != null) _beaconBase = _beacon.intensity; }
+ // Match by NAME, not by parent — the scene has no "FloraLights" container (that wiring silently
+ // matched nothing, which is half of why the scene looked static).
+ var flora = new System.Collections.Generic.List();
+ foreach (var l in Object.FindObjectsByType(FindObjectsSortMode.None))
+ if (l.gameObject.name.StartsWith("FloraGlow")) flora.Add(l);
+ _flora = flora.ToArray();
+ _floraBase = new float[_flora.Length];
+ for (int i = 0; i < _flora.Length; i++) _floraBase[i] = _flora[i].intensity;
- var fl = GameObject.Find("FloraLights");
- if (fl != null)
- {
- _flora = fl.GetComponentsInChildren();
- _floraBase = new float[_flora.Length];
- for (int i = 0; i < _flora.Length; i++) _floraBase[i] = _flora[i].intensity;
- }
+ var hero = new System.Collections.Generic.List();
+ foreach (var go in Object.FindObjectsByType(FindObjectsSortMode.None))
+ if (go.parent == null && go.name.StartsWith("Hero_")) hero.Add(go);
+ _heroes = hero.ToArray();
+ _heroBase = new Vector3[_heroes.Length];
+ _heroPhase = new float[_heroes.Length];
+ for (int i = 0; i < _heroes.Length; i++) { _heroBase[i] = _heroes[i].position; _heroPhase[i] = i * 2.1f; }
+
+ // Particulate: only start LOOPING ambient emitters. "Bubbles" under ~CombatFeedbackFX is the combat
+ // one-shot pool (loop=false, duration 5) — force-playing it just fired the burst once and left it
+ // stopped, which read as "the scene is static". Never drive the feedback pool from here.
+ foreach (var ps in Object.FindObjectsByType(FindObjectsSortMode.None))
+ if (ps.main.loop && !ps.isPlaying) ps.Play();
}
-void Update()
+ void OnEnable() => CacheCamera();
+
+ void CacheCamera()
+ {
+ var cam = Camera.main != null ? Camera.main : Object.FindFirstObjectByType();
+ if (cam == null) return;
+ if (_cam != cam.transform) { _cam = cam.transform; _camBase = _cam.position; }
+ }
+
+ void LateUpdate()
{
float t = Time.time;
- // caustics slowly drift across the seabed
if (_caustics != null)
_caustics.Rotate(0f, causticsSpinDegPerSec * Time.deltaTime, 0f, Space.World);
- // readability law: STEADY = true light. The warm beacon is left unmodulated (steady) on purpose.
- // FLICKER = false/counterfeit light -> the cold gloam pools gutter with organic Perlin flicker,
- // so "ours vs the deep's" reads through cadence even with hue/value removed.
+ // Readability law: STEADY = true light, so the warm beacon is deliberately NOT modulated here.
+ // The cold gloam pools gutter on organic Perlin noise — "ours vs the deep's" reads through cadence
+ // even with hue and value removed.
if (_flora != null)
for (int i = 0; i < _flora.Length; i++)
{
float phase = i * 3.1f;
- float flick = 0.55f + 0.45f * Mathf.PerlinNoise(t * floraPulseSpeed * 1.8f + phase, phase * 0.7f);
+ float n = Mathf.PerlinNoise(t * floraPulseSpeed * 1.8f + phase, phase * 0.7f);
+ float flick = (1f - floraPulseAmount) + floraPulseAmount * 2f * n;
_flora[i].intensity = _floraBase[i] * flick;
}
+
+ // A locked-off camera in a still scene reads as a screenshot. A slow lissajous drift (centimetres,
+ // not metres) is enough to make the murk feel like water you are suspended in.
+ CacheCamera();
+ if (_cam != null)
+ {
+ float a = camDriftAmplitude;
+ _cam.position = _camBase + new Vector3(
+ Mathf.Sin(t * camDriftSpeed) * a,
+ Mathf.Sin(t * camDriftSpeed * 1.37f + 1.1f) * a * 0.6f,
+ Mathf.Cos(t * camDriftSpeed * 0.83f) * a);
+ }
+
+ // The heroes are posed static bakes with no rig bound, so they cannot idle. A buoyancy bob + micro-sway
+ // costs nothing and sells "suspended in water" — which is what the frame is actually claiming.
+ if (_heroes != null)
+ for (int i = 0; i < _heroes.Length; i++)
+ {
+ if (_heroes[i] == null) continue;
+ float p = t * bobSpeed + _heroPhase[i];
+ _heroes[i].position = _heroBase[i] + new Vector3(0f, Mathf.Sin(p) * bobAmplitude, 0f);
+ _heroes[i].rotation = Quaternion.Euler(
+ Mathf.Sin(p * 0.7f) * swayDegrees * 0.5f,
+ _heroes[i].rotation.eulerAngles.y,
+ Mathf.Cos(p * 0.9f) * swayDegrees);
+ }
}
}
}