fix(hero): export smoothing groups; give the facade real collision

UE export hygiene (unreal-export skill checklist) plus a gameplay defect the new
probe caught:

- FBX export now uses mesh_smooth_type="FACE" (was OFF, which is why every import
  logged "No smoothing group information was found"), and the round parts are
  shaded with shade_smooth_by_angle(35 deg) before export, so columns and
  medallions read round instead of faceted.
- SM_HeroFacade had complex-only collision, so capsule sweeps and line traces
  passed through the wall: the player could walk through the hero facade.
  auto_generate_collision was tried and rejected (coarse hulls bulged into the
  street; the QA wall probe went 0/35 -> 2/35). It now uses UseComplexAsSimple,
  saved on the asset, like the terrain.
- New -qaselftest facade occlusion probe: 40 m traces sideways from the road
  centre at walking height, required only where a building is staged (explicit X
  spans mirroring ue_build_demo_map). Result 0/9 -> PASS, alongside transect
  0 holes and wall probe 0/35.

Docs: release-checks records the probe and both collision attempts; Tools/README
lists the new phase; MEMORY records the smoothing/collision lessons.
This commit is contained in:
zwitschi committed 2026-11-08 17:53:31 +01:00
1 parent 70c6e322e2
commit 160e9144f9
32 files changed
+166 -45

No files matched your search

+9
View File
@@ -95,6 +95,15 @@ Run on the packaged build (`GigLineQA`, Development, Vulkan SM5) with `-qaselfte
- **Invisible-wall probe:** horizontal traces 30 m long, grounded at 160 cm above
the local ground, along the road and both seam rows. Result **0/35 blocking hits
inside 21 m** — no invisible walls or misplaced blockers in the street envelope.
- **Facade occlusion probe:** from the road centre, 40 m traces sideways at walking
height toward each frontage, required only where the map stages a building (the
spans are listed in `AGigLineCharacter` and mirror `Tools/ue_build_demo_map.py`).
Result **0/9 directions without a blocking wall** — the player cannot walk
through the hero or the frontage. This probe found the hero façade had **no
simple collision** at all (complex-only, so traces and capsule sweeps passed
through it); it is now `UseComplexAsSimple`. Auto-generated convex hulls were
tried first and rejected: on a 95-part, 26 m façade they bulged into the street
(the wall probe went 0/35 → 2/35).
(First pass used a fixed Z 160 start; the street is at Z ~366, so the probe
started inside the earth and reported every row as a dist-0 blocker. Grounding
the probe fixed that measurement bug.)