The demo is built from OpenStreetMap data (ODbL 1.0) and needs attribution wherever the derived work is shown. Add it to the running game, not just the documents. - AGigLineHUD (C++): plain AHUD::DrawText in the bottom-left draws '(c) OpenStreetMap contributors' and 'Data (c) OpenStreetMap contributors, ODbL 1.0 - openstreetmap.org/copyright', with a shadow pass for legibility over bright pavement and sky. No UMG widget asset, so a cook cannot drop it through a missing widget reference. - AGigLineGameModeBase: HUDClass = AGigLineHUD, so the credit is on by default. - AGigLineShotActor: screenshots are now requested with the UI shown, so the attribution appears in every capture under Screenshots/ and the obligation is provable in review rather than only described. Docs: THIRD_PARTY_NOTICES records that the string is displayed in-game; Screenshots/README documents the overlay; TODO marks the item done and narrows the remaining ODbL question to the shipped-derivative-database posture.
81 lines
6.0 KiB
Markdown
81 lines
6.0 KiB
Markdown
# Screenshots — visual review
|
||
|
||
Rendered in-game captures of the current project content, generated by
|
||
[`Tools/render_screenshots.sh`](../Tools/render_screenshots.sh). The PNGs are
|
||
committed alongside this README so a reviewer sees exactly what the build
|
||
rendered.
|
||
|
||
## How to regenerate
|
||
|
||
```bash
|
||
Tools/render_screenshots.sh
|
||
```
|
||
|
||
Rebuilds `Game/GigLine/Content/Test/ReviewMap.umap` from current content, runs
|
||
the game on it (and on the DemoMap for the walkable views), walks the fixed
|
||
camera list via `AGigLineShotActor`, captures each shot, copies the PNGs here
|
||
and exits — about a minute. The camera list lives in
|
||
`Tools/ue_build_review_map.py`; add new shots there, remove retired ones here.
|
||
|
||
> Naming: shots use their stable camera name (no index prefix), so adding or
|
||
> reordering cameras never renumbers files or orphans the old ones. Click an
|
||
> image for the full-size PNG.
|
||
|
||
## Shot list
|
||
|
||
All ☑ approved 2026-11-07.
|
||
|
||
| # | File | Preview | Map | View | What it shows |
|
||
| --- | --- | --- | --- | --- | --- |
|
||
| 1 | `review-overview.png` | [<img src="review-overview.png" alt="overview" width="180">](review-overview.png) | Review | 7 m up, NE | Whole review layout: character + both cubes on the floor |
|
||
| 2 | `review-character.png` | [<img src="review-character.png" alt="character" width="180">](review-character.png) | Review | eye height, south | MPFB mannequin, idle pose + warm skin; feet meet the plane |
|
||
| 3 | `review-scale-cubes.png` | [<img src="review-scale-cubes.png" alt="scale cubes" width="180">](review-scale-cubes.png) | Review | south | Floating vs grounded cube: cast vs contact shadow |
|
||
| 4 | `review-player-placement.png` | [<img src="review-player-placement.png" alt="player placement" width="180">](review-player-placement.png) | Review | spawn | The `AGigLineCharacter` pawn, capsule height and landing |
|
||
| 5 | `review-npc-prefab.png` | [<img src="review-npc-prefab.png" alt="npc prefab" width="180">](review-npc-prefab.png) | Review | mid, west | The `AGigLineNPCPerson` prefab: collision capsule + visible MPFB body, feet on Z 0 |
|
||
| 6 | `review-ground-contact.png` | [<img src="review-ground-contact.png" alt="ground contact" width="180">](review-ground-contact.png) | Review | knee height, feet | Floating/sinking character is obvious here |
|
||
| 7 | `review-shadow-compare.png` | [<img src="review-shadow-compare.png" alt="shadow compare" width="180">](review-shadow-compare.png) | Review | low angle | Detached (floating) vs touching (grounded) shadows |
|
||
| 8 | `review-hero-portals.png` | [<img src="review-hero-portals.png" alt="hero portals" width="180">](review-hero-portals.png) | Review | 8 m, eye height | Three genuine 1.2 m portal recesses with flights and plinth |
|
||
| 9 | `review-hero-facade-front.png` | [<img src="review-hero-facade-front.png" alt="hero facade front" width="180">](review-hero-facade-front.png) | Review | road side, straight-on | Hero façade elevation and column rhythm |
|
||
| 10 | `review-hero-facade-oblique.png` | [<img src="review-hero-facade-oblique.png" alt="hero facade oblique" width="180">](review-hero-facade-oblique.png) | Review | north-west | Body depth and column line standing proud of the mass |
|
||
| 11 | `demo/review-demo-spawn-view.png` | [<img src="demo/review-demo-spawn-view.png" alt="spawn view" width="180">](demo/review-demo-spawn-view.png) | Demo | spawn point | Spawn view from the north sidewalk: the hero façade across the road under fixed daytime light |
|
||
| 12 | `demo/review-demo-street-level.png` | [<img src="demo/review-demo-street-level.png" alt="street level" width="180">](demo/review-demo-street-level.png) | Demo | eye height, north side | The façade colonnade and columns, sunlit with cast shadows |
|
||
| 13 | `demo/review-demo-crossing.png` | [<img src="demo/review-demo-crossing.png" alt="crossing" width="180">](demo/review-demo-crossing.png) | Demo | along the crosswalk | The designated mid-block crossing at s=130 m (UE X -14956): three continental zebra bars on the asphalt, kerbs flushed to ramps |
|
||
| 14 | `demo/review-demo-north-buildings.png` | [<img src="demo/review-demo-north-buildings.png" alt="north buildings" width="180">](demo/review-demo-north-buildings.png) | Demo | across the Blvd | North-side background buildings (TCL, Tussaud's), lit against the sky |
|
||
|
||
## Scene conventions
|
||
|
||
- **Review map** (`/Game/Test/ReviewMap`): 160 m floor, top face at Z 0; the
|
||
character measures Z 0..83 cm. One warm key light plus sky fill.
|
||
- **Cubes**: `Cube_ScaleTest_A` rests on the floor, `Cube_ScaleTest_B` floats at
|
||
Z 2 m; both are exactly 1 m — the scale reference.
|
||
- **Demo map** (`/Game/Hollywood/DemoMap`): fixed daytime — sun at pitch −50 /
|
||
yaw 120 (intensity 4, warm), sky light 2.6, sky atmosphere, height fog, fixed
|
||
exposure. Surface colours are assigned explicitly in
|
||
`Tools/ue_build_demo_map.py` (`M_Asphalt`, `M_Concrete`, `M_Ground`,
|
||
`M_RoadPaint`) because Blender's flat diffuse colours do not survive the
|
||
FBX → Unreal import.
|
||
- **Lighting is dynamic-only** (`r.AllowStaticLighting=False`, all lights
|
||
Movable), so no lighting build is ever required.
|
||
- **Attribution overlay**: every shot carries the required ODbL credit in the
|
||
bottom-left (`© OpenStreetMap contributors` / `Data © OpenStreetMap
|
||
contributors, ODbL 1.0 — openstreetmap.org/copyright`), drawn by
|
||
`AGigLineHUD`. Screenshots are requested with the UI shown so the obligation
|
||
is visible in review.
|
||
|
||
## What to look for
|
||
|
||
- **Ground contact**: feet meet the plane with no gap and no shadow seam.
|
||
- **Scale**: everything checks against the 1 m cubes.
|
||
- **Façade rhythm**: six columns at 4.96 m across 25.75 m should read as the
|
||
photographs in silhouette.
|
||
|
||
## Known cosmetic issues
|
||
|
||
- Floor speckle from the `Constant3Vector` wiring in `Tools/ue_build_review_map.py`.
|
||
- Hero façade renders pale — Blender flat colours with no normal/roughness, so
|
||
it reads as untextured stone (the `0.1.4` façade patch, not a lighting bug).
|
||
- Banners and window panels float detached from the colonnade wall (next
|
||
modelling pass).
|
||
- Between kerb and building line, the walkable surface is the terrain mesh, not
|
||
a modelled pavement.
|