docs(review): split into ReviewMap and DemoMap, with one status table

The review file now separates the two questions it was mixing:

  ReviewMap - assets staged on their own: individual objects, the Blender import, camera angles
  and the lighting comparison. Nothing from the game map is involved.
  DemoMap   - the actual game map in development: street, buildings, player, vehicle in place.

One status table at the top covers both parts, with a Part column, and remains the only place
approval and issue notes are recorded. Between them sits the Blender-vs-UE comparison, which now
pairs ReviewMap captures as well as DemoMap ones, followed by the ReviewMap image grid and the
existing in-game shot sections.

Tools/ue_build_review_map.py also stages the LATEST vehicle assets (five systems plus the hatch
paint) and two new cameras - a three-quarter view of the car and a ground-level look at the
character's feet - so the staging map never drifts from what the Blender tools last produced.
Tools/render_screenshots.sh gained a second capture pass that renders ReviewMap into
Screenshots/review/, after the demo collection because that pass clears the engine's screenshot
folder.
This commit is contained in:
zwitschi committed 2026-11-09 17:34:12 +01:00
1 parent a983dfdcdf
commit 72d5bab427
54 files changed
+254 -112

No files matched your search

+99 -57
View File
@@ -1,36 +1,111 @@
# Screenshots — demo-map visual review
# Screenshots
Rendered captures of **the demo map only** — what a player sees when the demo runs. Generated by [`Tools/render_screenshots.sh`](../Tools/render_screenshots.sh); the PNGs are committed so a reviewer sees exactly what the build rendered.
Two reviews in one file:
The review staging map (`/Game/Test/ReviewMap`) is not part of this set: it exists to hold the camera list and the hero detail rig, and it is not what ships.
- **ReviewMap** stages imported assets on their own — individual objects, the Blender import, the camera angles and the lighting comparison. Nothing from the game map is involved.
- **DemoMap** is the actual game map as it is being developed: the street, the buildings, the player and the vehicle in their real placement.
## How to regenerate
Both capture passes are produced by [`Tools/render_screenshots.sh`](../Tools/render_screenshots.sh); the asset renders come from [`Tools/blender_screenshots.py`](../Tools/blender_screenshots.py).
```bash
Tools/render_screenshots.sh --verify
```
## Status
Stages the demo shot cameras, runs the game on `/Game/Hollywood/DemoMap`, copies the PNGs into `Screenshots/demo/` and then runs [`Tools/visual_loop.py`](../Tools/visual_loop.py) `--verify` to check that each shot still shows the content its expectation describes. About a minute.
**This is the only place approval state and issue notes are recorded.** Every image requires a fresh approval because every image changed.
## Status at a glance
| # | 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 | |
| 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 | |
**This is the only place approval state is recorded.** Every image below requires a fresh approval because all of them changed; a note in this table is the record, and the per-shot sections describe what a shot should show rather than whether it passed.
**Status:** ☐ pending · ☑ approved · ☒ rejected. "ReviewMap" rows are asset staging; "DemoMap" rows are the game map.
| # | Shot | Status | Note |
| --- | --- | --- | --- |
| 1 | [spawn-view](#1-spawn-view) | ☐ pending | character and car float |
| 2 | [street-level](#2-street-level) | ☐ pending | character and car float |
| 3 | [crossing](#3-crossing) | ☐ pending | |
| 4 | [north-buildings](#4-north-buildings) | ☐ pending | |
| 5 | [retail-frontage](#5-retail-frontage) | ☐ pending | |
| 6 | [third-person](#6-third-person) | ☐ pending | character and car float |
| 7 | [third-person-front](#7-third-person-front) | ☐ pending | character and car float |
| 8 | [third-person-walk](#8-third-person-walk) | ☐ pending | character and car float |
| 9 | [vehicle](#9-vehicle) | ☐ pending | |
| 10 | [feet](#10-feet) | ☐ pending | |
| 11 | [wheel](#11-wheel) | ☐ pending | |
## Blender vs UE
**Status:** ☐ pending · ☑ approved · ☒ rejected.
<!-- blender-comparison:begin -->
### Blender vs in-game
Regenerated by `Tools/build_comparison_md.py`; everything between the markers is rewritten, so edit outside them.
- Captures: `Screenshots/review/` and `Screenshots/demo/` (23 files)
- Blender renders: `Screenshots/blender/` (22 files), made by `Tools/blender_screenshots.py`
Left is what the engine draws, right is what Blender has. A gap between them is the import problem, not a taste problem: scale, material colour, missing parts and split systems all show up here before they show up in a review.
### Side by side
| In-game | Blender | Shot |
| --- | --- | --- |
| <img src="review/review-character-feet.png" width="520"> | <img src="blender/character-angle-035.png" width="520"> | `review-character-feet.png` |
| <img src="review/review-character.png" width="520"> | <img src="blender/character-angle-035.png" width="520"> | `review-character.png` |
| <img src="review/review-ground-contact.png" width="520"> | — | `review-ground-contact.png` |
| <img src="review/review-hero-facade-front.png" width="520"> | — | `review-hero-facade-front.png` |
| <img src="review/review-hero-facade-oblique.png" width="520"> | — | `review-hero-facade-oblique.png` |
| <img src="review/review-hero-portals.png" width="520"> | — | `review-hero-portals.png` |
| <img src="review/review-npc-prefab.png" width="520"> | — | `review-npc-prefab.png` |
| <img src="review/review-overview.png" width="520"> | — | `review-overview.png` |
| <img src="review/review-player-placement.png" width="520"> | — | `review-player-placement.png` |
| <img src="review/review-scale-cubes.png" width="520"> | — | `review-scale-cubes.png` |
| <img src="review/review-shadow-compare.png" width="520"> | — | `review-shadow-compare.png` |
| <img src="review/review-vehicle.png" width="520"> | <img src="blender/vehicle-angle-035.png" width="520"> | `review-vehicle.png` |
| <img src="demo/review-demo-crossing.png" width="520"> | — | `review-demo-crossing.png` |
| <img src="demo/review-demo-feet.png" width="520"> | — | `review-demo-feet.png` |
| <img src="demo/review-demo-north-buildings.png" width="520"> | — | `review-demo-north-buildings.png` |
| <img src="demo/review-demo-retail-frontage.png" width="520"> | — | `review-demo-retail-frontage.png` |
| <img src="demo/review-demo-spawn-view.png" width="520"> | — | `review-demo-spawn-view.png` |
| <img src="demo/review-demo-street-level.png" width="520"> | — | `review-demo-street-level.png` |
| <img src="demo/review-demo-third-person-front.png" width="520"> | <img src="blender/character-angle-035.png" width="520"> | `review-demo-third-person-front.png` |
| <img src="demo/review-demo-third-person-walk.png" width="520"> | <img src="blender/character-angle-035.png" width="520"> | `review-demo-third-person-walk.png` |
| <img src="demo/review-demo-third-person.png" width="520"> | <img src="blender/character-angle-035.png" width="520"> | `review-demo-third-person.png` |
| <img src="demo/review-demo-vehicle.png" width="520"> | <img src="blender/vehicle-angle-035.png" width="520"> | `review-demo-vehicle.png` |
| <img src="demo/review-demo-wheel.png" width="520"> | — | `review-demo-wheel.png` |
7 of 23 in-game captures have a Blender counterpart; the rest are street and building shots whose meshes come from the Geo pipeline rather than a .blend.
Approval and issue notes are recorded only in the status table at the top of this file.
<!-- blender-comparison:end -->
## ReviewMap — asset staging
The staging map (`/Game/Test/ReviewMap`, built by [`Tools/ue_build_review_map.py`](../Tools/ue_build_review_map.py)) always stages the assets the latest Blender import produced: the character with its hair, clothing and materials, the vehicle's five systems, the scale cubes, the NPC prefab and the hero facade.
| Shot | Shows |
| --- | --- |
| ![](review/review-character-feet.png) | `review-character-feet.png` |
| ![](review/review-character.png) | `review-character.png` |
| ![](review/review-ground-contact.png) | `review-ground-contact.png` |
| ![](review/review-hero-facade-front.png) | `review-hero-facade-front.png` |
| ![](review/review-hero-facade-oblique.png) | `review-hero-facade-oblique.png` |
| ![](review/review-hero-portals.png) | `review-hero-portals.png` |
| ![](review/review-npc-prefab.png) | `review-npc-prefab.png` |
| ![](review/review-overview.png) | `review-overview.png` |
| ![](review/review-player-placement.png) | `review-player-placement.png` |
| ![](review/review-scale-cubes.png) | `review-scale-cubes.png` |
| ![](review/review-shadow-compare.png) | `review-shadow-compare.png` |
| ![](review/review-vehicle.png) | `review-vehicle.png` |
## DemoMap — in-game
## 1. Spawn view
@@ -212,36 +287,3 @@ Resolved and removed from this list on 2026-11-09:
- "The El Capitan Theatre has no marquee or blade sign" — `Tools/ue_stage_theatre_trim.py` stages all six trim actors; verified in `/tmp/gigline/theatre-import.txt`.
- "Materials are not yet created in Blender or fully integrated" — contradicted by the scene conventions above: every surface carries a look-dev material built in `Tools/ue_build_demo_map.py`.
<!-- blender-comparison:begin -->
## Blender vs in-game
Regenerated by `Tools/build_comparison_md.py`; everything between the markers is rewritten, so edit outside them.
- In-game captures: `Screenshots/demo/` (11 files)
- Blender renders: `Screenshots/blender/` (22 files), made by `Tools/blender_screenshots.py`
Left is what the engine draws, right is what Blender has. A gap between them is the import problem, not a taste problem: scale, material colour, missing parts and split systems all show up here before they show up in a review.
### Side by side
| In-game | Blender | Shot |
| --- | --- | --- |
| <img src="demo/review-demo-crossing.png" width="520"> | — | `review-demo-crossing.png` |
| <img src="demo/review-demo-feet.png" width="520"> | — | `review-demo-feet.png` |
| <img src="demo/review-demo-north-buildings.png" width="520"> | — | `review-demo-north-buildings.png` |
| <img src="demo/review-demo-retail-frontage.png" width="520"> | — | `review-demo-retail-frontage.png` |
| <img src="demo/review-demo-spawn-view.png" width="520"> | — | `review-demo-spawn-view.png` |
| <img src="demo/review-demo-street-level.png" width="520"> | — | `review-demo-street-level.png` |
| <img src="demo/review-demo-third-person-front.png" width="520"> | <img src="blender/character-angle-035.png" width="520"> | `review-demo-third-person-front.png` |
| <img src="demo/review-demo-third-person-walk.png" width="520"> | <img src="blender/character-angle-035.png" width="520"> | `review-demo-third-person-walk.png` |
| <img src="demo/review-demo-third-person.png" width="520"> | <img src="blender/character-angle-035.png" width="520"> | `review-demo-third-person.png` |
| <img src="demo/review-demo-vehicle.png" width="520"> | <img src="blender/vehicle-angle-035.png" width="520"> | `review-demo-vehicle.png` |
| <img src="demo/review-demo-wheel.png" width="520"> | — | `review-demo-wheel.png` |
4 of 11 in-game captures have a Blender counterpart; the rest are street and building shots whose meshes come from the Geo pipeline rather than a .blend.
Approval and issue notes are recorded only in the status table at the top of this file.
<!-- blender-comparison:end -->