Files
gig-line/Screenshots/README.md
T
zwitschi 8993fd83c4 feat(body): pose the arms down, add a front-angle shot
The character now stands with its arms at its sides instead of in a bind A-pose,
and there is a second camera to prove it: the third-person shot only ever showed
the pawn's back, so a front-facing pose defect was invisible in review.

  demo-third-person-front  camera on the road, ~6 m in front, looking back north
                           at the pawn; embedded in Screenshots/README.md as shot 7.

The pose work itself is a chain of measured findings, all recorded in TODO.md:

- clip data is exported relative to the REST pose, so arms-down offsets held only in
  the keys arrived as a ±20 degree swing around an A bind;
- a rest-pose bake alone does not move the mesh: the MPFB mesh has shape keys, the
  armature modifier cannot be applied while they exist, and the vertices stayed in
  the A shape (X span unchanged at 1.051 m). Clearing the shape keys, baking the
  deformation into the vertices and re-binding is what made bind and clips agree.

Not settled, and left as an open item rather than a claim: the base pose uses
inverted signs to compensate for the FBX axis mapping, the upper arms clip into the
torso, and the fingers splay. An aim-based pose module was written and then removed
- applied without the vertex bake it produced arms raised in a V, and a half-working
shared module is worse than none. The proper solve is 0.2.2: apply the standing pose
at character creation, then author clips against that bind.
2026-11-09 11:28:29 +01:00

11 KiB
Raw Blame History

Screenshots — demo-map visual review

Rendered captures of the demo map only — what a player sees when the demo runs. Generated by Tools/render_screenshots.sh; the PNGs are committed so a reviewer sees exactly what the build rendered.

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.

How to regenerate

Tools/render_screenshots.sh --verify

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 --verify to check that each shot still shows the content its expectation describes. About a minute.

Status at a glance

Every shot is embedded below, in order, so the whole review happens in this file.

# Shot Verified Approved
1 Spawn view ☑ 2026-11-09 ☑ 2026-11-09
2 Street level ☑ 2026-11-09 ☑ 2026-11-09
3 Crossing ☑ 2026-11-09 ☑ 2026-11-09
4 North buildings ☑ 2026-11-09 ☑ 2026-11-09
5 Retail frontage ☑ 2026-11-09 ☑ 2026-11-09
6 Third-person body ☑ 2026-11-09 ☐ pending

Verified is what --verify reports: the frame is not blank, is the right size, and has tonal range. Approved is the owner's verdict, recorded here. Each shot also has an expectation in Tools/visual_targets.json describing the content it must show.


1. Spawn view

Spawn view: the whole south block from the north sidewalk

  • File: demo/review-demo-spawn-view.png
  • View: north sidewalk, 14 m back, level horizon
  • Expected content: the whole south block — the neoclassical hero façade between its neighbouring buildings, both sidewalks and the road in the foreground
  • Verified: ☑ 2026-11-09 · Approved: ☑ 2026-11-09

2. Street level

Street level: the hero colonnade at eye height

  • File: demo/review-demo-street-level.png
  • View: eye height, north side
  • Expected content: the hero colonnade with the adjacent frontage buildings either side, shopfronts at pavement level
  • Verified: ☑ 2026-11-09 · Approved: ☑ 2026-11-09

3. Crossing

Crossing: the designated mid-block crossing with zebra bars

  • File: demo/review-demo-crossing.png
  • View: from the north sidewalk along the crosswalk
  • Expected content: the designated mid-block crossing (s=130 m, UE X −14956) — zebra bars on the asphalt, south frontage and colonnade behind
  • Verified: ☑ 2026-11-09 · Approved: ☑ 2026-11-09

4. North buildings

North buildings: TCL Chinese Theatre and Madame Tussaud's from the south

  • File: demo/review-demo-north-buildings.png
  • View: across the Boulevard from the south side
  • Expected content: the two north-side buildings (TCL Chinese Theatre, Madame Tussaud's), full height in frame
  • Verified: ☑ 2026-11-09 · Approved: ☑ 2026-11-09

5. Retail frontage

Retail frontage: 6800 Lee Drug and 6806–6820 from across the street

  • File: demo/review-demo-retail-frontage.png
  • View: north sidewalk, level horizon, 68° lens
  • Expected content: the retail run beside the hero — 6800 Lee Drug's bronze cornice, mural row and parapet next to 6806–6820's burgundy fascia, pilasters and window storey
  • Verified: ☑ 2026-11-09 · Approved: ☑ 2026-11-09

Read this one against the reference photograph it was modelled from: Art/reference/retail-neighbours/01-lee-drug-and-neighbor.jpg (Gb321, CC BY-SA 4.0).

Known gaps in this first pass, recorded rather than hidden:

  • The parapet still reads as a blank band. It is now two tiers with three deeper reveals, and the step is visible, but there is no profile or shadow line to break the wall — a moulded coping and a modelled reveal need the 0.9.0 façade system.
  • The mural row now reads (framed plates standing 0.12–0.20 m off the wall), but the lettering band does not: it is a plate at 0.10 m and it disappears at 40 m. Wall lettering is a decal/texture problem, scoped in 0.9.0; no amount of extra plate depth fixed it in the second pass.
  • The corner tower is a plain cylinder with two cap rings — the stepped Deco profile in the photograph is richer than that.
  • The camera crops the east end of Lee Drug at 68° from the north sidewalk.
  • 6822 Budget is untouched and still a bare blockout volume: no photograph of it exists.

6. Third-person body

Third-person body: the player pawn standing on the north sidewalk, seen from behind

  • File: demo/review-demo-third-person.png
  • View: third-person boom, ~6 m behind the pawn, captured with -thirdperson so the pawn starts in the third-person rig
  • Expected content: the player's own visible body on the north sidewalk, seen from behind, with the hero façade across the street
  • Verified: ☑ 2026-11-09 · Approved: ☐ pending

What this shot is evidence for:

  • The pawn carries a visible skeletal body with the warm skin material, and a spring-arm camera with collision testing. The V toggle swaps first and third person; the shipped default stays first person and the review passes -thirdperson.
  • The idle clip drives the body and the arms hang at the sides. Earlier captures of this shot showed a bind A-pose.

Still open, tracked in TODO.md:

  • The arms hang close enough to clip into the torso at the shoulder, and the fingers splay slightly. That is the 0.2.2 pose-and-skin tuning pass, not this rig.
  • Camera collision is implemented but unproven: the spawn has open space behind it, so no shot exercises the arm shortening.

7. Third-person front

Third-person front: the player body from the road, arms at the sides

  • File: demo/review-demo-third-person-front.png
  • View: from the road, ~6 m in front of the pawn, looking back north. The pawn spawns facing +Y, so this is its front
  • Expected content: both arms hanging at the sides with the hands by the hips, face and chest visible
  • Verified: ☑ 2026-11-09 · Approved: ☐ pending

Why the shot exists: the third-person shot only ever shows the pawn's back, so a pose defect on the front — arms out, hands splayed, a face pointing the wrong way — was invisible in review. This angle is the check for it.

What it shows: the arms hang down with a soft elbow bend and the hands sit at hip height. What it still shows wrong: the upper arms sit close enough to the torso to clip at the shoulder, and the fingers point outward-forward rather than hanging relaxed.


The iteration loop (uncommitted)

Tools/visual_loop.py measures each capture against its reference photograph and turns the deltas into modelling actions for the Blender skill packs:

python3 Tools/visual_loop.py --compare --iteration 3   # writes Art/reference/iterations/3/

That directory is gitignored: iterations stay uncommitted until a shot is confirmed, and only confirmed shots are promoted into Screenshots/demo/. The feedback file names the affected skill (blender-modeler, archviz, materials, lookdev, camera-cinematography) so the next modelling pass has a starting point rather than an opinion.

Note the comparison is only meaningful when the shot and the reference frame the same subject — a wide block view measured against a tight façade crop will always report low edge similarity.

Scene conventions

  • Demo map (/Game/Hollywood/DemoMap): fixed daytime — sun pitch −62 / yaw 120 (intensity 4, warm), sky light 2.6, sky atmosphere, height fog, fixed exposure.
  • Cameras: elevation shots sit at their target height (pitch 0, so verticals stay parallel) and use a 42–68° lens to fill the frame from across the street.
  • Materials: every surface carries a look-developed material from Tools/ue_build_demo_map.py — noise-blended base colour, masonry coursing, and a generated texture set (Tools/generate_facade_textures.py) sampled world-aligned. Explicit roughness and specular per surface type.

Known cosmetic issues

Every issue is tracked in TODO.md under the version that will fix it; an issue with no ticket is a bug in the plan, not a note.

Issue Where it is tracked State
Hero stone renders pale — the material is a procedural graph and a generated texture set, not a measured surface 0.9.0 → measured material library Open
Hero façade has no doors at street level left and right of the central bay, and the central-bay elements (columns, stairs, set-back entrance, door frames, signage) are not positioned as the photographs show 0.9.0 → per-building models, hero façade Open
Nothing may stand in front of the hero façade that blocks it — no awning, no temporary structure 0.9.0 → per-building models, hero façade Open
Retail parapet has no moulded profile, and wall lettering built as a plate does not read at 40 m 0.9.0 → 6800 Lee Drug and 6806–6820, second pass Open (moved out of 0.1.6)
6822 Budget is a bare blockout volume — no photograph exists to model it from 0.9.0 → photography gap Deferred (moved out of 0.1.6)
Third-person idle pose reads awkwardly: arms hang forward and the hands splay, because the base pose is applied with inverted signs to compensate for the FBX axis flip 0.2.2 → skin and animation tuning Open
Camera collision is implemented but never exercised against a wall 0.2.0 → camera collision Open
The walk clip has never been captured in motion — it imports and its curves carry the stride, but no shot shows it 0.2.0 → verify animation plays correctly Open
Between kerb and building line the walkable surface is the terrain mesh, not a modelled pavement 0.6.0 → model the pavement between kerb and building line Open

Accepted by the owner, not a defect:

  • Banners hang on the column line rather than flush to the wall — that is how they hang in the photographs.

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.