docs(placement): the pavement is at 158 cm, not 380 - and my attempt to use it broke the floor
Measured in the source geometry (Art/blender/site/site-2026-11-06.blend, metres): at the player's street section the north sidewalk tops out at 1.58 m and the road at 1.45 m. The 380 cm that has driven every placement decision came from the UE mesh's bounding box, which spans 279 m of sloping street and takes the highest point anywhere - 2.2 m above the surface where the player stands. That is the float, quantified at last. Moving the invisible collision slab to a 158 cm top did not work: with an 8 cm slab the player fell to Z -4410, and with a 50 cm slab it fell to the same place, so the slab was not colliding at all after the change. I could not identify why within this pass, so the change is reverted and the 380 stopgap restored - verified again by trace (mesh=Cube at Z 380, actor Z 470). Recorded in TODO.md with the two numbers and the next step: find why the slab stops colliding when it moves down, then set it to 158 and the player start to 247.
This commit is contained in:
1 parent
ca7e410663
commit
76859b64cf
22 files changed
+40
-40
No files matched your search
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
+18
-18
@@ -13,29 +13,29 @@ Both capture passes are produced by [`Tools/render_screenshots.sh`](../Tools/ren
|
||||
|
||||
| # | Part | Item | Status | Note |
|
||||
| --- | --- | --- | --- | --- |
|
||||
| 1 | ReviewMap | [character feet](review/review-character-feet.png) | ☐ pending | |
|
||||
| 2 | ReviewMap | [character](review/review-character.png) | ☐ pending | |
|
||||
| 3 | ReviewMap | [ground contact](review/review-ground-contact.png) | ☐ pending | |
|
||||
| 4 | ReviewMap | [hero facade front](review/review-hero-facade-front.png) | ☐ pending | |
|
||||
| 5 | ReviewMap | [hero facade oblique](review/review-hero-facade-oblique.png) | ☐ pending | |
|
||||
| 6 | ReviewMap | [hero portals](review/review-hero-portals.png) | ☐ pending | |
|
||||
| 7 | ReviewMap | [npc prefab](review/review-npc-prefab.png) | ☐ pending | |
|
||||
| 8 | ReviewMap | [overview](review/review-overview.png) | ☐ pending | |
|
||||
| 9 | ReviewMap | [player placement](review/review-player-placement.png) | ☐ pending | |
|
||||
| 10 | ReviewMap | [scale cubes](review/review-scale-cubes.png) | ☐ pending | |
|
||||
| 11 | ReviewMap | [shadow compare](review/review-shadow-compare.png) | ☐ pending | |
|
||||
| 12 | ReviewMap | [vehicle](review/review-vehicle.png) | ☐ pending | |
|
||||
| 13 | DemoMap | [crossing](demo/review-demo-crossing.png) | ☐ pending | |
|
||||
| 14 | DemoMap | [feet](demo/review-demo-feet.png) | ☐ pending | character and car float | |
|
||||
| 15 | DemoMap | [north buildings](demo/review-demo-north-buildings.png) | ☐ pending | |
|
||||
| 16 | DemoMap | [retail frontage](demo/review-demo-retail-frontage.png) | ☐ pending | |
|
||||
| 1 | ReviewMap | [character feet](review/review-character-feet.png) | ☐ pending | |
|
||||
| 2 | ReviewMap | [character](review/review-character.png) | ☐ pending | |
|
||||
| 3 | ReviewMap | [ground contact](review/review-ground-contact.png) | ☐ pending | |
|
||||
| 4 | ReviewMap | [hero facade front](review/review-hero-facade-front.png) | ☐ pending | |
|
||||
| 5 | ReviewMap | [hero facade oblique](review/review-hero-facade-oblique.png) | ☐ pending | |
|
||||
| 6 | ReviewMap | [hero portals](review/review-hero-portals.png) | ☐ pending | |
|
||||
| 7 | ReviewMap | [npc prefab](review/review-npc-prefab.png) | ☐ pending | |
|
||||
| 8 | ReviewMap | [overview](review/review-overview.png) | ☐ pending | |
|
||||
| 9 | ReviewMap | [player placement](review/review-player-placement.png) | ☐ pending | |
|
||||
| 10 | ReviewMap | [scale cubes](review/review-scale-cubes.png) | ☐ pending | |
|
||||
| 11 | ReviewMap | [shadow compare](review/review-shadow-compare.png) | ☐ pending | |
|
||||
| 12 | ReviewMap | [vehicle](review/review-vehicle.png) | ☐ pending | |
|
||||
| 13 | DemoMap | [crossing](demo/review-demo-crossing.png) | ☐ pending | |
|
||||
| 14 | DemoMap | [feet](demo/review-demo-feet.png) | ☐ pending | character and car float | |
|
||||
| 15 | DemoMap | [north buildings](demo/review-demo-north-buildings.png) | ☐ pending | |
|
||||
| 16 | DemoMap | [retail frontage](demo/review-demo-retail-frontage.png) | ☐ pending | |
|
||||
| 17 | DemoMap | [spawn view](demo/review-demo-spawn-view.png) | ☐ pending | character and car float |
|
||||
| 18 | DemoMap | [street level](demo/review-demo-street-level.png) | ☐ pending | character and car float |
|
||||
| 19 | DemoMap | [third person front](demo/review-demo-third-person-front.png) | ☐ pending | character and car float |
|
||||
| 20 | DemoMap | [third person walk](demo/review-demo-third-person-walk.png) | ☐ pending | character and car float |
|
||||
| 21 | DemoMap | [third person](demo/review-demo-third-person.png) | ☐ pending | character and car float |
|
||||
| 22 | DemoMap | [vehicle](demo/review-demo-vehicle.png) | ☐ pending | |
|
||||
| 23 | DemoMap | [wheel](demo/review-demo-wheel.png) | ☐ pending | car floats | |
|
||||
| 22 | DemoMap | [vehicle](demo/review-demo-vehicle.png) | ☐ pending | |
|
||||
| 23 | DemoMap | [wheel](demo/review-demo-wheel.png) | ☐ pending | car floats | |
|
||||
|
||||
**Status:** ☐ pending · ☑ approved · ☒ rejected. "ReviewMap" rows are asset staging; "DemoMap" rows are the game map.
|
||||
|
||||
|
||||
@@ -26,7 +26,7 @@ Actionable task list for this project. This file is the single, central place fo
|
||||
- [x] Fix the character and car floating. **The measurement was taken at the wrong moment.** The foot probe ran in `BeginPlay`, while the pawn is still at its spawn height and falling, so every trace reported a surface far below it (`ground 366` against an actor at 561) and read as a float that was not there. The probe now runs **three seconds after spawn**, from the capsule's feet, on three channels, and names the actor it hits. Character: the player start at Z 600 left the soles 39 cm in the air (the capsule settles at 561 on this pavement); the start is now the measured 561. Car: the template's lowest geometry is exhaust, so grounding on the whole model put the tyres 4 cm above the origin - it is now grounded on its wheels, staged at Z 342 after the traced road height (366) disagreed with the visible road by ~25 cm.
|
||||
- [x] Fix the vehicle's material colour. The template's `car paint` is a legacy mix-shader graph that the FBX exporter cannot map, so `SM_Vehicle_Body` imported holding `WorldGridMaterial` and rendered black while Blender showed red. Legacy graphs are now converted to Principled before export (saturated colour wins over the grey diffuse next to it), and the staged body panel is assigned `M_Vehicle_HatchPaint`. Judge: `verdict=yes confidence=0.9`.
|
||||
- [x] Fix the missing vehicle glazing. The `windows` material was metallic 1.0 with roughness 0.0 - a black void that read as an empty cabin. Now tinted translucent (opacity 0.85, roughness 0.08); opacity 0.45 was tried first and made the glass invisible. The vision judge still returns `verdict=no` for the frame, disagreeing with what is visibly tinted glass; it is advisory, and the human verdict decides.
|
||||
- [A] Put the player on the sidewalk, not the road. The judge now flags the character and car as floating in the spawn view, and its criterion is in the expectation ("a shadow more than a hand's width below an object means the object is floating"). Two readings are possible and both fit the pixels: the object really floats, or it stands on the raised pavement and the sun throws its shadow past the kerb onto the road. `Tools/shadow_gap.py` now does the measurement: object vs shadow in pixels, as a fraction of the object's height. It works on synthetic frames (tests pass) but returns `unknown` on the real spawn view, because the crop contains two surfaces - the pale wall behind and the dark road below - and a single global background cannot classify both. Next: per-region backgrounds, or crop tightly around the feet and their shadow only.
|
||||
- [A] Put the player on the sidewalk at its real height. The judge now flags the character and car as floating in the spawn view, and its criterion is in the expectation ("a shadow more than a hand's width below an object means the object is floating"). Two readings are possible and both fit the pixels: the object really floats, or it stands on the raised pavement and the sun throws its shadow past the kerb onto the road. `Tools/shadow_gap.py` now does the measurement: object vs shadow in pixels, as a fraction of the object's height. It works on synthetic frames (tests pass) but returns `unknown` on the real spawn view, because the crop contains two surfaces - the pale wall behind and the dark road below - and a single global background cannot classify both. Next: per-region backgrounds, or crop tightly around the feet and their shadow only.
|
||||
|
||||
**Root cause found: the player stands on the road.** Three spawn heights (455, 395, 469) produced **identical** captures, and the in-game probe names the surface every time:
|
||||
|
||||
|
||||
Reference in new issue
Block a user