Integrates the completed gameplay-crossing-0.1.0 branch into main.
Gameplay
Designated street crossing done (OSM way 385648319): continental zebra markings (0.5 m bars / 0.5 m gaps, 3 m band) at all three signalised crossings, no collision on the paint. Kerbs already flushed at crossings.
Enablers fixed on the way: street surfaces were 100% down-facing (winding flipped); terrain buried the street (10.7 m corridor cut added, walk-check 0 holes); LFS-lockable .blend/.umap files check out read-only (builders chmod before saving and fail loudly).
AGENTS.md seeded from PLAN.md; MEMORY.md updated with the LFS-lockable and level-switch traps; Tools/README.md updated.
Merge after review; the branch is 8 commits ahead of main.
Integrates the completed `gameplay-crossing-0.1.0` branch into `main`.
## Gameplay
- **Designated street crossing done** (OSM way 385648319): continental zebra markings (0.5 m bars / 0.5 m gaps, 3 m band) at all three signalised crossings, no collision on the paint. Kerbs already flushed at crossings.
- **Enablers fixed on the way:** street surfaces were 100% down-facing (winding flipped); terrain buried the street (10.7 m corridor cut added, walk-check 0 holes); LFS-lockable `.blend`/`.umap` files check out read-only (builders chmod before saving and fail loudly).
- Demo views approved 2026-11-07; demo level item closed.
## Review map (root cause fixed)
- `EditorLevelLibrary.load_level`/`new_level` are deprecated no-ops in commandlets — both map builders now use the `LevelEditorSubsystem`.
- Fixed save-order bug in `ue_build_review_map.py` (ReviewMap saved before the DemoMap section).
- Character + cubes restored in all shots; all 14 review + 4 demo PNGs re-rendered and approved.
## NPC prefab
- `AGigLineNPCPerson` (C++), capsule 1.66 m — head-height check passed, `review-npc-prefab` approved.
## Docs
- `AGENTS.md` seeded from `PLAN.md`; `MEMORY.md` updated with the LFS-lockable and level-switch traps; `Tools/README.md` updated.
Merge after review; the branch is 8 commits ahead of `main`.
0.5 m white bars with 0.5 m gaps across a 3 m band per crossing, laid
1 cm above the road surface. Makes the mid-block crossing (OSM way
385648319, s=130.1 m) a designated crossing in game. Metadata audit
passes (1 sidecar, 0 problems).
- 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).
- street_mesh.py: continental zebra markings (0.5 m bars, 0.5 m gaps, 3 m
band) at all three signalised crossings, triangles not quads (FBX SDK
refuses to triangulate the crown-twisted quads), stripes +6 cm above the
DEM so they stay above the road surface; winding flipped so every street
surface faces up (road/sidewalks/markings were 100% down-facing and
invisible in engine once the terrain stopped covering them).
- terrain_from_dem.py: cut a 10.7 m corridor around the Hollywood Blvd
centreline so road, kerbs and sidewalks are not buried under the terrain;
sidewalks themselves cover the transition band, walk-check stays at 0 holes.
- Blender builders save with a writability guard + fatal failure: *.blend
is LFS-lockable and checks out read-only; a failed save previously left
downstream steps building from stale files.
- ue_import_site.py: Crossing_Markings imports with no collision (paint on
the road); ue_build_demo_map.py stages it and chmods the lockable .umap
before saving (save_map silently returned False on read-only maps).
- ue_build_review_map.py: demo-crossing camera moved to the real crossing
(s=130.1 m -> UE -24291,-1340) and fixed the ensure_writable path (was
missing the .umap suffix, so the chmod never fired).
The skill-pack entry was swept into another session's commit before it could be
committed on its own. Notes that a shared worktree can commit a shared file for
you - or drop the edit if the file is overwritten - and that git log -S is the
way to check before assuming the edit was lost.
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.
Merged manually into main as merge commit 1dbe737 (git merge --no-ff gameplay-crossing-0.1.0, pushed to origin). Closing - conflicts resolved: AGENTS.md kept main's refined version; MEMORY.md unioned; Screenshots/README.md and all 14 re-rendered PNGs taken from the branch (user-approved).
Merged manually into main as merge commit 1dbe737 (git merge --no-ff gameplay-crossing-0.1.0, pushed to origin). Closing - conflicts resolved: AGENTS.md kept main's refined version; MEMORY.md unioned; Screenshots/README.md and all 14 re-rendered PNGs taken from the branch (user-approved).
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
Integrates the completed
gameplay-crossing-0.1.0branch intomain.Gameplay
.blend/.umapfiles check out read-only (builders chmod before saving and fail loudly).Review map (root cause fixed)
EditorLevelLibrary.load_level/new_levelare deprecated no-ops in commandlets — both map builders now use theLevelEditorSubsystem.ue_build_review_map.py(ReviewMap saved before the DemoMap section).NPC prefab
AGigLineNPCPerson(C++), capsule 1.66 m — head-height check passed,review-npc-prefabapproved.Docs
AGENTS.mdseeded fromPLAN.md;MEMORY.mdupdated with the LFS-lockable and level-switch traps;Tools/README.mdupdated.Merge after review; the branch is 8 commits ahead of
main.Merged manually into main as merge commit
1dbe737(git merge --no-ff gameplay-crossing-0.1.0, pushed to origin). Closing - conflicts resolved: AGENTS.md kept main's refined version; MEMORY.md unioned; Screenshots/README.md and all 14 re-rendered PNGs taken from the branch (user-approved).Pull request closed