Commit Graph
4 Commits
Author SHA1 Message Date
zwitschi 830ce596fa lighting: fixed daytime rig, real surface materials, crossing fix
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.
2026-11-07 17:56:21 +01:00
zwitschi c9e933376c review: restore character + cubes in ReviewMap, re-render all shots
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.
2026-11-07 16:23:59 +01:00
zwitschi bc2e421d33 gameplay: designated street crossing — zebra markings, corridor cut, up-facing street
- 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).
2026-11-07 15:46:45 +01:00
zwitschi cf392a02f7 gameplay: walkable demo map, reset and pause
Tools/ue_build_demo_map.py builds /Game/Hollywood/DemoMap: sun, sky, the hero
facade on the building line, six site meshes imported with collision, and a
player start on the north sidewalk. Tools/ue_import_site.py imports the site
FBXs; terrain, road and sidewalks use complex-as-simple so a simple hull cannot
ramp over the kerbs. Art/blender/site/export_site_fbx.py exports one FBX per
object so each can carry its own collision.

Reset (R) and pause (Escape) join the character and the input context: reset
restores the spawn transform and clears momentum, pause is a real game pause that
releases the cursor. DefaultInput.ini captures the mouse on launch.

Three placement defects found by measuring the imported actors rather than
trusting the plan: the spawn was on the wrong sidewalk because the FBX flip
inverts north, a mirror I added to the exporter double-corrected an already
correct sidewalk, and the street meshes only carry part of the north walk - the
rest is terrain.
2026-11-07 13:17:24 +01:00