Art: seabed relief kit — 5 modular pieces, built in Blender and baked into Game.unity
Track 2 of the A0 readability work. The operator wanted non-flat ground; the
walkable surface must stay flat, because the character controller is configured
for a plane (SnapToGround=false, gravity float3.zero) and enemies have no
pathfinding. Real elevation is a locomotion + navigation task, not an art one.
The kit therefore avoids the height band that breaks entirely:
SM_Seabed_Hollow_A 442 tris below plane no collider
SM_Seabed_Dunes_A 442 tris +/-0.4 crests no collider
SM_Seabed_Ridge_A 55 tris ~1.2 m rim placement
SM_Seabed_Outcrop_A 120 tris ~1.4 m rim placement
SM_Seabed_Shelf_A 96 tris ~1.4 m rim placement
1155 tris total, all far under the <=800/prop budget, faceted, one material.
Nothing sits at 0.3-0.6 m, which is the range that either clips the diver's legs
(no collider) or becomes a wall you cannot see over (collider). The three tall
pieces sit at the arena RIM outside the 16u wave ring, where the boundary
already blocks the player - so they read as silhouette with no subscene collider
work and zero nav risk.
Two art lessons, both corrected mid-build:
- First pass encoded relief as ALBEDO BANDING from the palette atlas. At
top-down, flat colour bands read as a printed pattern, not form: the hollow
looked like a bullseye and the ripple sheet like woven basketwork. The style
bible is explicit that the read is shape + light. Uniform albedo + real
geometry + faceted normals doing the shading.
- Cutting an organic outline by dropping whole quads gives stair-stepped
edges. Rebuilt in POLAR coordinates so the boundary follows R(theta) exactly.
In-engine: the palette grey read ~2x brighter than the seabed floor, so the
pieces looked like slabs laid on top. Ground pieces now share the floor's own
M_Staging_Seabed; rock pieces use a darker sibling M_Seabed_Rock (0.13,0.19,0.23)
so they read as the same ground family, a shade separated.
Exported per-piece so the Phase-2 pocket generator can place them individually
rather than inheriting a bespoke landscape.
304/304 EditMode green.
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -0,0 +1,137 @@
|
||||
%YAML 1.1
|
||||
%TAG !u! tag:unity3d.com,2011:
|
||||
--- !u!21 &2100000
|
||||
Material:
|
||||
serializedVersion: 8
|
||||
m_ObjectHideFlags: 0
|
||||
m_CorrespondingSourceObject: {fileID: 0}
|
||||
m_PrefabInstance: {fileID: 0}
|
||||
m_PrefabAsset: {fileID: 0}
|
||||
m_Name: M_Seabed_Rock
|
||||
m_Shader: {fileID: 4800000, guid: 933532a4fcc9baf4fa0491de14d08ed7, type: 3}
|
||||
m_Parent: {fileID: 0}
|
||||
m_ModifiedSerializedProperties: 0
|
||||
m_ValidKeywords: []
|
||||
m_InvalidKeywords: []
|
||||
m_LightmapFlags: 4
|
||||
m_EnableInstancingVariants: 0
|
||||
m_DoubleSidedGI: 0
|
||||
m_CustomRenderQueue: -1
|
||||
stringTagMap:
|
||||
RenderType: Opaque
|
||||
disabledShaderPasses:
|
||||
- MOTIONVECTORS
|
||||
m_LockedProperties:
|
||||
m_SavedProperties:
|
||||
serializedVersion: 3
|
||||
m_TexEnvs:
|
||||
- _BaseMap:
|
||||
m_Texture: {fileID: 0}
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
- _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}
|
||||
- _SpecGlossMap:
|
||||
m_Texture: {fileID: 0}
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
- unity_Lightmaps:
|
||||
m_Texture: {fileID: 0}
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
- unity_LightmapsInd:
|
||||
m_Texture: {fileID: 0}
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
- unity_ShadowMasks:
|
||||
m_Texture: {fileID: 0}
|
||||
m_Scale: {x: 1, y: 1}
|
||||
m_Offset: {x: 0, y: 0}
|
||||
m_Ints: []
|
||||
m_Floats:
|
||||
- _AddPrecomputedVelocity: 0
|
||||
- _AlphaClip: 0
|
||||
- _AlphaToMask: 0
|
||||
- _Blend: 0
|
||||
- _BlendModePreserveSpecular: 1
|
||||
- _BumpScale: 1
|
||||
- _ClearCoatMask: 0
|
||||
- _ClearCoatSmoothness: 0
|
||||
- _Cull: 2
|
||||
- _Cutoff: 0.5
|
||||
- _DetailAlbedoMapScale: 1
|
||||
- _DetailNormalMapScale: 1
|
||||
- _DstBlend: 0
|
||||
- _DstBlendAlpha: 0
|
||||
- _EnvironmentReflections: 1
|
||||
- _GlossMapScale: 0
|
||||
- _Glossiness: 0
|
||||
- _GlossyReflections: 0
|
||||
- _Metallic: 0
|
||||
- _OcclusionStrength: 1
|
||||
- _Parallax: 0.005
|
||||
- _QueueOffset: 0
|
||||
- _ReceiveShadows: 1
|
||||
- _Smoothness: 0.1
|
||||
- _SmoothnessTextureChannel: 0
|
||||
- _SpecularHighlights: 1
|
||||
- _SrcBlend: 1
|
||||
- _SrcBlendAlpha: 1
|
||||
- _Surface: 0
|
||||
- _WorkflowMode: 1
|
||||
- _XRMotionVectorsPass: 1
|
||||
- _ZWrite: 1
|
||||
m_Colors:
|
||||
- _BaseColor: {r: 0.13, g: 0.19, b: 0.23, a: 1}
|
||||
- _Color: {r: 0.12999997, g: 0.18999997, b: 0.22999996, a: 1}
|
||||
- _EmissionColor: {r: 0, g: 0, b: 0, a: 1}
|
||||
- _SpecColor: {r: 0.19999996, g: 0.19999996, b: 0.19999996, a: 1}
|
||||
m_BuildTextureStacks: []
|
||||
m_AllowLocking: 1
|
||||
--- !u!114 &3589914677059072833
|
||||
MonoBehaviour:
|
||||
m_ObjectHideFlags: 11
|
||||
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: d0353a89b1f911e48b9e16bdc9f2e058, type: 3}
|
||||
m_Name:
|
||||
m_EditorClassIdentifier: Unity.RenderPipelines.Universal.Editor::UnityEditor.Rendering.Universal.AssetVersion
|
||||
version: 10
|
||||
@@ -0,0 +1,8 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 5bcf0d07f35ebcc46809bf9e476a911e
|
||||
NativeFormatImporter:
|
||||
externalObjects: {}
|
||||
mainObjectFileID: 2100000
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
Binary file not shown.
@@ -0,0 +1,28 @@
|
||||
fileFormatVersion: 2
|
||||
guid: c8cd92b5c9f845842aa555df3e059ec7
|
||||
ScriptedImporter:
|
||||
internalIDToNameTable: []
|
||||
externalObjects: {}
|
||||
serializedVersion: 2
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
script: {fileID: 11500000, guid: 715df9372183c47e389bb6e19fbc3b52, type: 3}
|
||||
editorImportSettings:
|
||||
generateSecondaryUVSet: 0
|
||||
importSettings:
|
||||
nodeNameMethod: 1
|
||||
animationMethod: 2
|
||||
generateMipMaps: 1
|
||||
texturesReadable: 0
|
||||
defaultMinFilterMode: 9729
|
||||
defaultMagFilterMode: 9729
|
||||
anisotropicFilterLevel: 1
|
||||
instantiationSettings:
|
||||
mask: -1
|
||||
layer: 0
|
||||
skinUpdateWhenOffscreen: 1
|
||||
lightIntensityFactor: 1
|
||||
sceneObjectCreation: 2
|
||||
assetDependencies: []
|
||||
reportItems: []
|
||||
Binary file not shown.
@@ -0,0 +1,28 @@
|
||||
fileFormatVersion: 2
|
||||
guid: f4059d729ce764b42aa4b1ea55f65b44
|
||||
ScriptedImporter:
|
||||
internalIDToNameTable: []
|
||||
externalObjects: {}
|
||||
serializedVersion: 2
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
script: {fileID: 11500000, guid: 715df9372183c47e389bb6e19fbc3b52, type: 3}
|
||||
editorImportSettings:
|
||||
generateSecondaryUVSet: 0
|
||||
importSettings:
|
||||
nodeNameMethod: 1
|
||||
animationMethod: 2
|
||||
generateMipMaps: 1
|
||||
texturesReadable: 0
|
||||
defaultMinFilterMode: 9729
|
||||
defaultMagFilterMode: 9729
|
||||
anisotropicFilterLevel: 1
|
||||
instantiationSettings:
|
||||
mask: -1
|
||||
layer: 0
|
||||
skinUpdateWhenOffscreen: 1
|
||||
lightIntensityFactor: 1
|
||||
sceneObjectCreation: 2
|
||||
assetDependencies: []
|
||||
reportItems: []
|
||||
Binary file not shown.
@@ -0,0 +1,28 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 331585837f6110f44a39cab480c52113
|
||||
ScriptedImporter:
|
||||
internalIDToNameTable: []
|
||||
externalObjects: {}
|
||||
serializedVersion: 2
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
script: {fileID: 11500000, guid: 715df9372183c47e389bb6e19fbc3b52, type: 3}
|
||||
editorImportSettings:
|
||||
generateSecondaryUVSet: 0
|
||||
importSettings:
|
||||
nodeNameMethod: 1
|
||||
animationMethod: 2
|
||||
generateMipMaps: 1
|
||||
texturesReadable: 0
|
||||
defaultMinFilterMode: 9729
|
||||
defaultMagFilterMode: 9729
|
||||
anisotropicFilterLevel: 1
|
||||
instantiationSettings:
|
||||
mask: -1
|
||||
layer: 0
|
||||
skinUpdateWhenOffscreen: 1
|
||||
lightIntensityFactor: 1
|
||||
sceneObjectCreation: 2
|
||||
assetDependencies: []
|
||||
reportItems: []
|
||||
Binary file not shown.
@@ -0,0 +1,28 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 999ccca481cf3184c84e499166e25fbf
|
||||
ScriptedImporter:
|
||||
internalIDToNameTable: []
|
||||
externalObjects: {}
|
||||
serializedVersion: 2
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
script: {fileID: 11500000, guid: 715df9372183c47e389bb6e19fbc3b52, type: 3}
|
||||
editorImportSettings:
|
||||
generateSecondaryUVSet: 0
|
||||
importSettings:
|
||||
nodeNameMethod: 1
|
||||
animationMethod: 2
|
||||
generateMipMaps: 1
|
||||
texturesReadable: 0
|
||||
defaultMinFilterMode: 9729
|
||||
defaultMagFilterMode: 9729
|
||||
anisotropicFilterLevel: 1
|
||||
instantiationSettings:
|
||||
mask: -1
|
||||
layer: 0
|
||||
skinUpdateWhenOffscreen: 1
|
||||
lightIntensityFactor: 1
|
||||
sceneObjectCreation: 2
|
||||
assetDependencies: []
|
||||
reportItems: []
|
||||
Binary file not shown.
@@ -0,0 +1,28 @@
|
||||
fileFormatVersion: 2
|
||||
guid: b20fc34cefdb8824d8cdc33d37eec4ca
|
||||
ScriptedImporter:
|
||||
internalIDToNameTable: []
|
||||
externalObjects: {}
|
||||
serializedVersion: 2
|
||||
userData:
|
||||
assetBundleName:
|
||||
assetBundleVariant:
|
||||
script: {fileID: 11500000, guid: 715df9372183c47e389bb6e19fbc3b52, type: 3}
|
||||
editorImportSettings:
|
||||
generateSecondaryUVSet: 0
|
||||
importSettings:
|
||||
nodeNameMethod: 1
|
||||
animationMethod: 2
|
||||
generateMipMaps: 1
|
||||
texturesReadable: 0
|
||||
defaultMinFilterMode: 9729
|
||||
defaultMagFilterMode: 9729
|
||||
anisotropicFilterLevel: 1
|
||||
instantiationSettings:
|
||||
mask: -1
|
||||
layer: 0
|
||||
skinUpdateWhenOffscreen: 1
|
||||
lightIntensityFactor: 1
|
||||
sceneObjectCreation: 2
|
||||
assetDependencies: []
|
||||
reportItems: []
|
||||
Reference in New Issue
Block a user