Files
gig-line/Screenshots
zwitschi 286d9f6479 refactor(tools): one FBX export preset instead of six copies
The bpy.ops.export_scene.fbx argument block was duplicated in six scripts (hero,
block frontage, north buildings, site, scale test, MPFB character) and all six
carried mesh_smooth_type="OFF", which drops smoothing groups and made every
Unreal import warn and every round part faceted.

Tools/fbx_export_preset.py now owns the presets:
- preset_kwargs(preset, selection, **overrides) is bpy-free and unit-tested;
- export_static()/export_character() are thin wrappers that import bpy lazily;
- ue_metric_v1 and ue_character_v1 keep the recorded scale contract
  (FBX_SCALE_NONE, apply_unit_scale, -Y forward / Z up) and use FACE smoothing.

Callers switched: hero_facade_build, export_block_frontage, export_north_buildings,
scale_test_export, mpfb_character_export, Art/blender/site/export_site_fbx.

Verified by re-exporting every asset through the preset and re-importing all of
them: 0 smoothing warnings on site, frontage and north buildings; packaging and
-qaselftest all PASS (walk, transect 0 holes, wall probe 0/35, facade probe 0/9).
49 tool tests pass (9 new for the preset contract).
2026-11-08 18:00:59 +01:00
..

Screenshots — visual review

Rendered in-game captures of the current project content, generated by Tools/render_screenshots.sh. The PNGs are committed alongside this README so a reviewer sees exactly what the build rendered.

How to regenerate

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

Status: whole set ☑ approved 2026-11-09 (owner review of PR #27). Every shot was re-rendered from current main content after the building-height calibration was adopted (v0.1.2): Mapbox-derived 3.1 m per level (Geo/tools/block_height_report.py), explicit overrides for three rear outbuildings, and the regenerated blockout and frontage that follow — 6922 is now 39.1 m (was 42.1 m) and the El Capitan Theatre 20.5 m (was 20.0 m).

Round What changed
2026-11-07 First approved set; block frontage pass corrected hero and north-building placement
2026-11-08 Re-rendered after 0.1.1 street geometry (sidewalk upstand flush at the building edge, crossing ramps graded ≤ 8 %); demo-north-buildings camera re-pointed (was 9.5 km west, 85 % sky)
2026-11-09 Re-rendered after the 0.1.2 building-height calibration (3.1 m per level). 12 of 14 PNGs changed; review-demo-spawn-view and review-demo-street-level are byte-identical to the 0.1.1 round, so the height change reads mostly on the frontage silhouettes
# File Preview Map View What it shows ☑
1 review-overview.png overview Review 7 m up, NE Whole review layout: character + both cubes on the floor ☑ 2026-11-09
2 review-character.png character Review eye height, south MPFB mannequin, idle pose + warm skin; feet meet the plane ☑ 2026-11-09
3 review-scale-cubes.png scale cubes Review south Floating vs grounded cube: cast vs contact shadow ☑ 2026-11-09
4 review-player-placement.png player placement Review spawn The AGigLineCharacter pawn, capsule height and landing ☑ 2026-11-09
5 review-npc-prefab.png npc prefab Review mid, west The AGigLineNPCPerson prefab: collision capsule + visible MPFB body, feet on Z 0 ☑ 2026-11-09
6 review-ground-contact.png ground contact Review knee height, feet Floating/sinking character is obvious here ☑ 2026-11-09
7 review-shadow-compare.png shadow compare Review low angle Detached (floating) vs touching (grounded) shadows ☑ 2026-11-09
8 review-hero-portals.png hero portals Review 8 m, eye height Three genuine 1.2 m portal recesses with flights and plinth ☑ 2026-11-09
9 review-hero-facade-front.png hero facade front Review road side, straight-on Hero façade elevation and column rhythm ☑ 2026-11-09
10 review-hero-facade-oblique.png hero facade oblique Review north-west Body depth and column line standing proud of the mass ☑ 2026-11-09
11 demo/review-demo-spawn-view.png spawn view Demo north sidewalk The whole block: hero façade between its neighbours, both sidewalks and the road ☑ 2026-11-09
12 demo/review-demo-street-level.png street level Demo eye height, north side The hero colonnade with the adjacent frontage buildings either side ☑ 2026-11-09
13 demo/review-demo-crossing.png crossing Demo along the crosswalk The designated mid-block crossing at s=130 m (UE X -14956): three zebra bars on the asphalt, with the south frontage and the hero colonnade behind ☑ 2026-11-09
14 demo/review-demo-north-buildings.png north buildings Demo across the Blvd North-side buildings (TCL, Tussaud's) seen from the south side across the road. 2026-11-08: camera re-pointed to the buildings' mass centre (was 9.5 km west → 85% sky); now frames both north buildings. Flat surfaces = 0.1.4 façade scope. ☑ 2026-11-09

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.
  • Materials: every exported surface carries a look-developed material built in Tools/ue_build_demo_map.py (ensure_material) because Blender's flat diffuse colours do not survive the FBX → Unreal import. Each has an explicit roughness and a subtle world-space noise blend between two shades: M_Asphalt (0.92), M_Concrete (0.88), M_KerbConcrete (0.85), M_Ground (0.98), M_RoadPaint (0.62), M_FacadeStone (0.72) and M_Stucco (0.86) for the north-side buildings.
  • Lighting is dynamic-only (r.AllowStaticLighting=False, all lights Movable), so no lighting build is ever required.

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.
  • Frontage heights (new in this round): 6922 and the El Capitan Theatre were re-cut to the 3.1 m storey height. Check they still read as the taller west end and the lower cinema respectively against Art/reference/hollywood/el-capitan-theatre-blade-sign-day-wikimedia-2008-10.jpg, and that the ordering of the six frontage buildings is unchanged.

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 sit on the column line rather than the wall (acceptable: they hang on the columns in the photographs).
  • Banners and window panels float detached from the colonnade wall — window panes fixed 2026-11-09: they sat at Y −1.98, 1.44 m in front of the wall and ahead of the column line; they now sit on the wall plane at Y −0.56, behind the columns, and read as dark openings (see review-hero-facade-front).
  • Between kerb and building line, the walkable surface is the terrain mesh, not a modelled pavement.