feat(kit): façade module kit at the 4.96 m bay, assembled onto eight buildings

- Tools/facade_kit_build.py: the reusable kit (pilaster, sill, lintel, window bay,
  shopfront bay, door bay, cornice, parapet + coping) at the measured 4.96 m bay
  and 3.10 m storey; 16 meshes exported per object through the shared preset with
  a JSON part report recording dims and evidence.
- Tools/ue_import_facade_kit.py: imports to /Game/Hollywood/Kit with
  complex-as-simple collision, so thin panes keep their real faces.
- Tools/ue_apply_facade_kit.py: assembles from each building's own bounding box
  (bays = round(width/4.96), storeys above the ground floor) with shopfronts at
  street level, windows above, pilasters on bay boundaries, cornice and parapet at
  the top. Clears a previous application; unique labels per building.
  638 pieces across six frontage buildings and both north buildings.

Two bugs fixed en route: the window piece was modelled entirely at +Y so it sat
inside the solid wall and was invisible (now projects 3 cm proud with glazing
6 cm inset), and clearing materials mid-build invalidated handles.

Screenshots re-rendered; window rhythm now reads (edge transitions per row rose
from flat to ~197 on the spawn view).
This commit is contained in:
zwitschi committed 2026-11-08 19:12:45 +01:00
1 parent 73e535a24b
commit c9d603f754
46 files changed
+721 -32

No files matched your search

+23
View File
@@ -568,3 +568,26 @@ Scope: facts and traps that cost time to establish. Planned work lives in [TODO.
- The script needs `ROOT` in `ue_build_demo_map.py` and `sys` imported; forgetting
either fails with `NameError` and an exit code of 0 from the commandlet (always
read the result file under /tmp/gigline).
## 2026-11-09 — façade module kit (0.1.4)
- `Tools/facade_kit_build.py` builds the kit at the measured **4.96 m bay** and
**3.10 m storey**: pilaster, sill, lintel, window bay, shopfront bay, door bay,
cornice, parapet + coping = 16 meshes, exported per-object with
`fbx_export_preset` plus a JSON part report (dims + evidence per piece).
- `Tools/ue_import_facade_kit.py` → `/Game/Hollywood/Kit/*`, complex-as-simple
collision (a convex hull would fence off the shopfront glazing).
- `Tools/ue_apply_facade_kit.py` lays the kit out from each building's own bbox:
`bays = round(width / 496 cm)`, storeys from height minus the 310 cm ground
floor. **638 pieces** over six frontage buildings + both north buildings.
- **Bug worth remembering:** the first window piece was modelled entirely at +Y
(into the wall), so every window sat *inside* the solid blockout wall and was
invisible in every render while the placement maths looked right. The kit now
projects the surround 3 cm proud with the glazing 6 cm behind its face — a
solid-wall blockout cannot carry a real recess, so the piece has to project.
- Blender gotcha: clearing the scene *including materials* invalidates handles
already taken ("StructRNA of type Material has been removed"); clear objects and
orphan meshes only, and create the material after the clear.
- The kit meshes are spawned at the world origin with their position baked into
the mesh (like the frontage exports), so placement uses the bbox directly and
must not add the actor location.