From ad5bb25009f0887c740769118ed31183fcf841d4 Mon Sep 17 00:00:00 2001 From: Zwitschi Date: Sun, 8 Nov 2026 19:44:17 +0100 Subject: [PATCH] qa(0.1.4): verdict document with budgets, evidence and defect severities Per the qa-review skill: explicit verdict, measured budgets, the screenshots that carry the claim, defects by severity and what remains unverified. Verdict SHIP WITH NOTES - geometry/placement/budgets verified by measurement, the visual half explicitly pending human review (the vision pre-check is unreliable on this content and was not used as evidence). Also fixes the last QA finding: kit pieces kept the grey M_Kit_* material the FBX import creates, so glazing was not glass and shopfronts were not stone. Assembly now assigns M_FacadeGlass to glazing, M_FacadeStone to surrounds, M_FacadeStoneShadow to doors and M_FacadeBanner to fascias (6/6 materials resolved), and the importer deletes the unused M_Kit_* materials (Kit folder now exactly 16 SM_ meshes). Packaged QA re-verified after the change: walk, transect 0 holes, wall probe 0/35, facade probe 0/9, RESULT PASS. --- Docs/qa/0.1.4-facade-qa.md | 81 +++++++++++++++++++ Game/GigLine/Content/Hollywood/DemoMap.umap | 4 +- .../Hollywood/Kit/M_Kit_cornice.uasset | 3 - .../Content/Hollywood/Kit/M_Kit_door.uasset | 3 - .../Content/Hollywood/Kit/M_Kit_lintel.uasset | 3 - .../Hollywood/Kit/M_Kit_parapet.uasset | 3 - .../Hollywood/Kit/M_Kit_pilaster.uasset | 3 - .../Hollywood/Kit/M_Kit_shopfront.uasset | 3 - .../Content/Hollywood/Kit/M_Kit_sill.uasset | 3 - .../Content/Hollywood/Kit/M_Kit_window.uasset | 3 - .../Hollywood/Kit/SM_Kit_Coping.uasset | 4 +- .../Hollywood/Kit/SM_Kit_Cornice.uasset | 4 +- .../Content/Hollywood/Kit/SM_Kit_Door.uasset | 4 +- .../Hollywood/Kit/SM_Kit_DoorJamb_L.uasset | 4 +- .../Hollywood/Kit/SM_Kit_DoorJamb_R.uasset | 4 +- .../Hollywood/Kit/SM_Kit_Lintel.uasset | 4 +- .../Hollywood/Kit/SM_Kit_Parapet.uasset | 4 +- .../Hollywood/Kit/SM_Kit_Pilaster.uasset | 4 +- .../Hollywood/Kit/SM_Kit_ShopFascia.uasset | 4 +- .../Hollywood/Kit/SM_Kit_ShopGlass.uasset | 4 +- .../Hollywood/Kit/SM_Kit_ShopPier_L.uasset | 4 +- .../Hollywood/Kit/SM_Kit_ShopPier_R.uasset | 4 +- .../Content/Hollywood/Kit/SM_Kit_Sill.uasset | 4 +- .../Hollywood/Kit/SM_Kit_Threshold.uasset | 4 +- .../Hollywood/Kit/SM_Kit_WindowBay.uasset | 4 +- .../Hollywood/Kit/SM_Kit_WindowGlass.uasset | 4 +- Game/GigLine/Content/Test/ReviewMap.umap | 2 +- Screenshots/demo/review-demo-crossing.png | 4 +- .../demo/review-demo-north-buildings.png | 4 +- Screenshots/demo/review-demo-spawn-view.png | 4 +- Screenshots/demo/review-demo-street-level.png | 4 +- Screenshots/review-character.png | 4 +- Screenshots/review-ground-contact.png | 4 +- Screenshots/review-hero-facade-front.png | 4 +- Screenshots/review-hero-facade-oblique.png | 4 +- Screenshots/review-hero-portals.png | 4 +- Screenshots/review-npc-prefab.png | 4 +- Screenshots/review-overview.png | 4 +- Screenshots/review-player-placement.png | 4 +- Screenshots/review-scale-cubes.png | 4 +- Screenshots/review-shadow-compare.png | 4 +- Tools/ue_apply_facade_kit.py | 28 ++++++- Tools/ue_import_facade_kit.py | 6 ++ 43 files changed, 176 insertions(+), 89 deletions(-) create mode 100644 Docs/qa/0.1.4-facade-qa.md delete mode 100644 Game/GigLine/Content/Hollywood/Kit/M_Kit_cornice.uasset delete mode 100644 Game/GigLine/Content/Hollywood/Kit/M_Kit_door.uasset delete mode 100644 Game/GigLine/Content/Hollywood/Kit/M_Kit_lintel.uasset delete mode 100644 Game/GigLine/Content/Hollywood/Kit/M_Kit_parapet.uasset delete mode 100644 Game/GigLine/Content/Hollywood/Kit/M_Kit_pilaster.uasset delete mode 100644 Game/GigLine/Content/Hollywood/Kit/M_Kit_shopfront.uasset delete mode 100644 Game/GigLine/Content/Hollywood/Kit/M_Kit_sill.uasset delete mode 100644 Game/GigLine/Content/Hollywood/Kit/M_Kit_window.uasset diff --git a/Docs/qa/0.1.4-facade-qa.md b/Docs/qa/0.1.4-facade-qa.md new file mode 100644 index 0000000..7a7cf0c --- /dev/null +++ b/Docs/qa/0.1.4-facade-qa.md @@ -0,0 +1,81 @@ +# QA review — `0.1.4` façade work + +Checklist gate for the façade module kit, the replacement materials and the corrected blockout frame. Written per the `qa-review` skill: budgets, the screenshots that carry the claim, defects by severity, and an explicit verdict. + +Date: 2026-11-09 · Branch: `facades-0.1.4` · Build under test: packaged `GigLineQA`, Development, UE 5.8.4, Vulkan SM5. + +## Result: SHIP WITH NOTES + +The geometry, placement and budgets are verified by measurement. The **visual** half of this review is **not** complete: nobody has looked at the rendered set since the kit went on, so the reference-match verdict is pending a human. The notes at the end are what that review has to confirm. + +## Budgets + +| Asset group | Count | Triangles | Texture | Notes | +| --- | --: | --: | --- | --- | +| Hero façade | 148 parts, 1 mesh | 3 044 | none (graph materials) | was 1 892 before the Ionic detail | +| Façade kit | 16 meshes | 12 tris each = 192 | none | boxes; complex-as-simple collision | +| Kit instances in `DemoMap` | 625 actors | ~7 500 | shared materials | 8 buildings | +| Frontage buildings | 6 meshes | blockout volumes | 8 × 512² maps | `M_FacadeStone`, `M_Stucco`, … | +| North buildings | 2 meshes | blockout volumes | shared | TCL, Tussaud's | +| Site meshes | 7 | 55 k tris (terrain-dominated) | shared | terrain/road/sidewalks/kerbs/crossing | + +Texture set: `T_StoneAshlar`, `T_Stucco`, `T_Asphalt`, `T_Concrete`, each `_BC` + `_R` at 512², deterministic and regenerable. + +## Evidence + +Behaviour, packaged build (`-qaselftest`): + +``` +walk moved 761 cm in 2 s -> PASS (Z 456 -> 456) +transect 1456 samples, 0 holes -> PASS +wall probe 0/35 blocking hits inside 21 m -> PASS +facade probe 0/9 directions without a blocking wall -> PASS +RESULT walk=1 reset=1 pause=1 unpause=1 -> PASS +``` + +Geometry and placement, probed from the live map: + +- Frontage spans match the verified block: 6922 −24276..−17700, 6902 −17749..−14591, **hero −14644..−12028 between them**, theatre −12082..−8210, 6822 −7854..−7252, 6806 −6608..−3307, 6800 −3320..−1437. North: TCL −22889..−18442, Tussaud's −27071..−22799. +- Kit placed from world bounds (`get_actor_bounds`), e.g. theatre pieces at −12082..−8694, inside the theatre's own span. +- Kit module **4.96 m**, storey **3.10 m**, door **2.45 m**, window **1.60 × 1.85 m**. +- Kit topology: 16 pieces, **all manifold**, no loose vertices, 12 tris each. +- Asset hygiene: `/Game/Hollywood/Kit` holds exactly 16 `SM_` meshes and no leftover auto-imported materials. + +Screenshots: the committed set in [`Screenshots/`](../Screenshots/README.md), all 14 re-rendered for this state — hero shots 8–10 and demo views 11–14 carry the change. + +## Defects + +### Blockers + +None outstanding. Two were found and fixed during this cycle: + +- **Wrong frame (fixed).** The `0.1.2` blockout was regenerated without `--origin`, shifting the whole frontage ≈119 m in X and 2.4 m in Y and dropping the hero out of the 6902/6838 gap. Regenerated with `--origin 34.101545,-118.338718` (affine residual 0.0 cm); spans re-verified against [`Geo/verification/2026-11-06-el-capitan-block.md`](../Geo/verification/2026-11-06-el-capitan-block.md). +- **Kit placed 12 km away (fixed).** `ue_apply_facade_kit` used the static-mesh bounding box, which is building-line-local. Now uses `get_actor_bounds()` (world space). + +### Majors + +- **Window bays were inside the solid wall (fixed).** The first piece modelled the whole bay at +Y, so every window sat inside the blockout volume and was invisible. The surround now projects 3 cm with glazing 6 cm behind its face. +- **Kit had no materials (fixed).** Pieces kept the grey `M_Kit_*` material the FBX import creates, so the glazing was not glass and the shopfronts were not stone. Assembly now assigns `M_FacadeGlass` to glazing, `M_FacadeStone` to surrounds, `M_FacadeStoneShadow` to doors and `M_FacadeBanner` to fascias. + +### Minors + +- Kit pieces are boxes: no reveals, sills or mouldings beyond the kit's own bands. Acceptable at this patch's fidelity; the kit is the vocabulary, not the detail. +- `M_Kit_*` materials are deleted at import rather than reused, so the kit's Blender materials carry no shading intent — the Unreal set is authoritative. Documented, not silent. +- Actor labels for kit pieces are unique per building but long (`Kit_elcapitantheatre_window_3_2`). + +### Notes (polish, not required for `v0.1.4`) + +- Hero fluting, and the motto band/medallions as geometry, are still pending. +- The El Capitan Theatre has no marquee or blade sign yet — the features that make it read as itself. +- Cornice dentil spacing, abacus and plinth dimensions remain recorded assumptions. + +## Not verified here + +- **Reference match.** Needs a human comparing `Screenshots/demo/*` against `Art/reference/hollywood/`. The vision pre-check is demonstrably unreliable on this content (it rejected shots the owner has since approved), so it was not used as evidence. +- **Silhouette and shading at street level** — the same review covers it. + +## Next actions + +1. Owner review of the 14 demo/review shots; record approval in `Screenshots/README.md`. +2. Then the remaining `0.1.4` modelling: theatre marquee + blade sign, hero fluting/motto band, blockout cleaning pass. +3. `CHANGELOG.md` entry and `v0.1.4` tag once (1) is signed off. diff --git a/Game/GigLine/Content/Hollywood/DemoMap.umap b/Game/GigLine/Content/Hollywood/DemoMap.umap index c0b0255..499e509 100644 --- a/Game/GigLine/Content/Hollywood/DemoMap.umap +++ b/Game/GigLine/Content/Hollywood/DemoMap.umap @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:fbbfbd1af034947cf225a95f7c093c80fc415c2520a3bc4be2d8e95e6925170a -size 921274 +oid sha256:6947def46f970b8fcd21a77312c5d9c683723d6c2443e742a41c45769cc7c009 +size 949399 diff --git a/Game/GigLine/Content/Hollywood/Kit/M_Kit_cornice.uasset b/Game/GigLine/Content/Hollywood/Kit/M_Kit_cornice.uasset deleted file mode 100644 index 817d539..0000000 --- a/Game/GigLine/Content/Hollywood/Kit/M_Kit_cornice.uasset +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:02921296aa4e2107411a29db7b2d7b07d46dc0b7b3be6fa74ffb4d6123e3e931 -size 56615 diff --git a/Game/GigLine/Content/Hollywood/Kit/M_Kit_door.uasset b/Game/GigLine/Content/Hollywood/Kit/M_Kit_door.uasset deleted file mode 100644 index f0d12b4..0000000 --- a/Game/GigLine/Content/Hollywood/Kit/M_Kit_door.uasset +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:ed76fe8a3e3fd3f2060feef885f20b4b7b4f26cc9c36c742b77957e0b8427c83 -size 56558 diff --git a/Game/GigLine/Content/Hollywood/Kit/M_Kit_lintel.uasset b/Game/GigLine/Content/Hollywood/Kit/M_Kit_lintel.uasset deleted file mode 100644 index c2effdd..0000000 --- a/Game/GigLine/Content/Hollywood/Kit/M_Kit_lintel.uasset +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:e82df3759ae16c1ace533458f0e18dba4097e92049bfdcd2e2022ad5f1158f0c -size 56596 diff --git a/Game/GigLine/Content/Hollywood/Kit/M_Kit_parapet.uasset b/Game/GigLine/Content/Hollywood/Kit/M_Kit_parapet.uasset deleted file mode 100644 index d5f0bd5..0000000 --- a/Game/GigLine/Content/Hollywood/Kit/M_Kit_parapet.uasset +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:d1cedd8b5e9faf255d1aa6194f45809d0599d13715cbaf21fdfbacc0a08758b7 -size 56604 diff --git a/Game/GigLine/Content/Hollywood/Kit/M_Kit_pilaster.uasset b/Game/GigLine/Content/Hollywood/Kit/M_Kit_pilaster.uasset deleted file mode 100644 index de12c7e..0000000 --- a/Game/GigLine/Content/Hollywood/Kit/M_Kit_pilaster.uasset +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:8db53e9022174775a2bd23cb08538f6ed2a3ef376c0f3ede3028580bb3e1b57b -size 56634 diff --git a/Game/GigLine/Content/Hollywood/Kit/M_Kit_shopfront.uasset b/Game/GigLine/Content/Hollywood/Kit/M_Kit_shopfront.uasset deleted file mode 100644 index 1c88810..0000000 --- a/Game/GigLine/Content/Hollywood/Kit/M_Kit_shopfront.uasset +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:2acb6664dce7be4e009fc986a0c35d7723c0063b8de80e0d1270ea4c33da1553 -size 56656 diff --git a/Game/GigLine/Content/Hollywood/Kit/M_Kit_sill.uasset b/Game/GigLine/Content/Hollywood/Kit/M_Kit_sill.uasset deleted file mode 100644 index 36eaf05..0000000 --- a/Game/GigLine/Content/Hollywood/Kit/M_Kit_sill.uasset +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:0b347bb058b46f29d49d75388988faa08a6484663d384b7599260174105be46a -size 56569 diff --git a/Game/GigLine/Content/Hollywood/Kit/M_Kit_window.uasset b/Game/GigLine/Content/Hollywood/Kit/M_Kit_window.uasset deleted file mode 100644 index 522110f..0000000 --- a/Game/GigLine/Content/Hollywood/Kit/M_Kit_window.uasset +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:8a810125b00d7ac8fb3186c7d0c4e6da0579ce05de267c8800514ef2840c8f31 -size 56616 diff --git a/Game/GigLine/Content/Hollywood/Kit/SM_Kit_Coping.uasset b/Game/GigLine/Content/Hollywood/Kit/SM_Kit_Coping.uasset index 99f2aab..3f4f2b2 100644 --- a/Game/GigLine/Content/Hollywood/Kit/SM_Kit_Coping.uasset +++ b/Game/GigLine/Content/Hollywood/Kit/SM_Kit_Coping.uasset @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:24a967d6e43238db6972d0488e0680e5b529f0ecc13b0fe94d7c460173073fe9 -size 68736 +oid sha256:9715cd044fb50b721cfb34a9b89e144ed63d4afd45047deb6cc8d04fea0b61ea +size 72195 diff --git a/Game/GigLine/Content/Hollywood/Kit/SM_Kit_Cornice.uasset b/Game/GigLine/Content/Hollywood/Kit/SM_Kit_Cornice.uasset index ea90c73..fc0d09d 100644 --- a/Game/GigLine/Content/Hollywood/Kit/SM_Kit_Cornice.uasset +++ b/Game/GigLine/Content/Hollywood/Kit/SM_Kit_Cornice.uasset @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:d7aea26e6c397c7cdb68392ea7d314c517e94712361095b738fdcf7f0db25757 -size 68745 +oid sha256:61ca4e7c9da1c3d75e09bfc12d72dcea4e014d19c80acb75a0d550ca46936564 +size 72206 diff --git a/Game/GigLine/Content/Hollywood/Kit/SM_Kit_Door.uasset b/Game/GigLine/Content/Hollywood/Kit/SM_Kit_Door.uasset index 610ec2e..1773f02 100644 --- a/Game/GigLine/Content/Hollywood/Kit/SM_Kit_Door.uasset +++ b/Game/GigLine/Content/Hollywood/Kit/SM_Kit_Door.uasset @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:cd344a450dc99e9e21808967b33b2a785da75f90c4a0b29d6458612013a2bb6a -size 68621 +oid sha256:047ebceefc66501c7b37f279edabc751308dae32af3a6724ff3aa1e3295ed930 +size 72097 diff --git a/Game/GigLine/Content/Hollywood/Kit/SM_Kit_DoorJamb_L.uasset b/Game/GigLine/Content/Hollywood/Kit/SM_Kit_DoorJamb_L.uasset index 460b603..4591cc1 100644 --- a/Game/GigLine/Content/Hollywood/Kit/SM_Kit_DoorJamb_L.uasset +++ b/Game/GigLine/Content/Hollywood/Kit/SM_Kit_DoorJamb_L.uasset @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:1c581fb39f3017d38b0a84451049242d7f465750afa24d5986c2e98717d15598 -size 68806 +oid sha256:25b2e6cef34d45635abe577d8c5556f520797d6d2a2dd557322343e9427c47ec +size 72223 diff --git a/Game/GigLine/Content/Hollywood/Kit/SM_Kit_DoorJamb_R.uasset b/Game/GigLine/Content/Hollywood/Kit/SM_Kit_DoorJamb_R.uasset index 2a16d39..24b14a0 100644 --- a/Game/GigLine/Content/Hollywood/Kit/SM_Kit_DoorJamb_R.uasset +++ b/Game/GigLine/Content/Hollywood/Kit/SM_Kit_DoorJamb_R.uasset @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:6637ffd140dd2ba4c35d971df289c40e371ecfcad7c89fe7f98be37eba5a9192 -size 68815 +oid sha256:8d541bff40babb0fe6ffafd7c8ed287f687aec7b8c077a831b4ff51864a2e9f9 +size 72232 diff --git a/Game/GigLine/Content/Hollywood/Kit/SM_Kit_Lintel.uasset b/Game/GigLine/Content/Hollywood/Kit/SM_Kit_Lintel.uasset index 8d0e368..da5eb25 100644 --- a/Game/GigLine/Content/Hollywood/Kit/SM_Kit_Lintel.uasset +++ b/Game/GigLine/Content/Hollywood/Kit/SM_Kit_Lintel.uasset @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:cefb4896f71f931e75b22f772ef02714d38001f38118eaf6fcab75e842e03664 -size 68699 +oid sha256:56aa941fb6f73bad72990525d9e295ad35e7f5bcceb13bf57e1fa29102ad4a4a +size 72167 diff --git a/Game/GigLine/Content/Hollywood/Kit/SM_Kit_Parapet.uasset b/Game/GigLine/Content/Hollywood/Kit/SM_Kit_Parapet.uasset index 45a4a55..ff5a6f8 100644 --- a/Game/GigLine/Content/Hollywood/Kit/SM_Kit_Parapet.uasset +++ b/Game/GigLine/Content/Hollywood/Kit/SM_Kit_Parapet.uasset @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:ab0c6b4c67c740ea4d0d9bf767bf30d35b0056a96b8911baaa24c39fbceb6a32 -size 68803 +oid sha256:4b6cc365209fd95cb5e14efb3bfbd0f0f7066859366c902e82b19429dd03f7be +size 72195 diff --git a/Game/GigLine/Content/Hollywood/Kit/SM_Kit_Pilaster.uasset b/Game/GigLine/Content/Hollywood/Kit/SM_Kit_Pilaster.uasset index d34df84..dd49efb 100644 --- a/Game/GigLine/Content/Hollywood/Kit/SM_Kit_Pilaster.uasset +++ b/Game/GigLine/Content/Hollywood/Kit/SM_Kit_Pilaster.uasset @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:6242668e209a5801a93a2482c291d2417320545853d6aa363797f5b8fa74db27 -size 68785 +oid sha256:820b4602361c56c7b827366ae97dc9bc5cfaf75cf741fb6f82549bf32349c1c8 +size 72243 diff --git a/Game/GigLine/Content/Hollywood/Kit/SM_Kit_ShopFascia.uasset b/Game/GigLine/Content/Hollywood/Kit/SM_Kit_ShopFascia.uasset index 838bf32..4784b91 100644 --- a/Game/GigLine/Content/Hollywood/Kit/SM_Kit_ShopFascia.uasset +++ b/Game/GigLine/Content/Hollywood/Kit/SM_Kit_ShopFascia.uasset @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:d30784e60c2c14e1c6df5bb3640564309cac13e9301d498a49d98080740625dd -size 68867 +oid sha256:8a091d1c252f4b043c8f942836b37e59bf4ee6071da8e2650be3c5a9b3b4bf13 +size 72322 diff --git a/Game/GigLine/Content/Hollywood/Kit/SM_Kit_ShopGlass.uasset b/Game/GigLine/Content/Hollywood/Kit/SM_Kit_ShopGlass.uasset index e3a0de7..f884da3 100644 --- a/Game/GigLine/Content/Hollywood/Kit/SM_Kit_ShopGlass.uasset +++ b/Game/GigLine/Content/Hollywood/Kit/SM_Kit_ShopGlass.uasset @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:d630d6685a991b529943fa90ddf2da1e1219749351ea27d2d23b2d091b685af3 -size 68921 +oid sha256:079087512346f82c9e5c2d6d0c715ef09903e70aec945520b76ffdb79b19b82b +size 72303 diff --git a/Game/GigLine/Content/Hollywood/Kit/SM_Kit_ShopPier_L.uasset b/Game/GigLine/Content/Hollywood/Kit/SM_Kit_ShopPier_L.uasset index d418592..ea3f552 100644 --- a/Game/GigLine/Content/Hollywood/Kit/SM_Kit_ShopPier_L.uasset +++ b/Game/GigLine/Content/Hollywood/Kit/SM_Kit_ShopPier_L.uasset @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:a5dde20d12e36a3b7f4b5ec106e9a33ec41ad46085e3af37f1311d9f0b89f711 -size 68935 +oid sha256:5b5fc921a674df50b764df1a1b8e5f8d45ee361381fd927f280316e99b3d139e +size 72317 diff --git a/Game/GigLine/Content/Hollywood/Kit/SM_Kit_ShopPier_R.uasset b/Game/GigLine/Content/Hollywood/Kit/SM_Kit_ShopPier_R.uasset index e1fc479..2f8d84a 100644 --- a/Game/GigLine/Content/Hollywood/Kit/SM_Kit_ShopPier_R.uasset +++ b/Game/GigLine/Content/Hollywood/Kit/SM_Kit_ShopPier_R.uasset @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:8caec9e46509ecf86a9db5cd6223e0bb7cedbb24c2a37e2984fdb9618146d957 -size 68943 +oid sha256:3e0b4591b422089581eea7c58bf52cee4f513bbabdc787c1da5fc4e9b4b71d8b +size 72325 diff --git a/Game/GigLine/Content/Hollywood/Kit/SM_Kit_Sill.uasset b/Game/GigLine/Content/Hollywood/Kit/SM_Kit_Sill.uasset index ba5f888..aba93da 100644 --- a/Game/GigLine/Content/Hollywood/Kit/SM_Kit_Sill.uasset +++ b/Game/GigLine/Content/Hollywood/Kit/SM_Kit_Sill.uasset @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:8865430ad2e41d119ae2e672dcbabdbde86ae7700e3593a0b273a6c32d6b3393 -size 68625 +oid sha256:a27b1e21404322d5647a64218560e41ea89fc359bb410944484b9e637964faf1 +size 72093 diff --git a/Game/GigLine/Content/Hollywood/Kit/SM_Kit_Threshold.uasset b/Game/GigLine/Content/Hollywood/Kit/SM_Kit_Threshold.uasset index d47e65f..e7adfbc 100644 --- a/Game/GigLine/Content/Hollywood/Kit/SM_Kit_Threshold.uasset +++ b/Game/GigLine/Content/Hollywood/Kit/SM_Kit_Threshold.uasset @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:94e6600ffbb9d23db677edec86c74cbc3a656fdd4202b8ab31e71f939e75a606 -size 68796 +oid sha256:cdc210539a17a7cacd8f3968187f0504989a9d5c2485bd9d1220a45e8e3e219a +size 72203 diff --git a/Game/GigLine/Content/Hollywood/Kit/SM_Kit_WindowBay.uasset b/Game/GigLine/Content/Hollywood/Kit/SM_Kit_WindowBay.uasset index 8c16c0f..05dbbb8 100644 --- a/Game/GigLine/Content/Hollywood/Kit/SM_Kit_WindowBay.uasset +++ b/Game/GigLine/Content/Hollywood/Kit/SM_Kit_WindowBay.uasset @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:ae9378547a617f8d289e9d366fbd2de212003b969eba30d63f353e9b177974f7 -size 68782 +oid sha256:30bab2b7807153d2a534888cbe5fb7b0e71dd329623e7d6212fa2ab26d6f5028 +size 72254 diff --git a/Game/GigLine/Content/Hollywood/Kit/SM_Kit_WindowGlass.uasset b/Game/GigLine/Content/Hollywood/Kit/SM_Kit_WindowGlass.uasset index 1898dfd..18d562e 100644 --- a/Game/GigLine/Content/Hollywood/Kit/SM_Kit_WindowGlass.uasset +++ b/Game/GigLine/Content/Hollywood/Kit/SM_Kit_WindowGlass.uasset @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:75136218a7a7f8a5dca24059d121aaee146e091065f4912283888789e48022d9 -size 68888 +oid sha256:82c63da22750af7b3181160f4a4c7909c81065ffa117341a59f3ff378b73e39c +size 72293 diff --git a/Game/GigLine/Content/Test/ReviewMap.umap b/Game/GigLine/Content/Test/ReviewMap.umap index 36d3351..cb2a9be 100644 --- a/Game/GigLine/Content/Test/ReviewMap.umap +++ b/Game/GigLine/Content/Test/ReviewMap.umap @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:ba861bcf0740c9deeacda9c8d8696229550aaa699a89c0ad03ab4dac3ae23f8b +oid sha256:a6f170a72a1c3c220b9e52a1c2099d6bcd3dc96dc640038cef039b2c41f5fdaf size 28811 diff --git a/Screenshots/demo/review-demo-crossing.png b/Screenshots/demo/review-demo-crossing.png index f1d9975..4d9596d 100644 --- a/Screenshots/demo/review-demo-crossing.png +++ b/Screenshots/demo/review-demo-crossing.png @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:1ff0f9b141a0382bbeafcc490d24b4c57b9254066ff92f4bc01eab88231d1e24 -size 2943229 +oid sha256:f105779e16a28cfe166df9efd3c98c38f71875380ab1fae1ff2e160ff510f1e1 +size 3078975 diff --git a/Screenshots/demo/review-demo-north-buildings.png b/Screenshots/demo/review-demo-north-buildings.png index cc698e7..5c7a939 100644 --- a/Screenshots/demo/review-demo-north-buildings.png +++ b/Screenshots/demo/review-demo-north-buildings.png @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:1c515718d963677c6a188525ca81623bfd5669420ea6920e959ef1b49834561d -size 2062307 +oid sha256:05861cdcb4e67da8e2fc257e95c3345fb4f6ff37fcf37bc2fc6d454822cc82cf +size 2443779 diff --git a/Screenshots/demo/review-demo-spawn-view.png b/Screenshots/demo/review-demo-spawn-view.png index 33950b5..99b4ab2 100644 --- a/Screenshots/demo/review-demo-spawn-view.png +++ b/Screenshots/demo/review-demo-spawn-view.png @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:39620fefe8998636484ce1c33e0a517c1a76895cc8473fa539506857b1899450 -size 2807810 +oid sha256:2788f8c6e57fa0bc2076fd9febf1ef632ebfbe5bceae9aa0b8d71b49ef705914 +size 2914546 diff --git a/Screenshots/demo/review-demo-street-level.png b/Screenshots/demo/review-demo-street-level.png index 8deec71..516869b 100644 --- a/Screenshots/demo/review-demo-street-level.png +++ b/Screenshots/demo/review-demo-street-level.png @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:dc157c01ec636ad853321547e50a2350eb6a0baaa5ae3d2ecb3d701640381ef1 -size 2745389 +oid sha256:5ebcc70ac33b142657ba96a6165559be98a4c6e66b5fdb414f9e9f60115f22c6 +size 2864294 diff --git a/Screenshots/review-character.png b/Screenshots/review-character.png index 5e276a4..575f9ef 100644 --- a/Screenshots/review-character.png +++ b/Screenshots/review-character.png @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:7622f28548a97c011b79bd17fb2789237e4734a84e21a2c581029b55bc0ceb7b -size 2759479 +oid sha256:cb9307133d8f02dcc4da2f4e3b91588f57244f6d5cbb7ab6f2e755dc65021f20 +size 2538731 diff --git a/Screenshots/review-ground-contact.png b/Screenshots/review-ground-contact.png index a23dc45..c822d56 100644 --- a/Screenshots/review-ground-contact.png +++ b/Screenshots/review-ground-contact.png @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:eee3bdf636a502f17287b2ddd0ff7737c05793c5dd13dd32b75280b3a4c716f9 -size 1823902 +oid sha256:2bfbe4847a98fdbc42050406d4b26569bf910f5376994eeea3d646e71e0f36d5 +size 1748441 diff --git a/Screenshots/review-hero-facade-front.png b/Screenshots/review-hero-facade-front.png index 39a18e3..715236c 100644 --- a/Screenshots/review-hero-facade-front.png +++ b/Screenshots/review-hero-facade-front.png @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:dc44f5ae5ec115819983f4c447d785126992e69052e28ff65128ce2a640611d8 -size 2489898 +oid sha256:b1dfe09f9de990c18fab1f9289119f6a98566523168b746c408d2da1aca8203c +size 2283522 diff --git a/Screenshots/review-hero-facade-oblique.png b/Screenshots/review-hero-facade-oblique.png index f10be93..5a4f65e 100644 --- a/Screenshots/review-hero-facade-oblique.png +++ b/Screenshots/review-hero-facade-oblique.png @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:895f0878afd3fff9af2aa42ac5d1d8a0937aea2a4c48ddd6f086ef270fc4fd6c -size 1475854 +oid sha256:ee46da9476f90434c8a676d0d4726f9bc4543d72d22b5db44493b44072ed8729 +size 1518947 diff --git a/Screenshots/review-hero-portals.png b/Screenshots/review-hero-portals.png index d9a6002..ff90639 100644 --- a/Screenshots/review-hero-portals.png +++ b/Screenshots/review-hero-portals.png @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:83b2c83c5a1f7f8afbfdfc21d083250b7533f2f1dcec49dcb5c90e117981ab6b -size 1364141 +oid sha256:cd2350c9bf572a05cd7323368a3f435b7dea5b1daaa530f9512bfea1314c79f1 +size 1328667 diff --git a/Screenshots/review-npc-prefab.png b/Screenshots/review-npc-prefab.png index 581a127..239857d 100644 --- a/Screenshots/review-npc-prefab.png +++ b/Screenshots/review-npc-prefab.png @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:f2e6cf03fb638db8c7f12562c546a8100e50d3aa19260da07aec889792df6ce4 -size 1802790 +oid sha256:555db441a3a709057db8f61b367772d5b0b8148391be3299a60f6c13bd05ac20 +size 1736426 diff --git a/Screenshots/review-overview.png b/Screenshots/review-overview.png index 673ec77..936cdc2 100644 --- a/Screenshots/review-overview.png +++ b/Screenshots/review-overview.png @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:0b2e77285a958881ef4a2c72b960e122458e45dfd4efbe73d79b8190df9f7221 -size 2395221 +oid sha256:42eeaadb8795d84af81931b13fe4644601e8aadf33539b02d171e86730dc8269 +size 2622214 diff --git a/Screenshots/review-player-placement.png b/Screenshots/review-player-placement.png index 6ddec72..887dc65 100644 --- a/Screenshots/review-player-placement.png +++ b/Screenshots/review-player-placement.png @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:87cdc11f8b3bb37429d87922834d274afbb8a405bead088bf723249b984fa788 -size 2212624 +oid sha256:ffb788897558080e8100cdf174b0998f6b69ea4ffe0bf3d25a79d94f6aafb3d8 +size 2026302 diff --git a/Screenshots/review-scale-cubes.png b/Screenshots/review-scale-cubes.png index 69afbf8..7a713c0 100644 --- a/Screenshots/review-scale-cubes.png +++ b/Screenshots/review-scale-cubes.png @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:e1e49774d2bfa0a6240461c2adee32c518af1728a27f20f280014e2248d13683 -size 2144961 +oid sha256:bae1665389a83d7c7b7339ba626dd1eb5362322f3c4c05c93c5808aaa1fd4014 +size 1934977 diff --git a/Screenshots/review-shadow-compare.png b/Screenshots/review-shadow-compare.png index d97501e..e0a75c2 100644 --- a/Screenshots/review-shadow-compare.png +++ b/Screenshots/review-shadow-compare.png @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:2b2e9f62cb797028d2cbbb31e49cab6829ffe7a060f525d7b044dcf41d625cfc -size 1844130 +oid sha256:23457d81639ea5dcdb4fdea9af0a424a968f25b3559c30da5ede45355c6eac66 +size 1722925 diff --git a/Tools/ue_apply_facade_kit.py b/Tools/ue_apply_facade_kit.py index f332d3c..5606b91 100644 --- a/Tools/ue_apply_facade_kit.py +++ b/Tools/ue_apply_facade_kit.py @@ -31,6 +31,18 @@ import ue_common # noqa: E402 KIT = "/Game/Hollywood/Kit" RESULT = "/tmp/gigline/kit-apply.txt" +# Material per kit piece. Without this the pieces keep the grey material the FBX +# import creates (M_Kit_*), so the glazing is not glass and the shopfronts are not +# stone - the kit reads as a plastic scaffold over the buildings. +KIT_MATERIALS = { + "Kit_WindowGlass": "M_FacadeGlass", + "Kit_ShopGlass": "M_FacadeGlass", + "Kit_Door": "M_FacadeStoneShadow", + "Kit_WindowBay": "M_FacadeStone", + "Kit_ShopFascia": "M_FacadeBanner", +} +KIT_MATERIAL_FALLBACK = "M_FacadeStone" + BAY_CM = 496.0 # the kit module STOREY_CM = 310.0 SHOP_FLOOR_CM = 310.0 # ground floor is one storey tall @@ -119,7 +131,10 @@ def apply_to_actor(actor, kit, materials=None, prefix=None): storeys = max(1, int((height - SHOP_FLOOR_CM) // STOREY_CM)) def kit_material(name): - return (materials or {}).get(name) + if materials is None: + return None + want = KIT_MATERIALS.get(name, KIT_MATERIAL_FALLBACK) + return materials.get(want) placed = 0 for bay in range(bays): @@ -177,6 +192,15 @@ def main() -> None: return log(f"kit meshes: {len(kit)}") + # Site materials built by Tools/ue_build_demo_map.py. + materials = {} + for name in ("M_FacadeStone", "M_FacadeStoneShadow", "M_FacadeGlass", + "M_FacadeBanner", "M_Stucco", "M_Concrete"): + asset = unreal.EditorAssetLibrary.load_asset(f"/Game/Hollywood/Site/{name}") + if asset: + materials[name] = asset + log(f"kit materials resolved: {len(materials)}/6") + level = "/Game/Hollywood/DemoMap" if not unreal.EditorLevelLibrary.load_level(level): log(f"could not load {level}") @@ -198,7 +222,7 @@ def main() -> None: log(f"frontage actors: {len(targets)}") total = 0 for actor in targets: - total += apply_to_actor(actor, kit) + total += apply_to_actor(actor, kit, materials) log(f"placed {total} kit pieces") saved = unreal.EditorLoadingAndSavingUtils.save_map( diff --git a/Tools/ue_import_facade_kit.py b/Tools/ue_import_facade_kit.py index a8742f1..a3d50e1 100644 --- a/Tools/ue_import_facade_kit.py +++ b/Tools/ue_import_facade_kit.py @@ -83,6 +83,12 @@ def main() -> None: if mesh is None: log(f"{asset_name}: IMPORT FAILED") continue + # The FBX import also creates an M_Kit_* material per piece. The demo + # assigns real site materials at assembly time, so those are clutter. + for slot in mesh.get_editor_property("static_materials"): + mat = slot.get_editor_property("material_interface") + if mat and mat.get_name().startswith("M_Kit_"): + unreal.EditorAssetLibrary.delete_asset(mat.get_path_name().split(".")[0]) unreal.GigLineAssetTools.set_complex_collision_as_simple(mesh, True) unreal.EditorAssetLibrary.save_loaded_asset(mesh) box = mesh.get_bounding_box()