- Screenshots/README.md: one table for all 14 shots (review + demo) with an
index, the map each came from, camera view and description; all approved
2026-11-07 by the owner. Scene conventions now document both maps and the
dynamic-only lighting setup.
- TODO.md: Fixed daytime lighting marked done; the stale 'corridor renders
near-black' note on the crossing item updated.
Fixed daytime lighting and basic ambience for the DemoMap:
- Sun pitch -50 / yaw 120 (intensity 4, warm), sky light 2.6 with real-time
capture, sky atmosphere, height fog, and an unbound post-process volume with
fixed exposure (min = max brightness) so no shot washes out or crushes to
black depending on how much sky it frames.
- Root cause of the washed-out look was NOT the sun: Blender's flat diffuse
colours do not survive the FBX->Unreal import. Every site material arrived
white and the terrain arrived with WorldGridMaterial. The demo builder now
creates and assigns M_Asphalt / M_Concrete / M_Ground / M_RoadPaint.
- Crossing fix: each zebra band was its own object, so Blender renamed the
duplicates .001/.002 and site assembly (exact-name append) kept only one.
All bands are now a single Crossing_Markings mesh (36 verts, 3 bands).
- Terrain gets a Ground_Earth material in the builder so it stops importing
as a white grid.
- Demo cameras: street-level no longer sits inside the facade body (was
rendering its back face), and the crossing camera aims at the designated
s=130.1 crossing (UE X -14956) looking along the crosswalk.
Screenshots re-rendered; the four demo views are marked needs-review for the
owner's approval. MEMORY.md records the material-import, exposure,
light_color, band-naming and camera-bounds traps.
Root cause of the empty review frames: EditorLevelLibrary.load_level/new_level
are deprecated no-ops in -nullrhi commandlets, so staged actors landed in the
current world and got saved over the wrong map. Switched both map builders to
the LevelEditorSubsystem and reordered the review builder to save ReviewMap
before the DemoMap section (the switch-back to a map that only exists in
memory silently failed, writing demo content over ReviewMap).
Rebuilt both maps, re-rendered every screenshot; user visual check passed.
Screenshots/README.md cube naming corrected (A grounded, B floating), approval
states updated; TODO.md visual-review notes closed. MEMORY.md records the
deprecated-call and save-order traps.
- New C++ AGigLineNPCPerson: reusable NPC/pedestrian prefab built on the MPFB
human. ACharacter capsule half-height 83 cm (total 1.66 m, head top ~1.66 m
so a 1.60 m camera doesn't clip), the character skeletal mesh on the built-in
mesh as the visible body (feet on Z 0), AutoPossessAI for 0.5.0 pedestrians.
Staged at Z 0 in the review scene; captured as review-npc-prefab.png.
- AGigLineShotActor now names screenshots by stable camera name (no list-index
prefix): inserting or reordering cameras no longer renumbers files or orphans
the old ones. Re-rendered all review/demo shots with stable names.
- ue_build_review_map.py: chmod the target .umap before save_map (git marks maps
444 on checkout, silently making save_map return False and dropping stages).
- Screenshots/README.md, ROADMAP, TODO updated for the prefab + stable names.
- DemoMap.umap rebuilt by the render pipeline (north buildings + demo cameras).
Split the former ROADMAP.md checklists into TODO.md, which now holds
all actionable work and progress marks. ROADMAP.md keeps milestone
goals, scope, and release gates as prose with no checkboxes.
Update AGENTS.md, Docs/, Geo/README.md, MEMORY.md, and README.md to
point to the new file roles.