NEON-29: Distinct colors for terraces and floor slab
TerracePlatformA teal, TerraceStepB gold, TerracePlatformB violet, TerracePlatformC green; explicit neutral floor material. README props table adds tint column and material ids for communication.pull/41/head
parent
81ceeaab27
commit
b4c0defc29
|
|
@ -21,20 +21,22 @@ The default play space is a **45 × 45** unit flat floor (~2 000 sq units, ~5×
|
|||
|
||||
### Props at a glance
|
||||
|
||||
| Node | Group | Size (m) | World XZ | Purpose |
|
||||
|------|-------|----------|----------|---------|
|
||||
| `Floor` | `walkable` | 45 × 45 | (0, 0) | Main play surface |
|
||||
| `PrototypeTerminal` | `walkable` | 0.9 × 0.4 | (0, 0) | Interaction target |
|
||||
| `MoveRejectPedestal` | `walkable` | 1.5 × 1.5 | (7.5, −6.5) | NEON-7 vertical reject |
|
||||
| `MoveRejectFarPad` | `walkable` | 2.5 × 2.5 | (9, 9) | Near-floor walkable pad; no longer a reject target (horizontal limit removed NEON-29) |
|
||||
| `Obstacle` | `occluder` | 2 × 2 | (6, 5) | Original occlusion / click-through target |
|
||||
| `ObstacleB` | `occluder` | 3 × 3 | (−10, 5) | Second occluder (wider angle from spawn) |
|
||||
| `ObstacleC` | `occluder` | 2 × 4 | (5, −12) | Tall occluder, south quadrant |
|
||||
| `ObstacleD` | `occluder` | 3 × 2 | (−8, −16) | Far-south occluder |
|
||||
| `TerracePlatformA` | `walkable` | 10 × 10, h=0.3 m | (13, −14) | Low raised pad, SE; single-step ascent from floor |
|
||||
| `TerraceStepB` | `walkable` | 6 × 3, h=0.3 m | (−15, 8.5) | Approach step for Platform B; bridges floor → platform |
|
||||
| `TerracePlatformB` | `walkable` | 6 × 6, h=0.6 m | (−15, 13) | Two-level terrace, NW; reached via TerraceStepB |
|
||||
| `TerracePlatformC` | `walkable` | 8 × 8, h=0.3 m | (14, 14) | Low broad pad, NE; single-step ascent from floor |
|
||||
Elevated walkables use **distinct albedo tints** in `scenes/main.tscn` so screenshots and discussion can name the right prop (`Mat_terrace_platform_a`, `Mat_terrace_b_step`, etc.). The main **floor** slab uses neutral gray (`Mat_floor_slab`). **Occluders** keep the default mesh gray.
|
||||
|
||||
| Node | Group | Tint | Size (m) | World XZ | Purpose |
|
||||
|------|-------|------|----------|----------|---------|
|
||||
| `Floor` | `walkable` | Neutral gray | 45 × 45 | (0, 0) | Main play surface |
|
||||
| `PrototypeTerminal` | `walkable` | Slate blue | 0.9 × 0.4 | (0, 0) | Interaction target |
|
||||
| `MoveRejectPedestal` | `walkable` | Orange | 1.5 × 1.5 | (7.5, −6.5) | NEON-7 vertical reject |
|
||||
| `MoveRejectFarPad` | `walkable` | Blue-gray | 2.5 × 2.5 | (9, 9) | Near-floor walkable pad; no longer a reject target (horizontal limit removed NEON-29) |
|
||||
| `Obstacle` | `occluder` | Default gray | 2 × 2 | (6, 5) | Original occlusion / click-through target |
|
||||
| `ObstacleB` | `occluder` | Default gray | 3 × 3 | (−10, 5) | Second occluder (wider angle from spawn) |
|
||||
| `ObstacleC` | `occluder` | Default gray | 2 × 4 | (5, −12) | Tall occluder, south quadrant |
|
||||
| `ObstacleD` | `occluder` | Default gray | 3 × 2 | (−8, −16) | Far-south occluder |
|
||||
| `TerracePlatformA` | `walkable` | **Teal** | 10 × 10, h=0.3 m | (13, −14) | Large SE pad; single-step ascent from floor |
|
||||
| `TerraceStepB` | `walkable` | **Gold** | 6 × 3, h=0.3 m | (−15, 8.5) | NW approach step; bridges floor → TerracePlatformB |
|
||||
| `TerracePlatformB` | `walkable` | **Violet** | 6 × 6, h=0.6 m | (−15, 13) | Upper NW terrace; reached via TerraceStepB |
|
||||
| `TerracePlatformC` | `walkable` | **Green** | 8 × 8, h=0.3 m | (14, 14) | NE pad; single-step ascent from floor |
|
||||
|
||||
### Height variation notes
|
||||
|
||||
|
|
|
|||
|
|
@ -21,6 +21,9 @@ agent_height = 1.0
|
|||
agent_radius = 0.4
|
||||
agent_max_climb = 0.35
|
||||
|
||||
[sub_resource type="StandardMaterial3D" id="Mat_floor_slab"]
|
||||
albedo_color = Color(0.5, 0.5, 0.52, 1)
|
||||
|
||||
[sub_resource type="BoxMesh" id="BoxMesh_floor"]
|
||||
size = Vector3(45, 0.2, 45)
|
||||
|
||||
|
|
@ -96,8 +99,17 @@ size = Vector3(3, 2, 3)
|
|||
[sub_resource type="BoxShape3D" id="BoxShape3D_obstacle_d"]
|
||||
size = Vector3(3, 2, 3)
|
||||
|
||||
[sub_resource type="StandardMaterial3D" id="Mat_terrace"]
|
||||
albedo_color = Color(0.55, 0.52, 0.48, 1)
|
||||
[sub_resource type="StandardMaterial3D" id="Mat_terrace_platform_a"]
|
||||
albedo_color = Color(0.15, 0.62, 0.58, 1)
|
||||
|
||||
[sub_resource type="StandardMaterial3D" id="Mat_terrace_b_step"]
|
||||
albedo_color = Color(0.96, 0.72, 0.15, 1)
|
||||
|
||||
[sub_resource type="StandardMaterial3D" id="Mat_terrace_platform_b"]
|
||||
albedo_color = Color(0.58, 0.32, 0.72, 1)
|
||||
|
||||
[sub_resource type="StandardMaterial3D" id="Mat_terrace_platform_c"]
|
||||
albedo_color = Color(0.22, 0.68, 0.38, 1)
|
||||
|
||||
[sub_resource type="BoxMesh" id="BoxMesh_terrace_a"]
|
||||
size = Vector3(10, 0.3, 10)
|
||||
|
|
@ -152,6 +164,7 @@ collision_mask = 3
|
|||
[node name="MeshInstance3D" type="MeshInstance3D" parent="World/NavigationRegion3D/Floor" unique_id=152652175]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, -0.1, 0)
|
||||
mesh = SubResource("BoxMesh_floor")
|
||||
surface_material_override/0 = SubResource("Mat_floor_slab")
|
||||
|
||||
[node name="CollisionShape3D" type="CollisionShape3D" parent="World/NavigationRegion3D/Floor" unique_id=409532142]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, -0.1, 0)
|
||||
|
|
@ -247,7 +260,7 @@ transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 13, 0, -14)
|
|||
[node name="MeshInstance3D" type="MeshInstance3D" parent="World/NavigationRegion3D/TerracePlatformA" unique_id=3000011]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0.15, 0)
|
||||
mesh = SubResource("BoxMesh_terrace_a")
|
||||
surface_material_override/0 = SubResource("Mat_terrace")
|
||||
surface_material_override/0 = SubResource("Mat_terrace_platform_a")
|
||||
|
||||
[node name="CollisionShape3D" type="CollisionShape3D" parent="World/NavigationRegion3D/TerracePlatformA" unique_id=3000012]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0.15, 0)
|
||||
|
|
@ -260,7 +273,7 @@ transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -15, 0, 8.5)
|
|||
[node name="MeshInstance3D" type="MeshInstance3D" parent="World/NavigationRegion3D/TerraceStepB" unique_id=3000014]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0.15, 0)
|
||||
mesh = SubResource("BoxMesh_terrace_b_step")
|
||||
surface_material_override/0 = SubResource("Mat_terrace")
|
||||
surface_material_override/0 = SubResource("Mat_terrace_b_step")
|
||||
|
||||
[node name="CollisionShape3D" type="CollisionShape3D" parent="World/NavigationRegion3D/TerraceStepB" unique_id=3000015]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0.15, 0)
|
||||
|
|
@ -273,7 +286,7 @@ transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, -15, 0, 13)
|
|||
[node name="MeshInstance3D" type="MeshInstance3D" parent="World/NavigationRegion3D/TerracePlatformB" unique_id=3000017]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0.3, 0)
|
||||
mesh = SubResource("BoxMesh_terrace_b_platform")
|
||||
surface_material_override/0 = SubResource("Mat_terrace")
|
||||
surface_material_override/0 = SubResource("Mat_terrace_platform_b")
|
||||
|
||||
[node name="CollisionShape3D" type="CollisionShape3D" parent="World/NavigationRegion3D/TerracePlatformB" unique_id=3000018]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0.3, 0)
|
||||
|
|
@ -286,7 +299,7 @@ transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 14, 0, 14)
|
|||
[node name="MeshInstance3D" type="MeshInstance3D" parent="World/NavigationRegion3D/TerracePlatformC" unique_id=3000020]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0.15, 0)
|
||||
mesh = SubResource("BoxMesh_terrace_c")
|
||||
surface_material_override/0 = SubResource("Mat_terrace")
|
||||
surface_material_override/0 = SubResource("Mat_terrace_platform_c")
|
||||
|
||||
[node name="CollisionShape3D" type="CollisionShape3D" parent="World/NavigationRegion3D/TerracePlatformC" unique_id=3000021]
|
||||
transform = Transform3D(1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0.15, 0)
|
||||
|
|
|
|||
Loading…
Reference in New Issue