diff --git a/Game/GigLine/Content/Hollywood/DemoMap.umap b/Game/GigLine/Content/Hollywood/DemoMap.umap index e734bfc..793795e 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:0d6d69622d2135200c91e09decfe462e93b416bcbad430cb7e8ce5df4368b83c -size 781795 +oid sha256:3cadf24b327116118550a7fb62dd6cc1cc748e152959ed2cdcf3a1de64bb4bb0 +size 781914 diff --git a/Game/GigLine/Content/Hollywood/Site/M_Asphalt.uasset b/Game/GigLine/Content/Hollywood/Site/M_Asphalt.uasset index fe6cb0f..fa2a3e5 100644 --- a/Game/GigLine/Content/Hollywood/Site/M_Asphalt.uasset +++ b/Game/GigLine/Content/Hollywood/Site/M_Asphalt.uasset @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:3fb76d8de906114912d8d5fe6e5cccd5f661eaf7bd644f9d32a5a4a122bedc4d +oid sha256:fcf355af961bd5f0c50d9dd5f9f680e64ad23327cd4934831a0c23644b3af20c size 10019 diff --git a/Game/GigLine/Content/Hollywood/Site/M_Concrete.uasset b/Game/GigLine/Content/Hollywood/Site/M_Concrete.uasset index 25741c9..10f810e 100644 --- a/Game/GigLine/Content/Hollywood/Site/M_Concrete.uasset +++ b/Game/GigLine/Content/Hollywood/Site/M_Concrete.uasset @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:83c4ce0706040145c130664a8098614a8022e9deb814b4a281098cc81b340b4c +oid sha256:fe5db22b218b38420b546ee75e1f10128f3735ff9679ec42350405cc741bc55f size 10024 diff --git a/Game/GigLine/Content/Hollywood/Site/M_FacadeBanner.uasset b/Game/GigLine/Content/Hollywood/Site/M_FacadeBanner.uasset index 64c183f..ea83fb9 100644 --- a/Game/GigLine/Content/Hollywood/Site/M_FacadeBanner.uasset +++ b/Game/GigLine/Content/Hollywood/Site/M_FacadeBanner.uasset @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:1926a4806a096dca5ac226f0104df86adfe5861639ca31159192e392619f7e0a +oid sha256:8396d7101a43df58b845b2c9fdf745c11ed8aa8d2703f603fde038ae37472765 size 11419 diff --git a/Game/GigLine/Content/Hollywood/Site/M_FacadeGlass.uasset b/Game/GigLine/Content/Hollywood/Site/M_FacadeGlass.uasset index 2eee7c5..fe9c91f 100644 --- a/Game/GigLine/Content/Hollywood/Site/M_FacadeGlass.uasset +++ b/Game/GigLine/Content/Hollywood/Site/M_FacadeGlass.uasset @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:1371c411f28b429836bea1000d8bd45317385e89fadb65229c6d5e30ad8deafa +oid sha256:c07c6cd2ebe7f984196757043e6c16a092a154b7dae33b8c3f11113a78e42fd2 size 11414 diff --git a/Game/GigLine/Content/Hollywood/Site/M_FacadeStone.uasset b/Game/GigLine/Content/Hollywood/Site/M_FacadeStone.uasset index 87483be..810d776 100644 --- a/Game/GigLine/Content/Hollywood/Site/M_FacadeStone.uasset +++ b/Game/GigLine/Content/Hollywood/Site/M_FacadeStone.uasset @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:3bce906bf91b38622e821768ec39b18e628e6362eb8f32c591c7896692662df6 -size 17168 +oid sha256:3229e39839dfd7cfbe787cddc4337399ecfb7bc25c1364057db38cfd34d07c5b +size 17083 diff --git a/Game/GigLine/Content/Hollywood/Site/M_FacadeStoneShadow.uasset b/Game/GigLine/Content/Hollywood/Site/M_FacadeStoneShadow.uasset index 947e285..de97c69 100644 --- a/Game/GigLine/Content/Hollywood/Site/M_FacadeStoneShadow.uasset +++ b/Game/GigLine/Content/Hollywood/Site/M_FacadeStoneShadow.uasset @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:90a31499a481fbb8efeb5d5f30aa5c1beb6ca3afa91c1a154e689e2a55c49345 -size 17198 +oid sha256:8dd4749d4946a34cd333320d098887843040765651273e336804b819880994ee +size 17113 diff --git a/Game/GigLine/Content/Hollywood/Site/M_Ground.uasset b/Game/GigLine/Content/Hollywood/Site/M_Ground.uasset index adc5f84..c23ffe8 100644 --- a/Game/GigLine/Content/Hollywood/Site/M_Ground.uasset +++ b/Game/GigLine/Content/Hollywood/Site/M_Ground.uasset @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:fe37d1ab7c4d2f3621f7993c1dfdb0f062398b589ee8a5c3aace444a9417f66e +oid sha256:a9c8cc98384edbe2df0ab772f790310047339159346fb11ad4c7b86a82bea132 size 10014 diff --git a/Game/GigLine/Content/Hollywood/Site/M_KerbConcrete.uasset b/Game/GigLine/Content/Hollywood/Site/M_KerbConcrete.uasset index 0d2e7a9..0b90a35 100644 --- a/Game/GigLine/Content/Hollywood/Site/M_KerbConcrete.uasset +++ b/Game/GigLine/Content/Hollywood/Site/M_KerbConcrete.uasset @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:234d60830b619bc25f6ea9ddbcc192e462409629c5e17a121879569ee5cc01bb +oid sha256:c6934516f42a8539d7a9e37b4386a3746be9eec4cb18feabe433d1126e9cf4c4 size 10044 diff --git a/Game/GigLine/Content/Hollywood/Site/M_RoadPaint.uasset b/Game/GigLine/Content/Hollywood/Site/M_RoadPaint.uasset index 8363427..0d2b0d7 100644 --- a/Game/GigLine/Content/Hollywood/Site/M_RoadPaint.uasset +++ b/Game/GigLine/Content/Hollywood/Site/M_RoadPaint.uasset @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:90ebf4aa1f81ee4935afa7b683d574ea07fffb6860cc2b3a8cedbed826888c4f +oid sha256:ad2e8ec104f49d612d66b54e7af742ac1041b9dd8572083c252b7011c0438101 size 10029 diff --git a/Game/GigLine/Content/Hollywood/Site/M_Stucco.uasset b/Game/GigLine/Content/Hollywood/Site/M_Stucco.uasset index 40bde8e..a9067fe 100644 --- a/Game/GigLine/Content/Hollywood/Site/M_Stucco.uasset +++ b/Game/GigLine/Content/Hollywood/Site/M_Stucco.uasset @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:288b925a6c4207632777e5c13190345ba5e028ad2e675e34c32c99815f68cecb +oid sha256:a09613d3a4f47fb6532e402061acc3510265896b3bff90167943387a32c5addc size 11389 diff --git a/Game/GigLine/Content/Hollywood/Site/Terrain_DEM.uasset b/Game/GigLine/Content/Hollywood/Site/Terrain_DEM.uasset index ca32959..4759c46 100644 --- a/Game/GigLine/Content/Hollywood/Site/Terrain_DEM.uasset +++ b/Game/GigLine/Content/Hollywood/Site/Terrain_DEM.uasset @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:1d7eac1b72eb0165f70af81739f992156409a0be1d5f0423f9e66c1d0f2ed381 +oid sha256:cdd2cde3bfdbc117cd0445d61c68659f8924ed794df9e61cedc466b5bb97c1ae size 357901 diff --git a/Game/GigLine/Content/Hollywood/Textures/T_Asphalt_BC.uasset b/Game/GigLine/Content/Hollywood/Textures/T_Asphalt_BC.uasset index 552ac30..01702ac 100644 --- a/Game/GigLine/Content/Hollywood/Textures/T_Asphalt_BC.uasset +++ b/Game/GigLine/Content/Hollywood/Textures/T_Asphalt_BC.uasset @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:a071c19c111adaebfc466dd12bb94cb79510846a670720bd8e3df7b12b8ca051 +oid sha256:b1e00754bcb7fb131a40c9a162bf0dfc0c1a0b9a84718e121e715ed4f2d4d9ab size 70879 diff --git a/Game/GigLine/Content/Hollywood/Textures/T_Asphalt_R.uasset b/Game/GigLine/Content/Hollywood/Textures/T_Asphalt_R.uasset index f2c4f7a..06d4b3b 100644 --- a/Game/GigLine/Content/Hollywood/Textures/T_Asphalt_R.uasset +++ b/Game/GigLine/Content/Hollywood/Textures/T_Asphalt_R.uasset @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:53353dae2b3d37e609a7c79ce8c7c0ee1239386da5aa0ac16b5e4c1b177ad616 +oid sha256:2f717ded45c8aaf50861582119ce524061947bf05a36f7e335f657f193f5c6e0 size 29011 diff --git a/Game/GigLine/Content/Hollywood/Textures/T_Concrete_BC.uasset b/Game/GigLine/Content/Hollywood/Textures/T_Concrete_BC.uasset index 7a4d7d3..d1db955 100644 --- a/Game/GigLine/Content/Hollywood/Textures/T_Concrete_BC.uasset +++ b/Game/GigLine/Content/Hollywood/Textures/T_Concrete_BC.uasset @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:65a2605304ecc6c11c8a7039411bb02d315e6dadbac8b8c76a4fe48c102b31a1 +oid sha256:b6ed6dcdcacec001b0407ac7b06d7a28244a0b95ebc6ff1592047b7a2f25f8dc size 58568 diff --git a/Game/GigLine/Content/Hollywood/Textures/T_Concrete_R.uasset b/Game/GigLine/Content/Hollywood/Textures/T_Concrete_R.uasset index 80e6b8e..79e20bc 100644 --- a/Game/GigLine/Content/Hollywood/Textures/T_Concrete_R.uasset +++ b/Game/GigLine/Content/Hollywood/Textures/T_Concrete_R.uasset @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:41d659ccf84e1d3a7bfae39164958cbff7540660ae7066aafd061299e0bd05a0 +oid sha256:9e5a34257578275ea6943266ab22676e0da79945fb9f49f581620786564ebe3b size 17517 diff --git a/Game/GigLine/Content/Hollywood/Textures/T_StoneAshlar_BC.uasset b/Game/GigLine/Content/Hollywood/Textures/T_StoneAshlar_BC.uasset index 0eb1f34..8321fd1 100644 --- a/Game/GigLine/Content/Hollywood/Textures/T_StoneAshlar_BC.uasset +++ b/Game/GigLine/Content/Hollywood/Textures/T_StoneAshlar_BC.uasset @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:2c021ab82a3e28c055cc67b948646a168c60799388d6c4e8899fa844a9ae5fa9 +oid sha256:e03c186726d7384eec66a3cd4ded3f6c907b1c64793a2daa999a5558c61c053e size 40610 diff --git a/Game/GigLine/Content/Hollywood/Textures/T_StoneAshlar_R.uasset b/Game/GigLine/Content/Hollywood/Textures/T_StoneAshlar_R.uasset index 253e4e0..9ebb467 100644 --- a/Game/GigLine/Content/Hollywood/Textures/T_StoneAshlar_R.uasset +++ b/Game/GigLine/Content/Hollywood/Textures/T_StoneAshlar_R.uasset @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:1ae2847b7459749bf312fe1ca4876660ea14eaa8abfdf35f531948c96fb6733a +oid sha256:ac2fce195bfc270b86810c906bc37dae592797fa4c3cf4fa02a005dfb26db446 size 18770 diff --git a/Game/GigLine/Content/Hollywood/Textures/T_Stucco_BC.uasset b/Game/GigLine/Content/Hollywood/Textures/T_Stucco_BC.uasset index b807bb7..8c4d274 100644 --- a/Game/GigLine/Content/Hollywood/Textures/T_Stucco_BC.uasset +++ b/Game/GigLine/Content/Hollywood/Textures/T_Stucco_BC.uasset @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:d08632fa729287eec03db544758715677ed22dbb86ae31129d8f00579b895bc1 +oid sha256:ad13b6b085fafb13723adf631d4fdd0b1dd4a118d50607d8d87af5d67f5d1921 size 62746 diff --git a/Game/GigLine/Content/Hollywood/Textures/T_Stucco_R.uasset b/Game/GigLine/Content/Hollywood/Textures/T_Stucco_R.uasset index d8db282..1e69c24 100644 --- a/Game/GigLine/Content/Hollywood/Textures/T_Stucco_R.uasset +++ b/Game/GigLine/Content/Hollywood/Textures/T_Stucco_R.uasset @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:543dc4b621d0bb3b5067d33aa503ddb00498465cceec1fa0c0082ee6c9ec8b92 +oid sha256:1a17fc39a2a9b8b0e0f5103857876173a766c9db26e3334bd5d2b0e06657550c size 17541 diff --git a/Game/GigLine/Content/Hollywood/Theatre/SM_Trim_BladeSign.uasset b/Game/GigLine/Content/Hollywood/Theatre/SM_Trim_BladeSign.uasset index 474cbdb..3d1dc5e 100644 --- a/Game/GigLine/Content/Hollywood/Theatre/SM_Trim_BladeSign.uasset +++ b/Game/GigLine/Content/Hollywood/Theatre/SM_Trim_BladeSign.uasset @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:5ab8c2326cb8d12c02a0d74896994dfd3d19974cb59da6487e41484399d5394d +oid sha256:36649be3dd41c043f68494ac8dbcfd2bb85e735f8665ce1e3c45f2672a109d3e size 72330 diff --git a/Game/GigLine/Content/Hollywood/Theatre/SM_Trim_BladeSignBracket.uasset b/Game/GigLine/Content/Hollywood/Theatre/SM_Trim_BladeSignBracket.uasset index 44a4f0b..ad862cd 100644 --- a/Game/GigLine/Content/Hollywood/Theatre/SM_Trim_BladeSignBracket.uasset +++ b/Game/GigLine/Content/Hollywood/Theatre/SM_Trim_BladeSignBracket.uasset @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:43288f8565f631cfa95e372aa0914ad87e3e3b84bc03384882b778f53308f1a8 +oid sha256:affc4a3580c12d372f03bfcaae78543739bf4e8cb5d234b1c2273357b1451035 size 72466 diff --git a/Game/GigLine/Content/Hollywood/Theatre/SM_Trim_BladeSignFrame.uasset b/Game/GigLine/Content/Hollywood/Theatre/SM_Trim_BladeSignFrame.uasset index ca163ef..069a7fa 100644 --- a/Game/GigLine/Content/Hollywood/Theatre/SM_Trim_BladeSignFrame.uasset +++ b/Game/GigLine/Content/Hollywood/Theatre/SM_Trim_BladeSignFrame.uasset @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:2f2de2082fd77b5e67d4f5f3b17c488b1b66dcaf4de7817862044f3b7e128370 +oid sha256:eb80f9f2267837bbe796f77a7d5564ef9928436709d656cd0b6ce989ee3a065b size 72406 diff --git a/Game/GigLine/Content/Hollywood/Theatre/SM_Trim_MarqueeCanopy.uasset b/Game/GigLine/Content/Hollywood/Theatre/SM_Trim_MarqueeCanopy.uasset index f56ea37..7334a32 100644 --- a/Game/GigLine/Content/Hollywood/Theatre/SM_Trim_MarqueeCanopy.uasset +++ b/Game/GigLine/Content/Hollywood/Theatre/SM_Trim_MarqueeCanopy.uasset @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:35245987ecb3264697558b7a0711326c2e7f7eb8376ebd047600c9091a5f99c3 +oid sha256:133969c52a67672ef871a423ca4e445f65fce751ec6c275f63b6855300f6774b size 72370 diff --git a/Game/GigLine/Content/Hollywood/Theatre/SM_Trim_MarqueeFascia.uasset b/Game/GigLine/Content/Hollywood/Theatre/SM_Trim_MarqueeFascia.uasset index ae74f6f..14a16d9 100644 --- a/Game/GigLine/Content/Hollywood/Theatre/SM_Trim_MarqueeFascia.uasset +++ b/Game/GigLine/Content/Hollywood/Theatre/SM_Trim_MarqueeFascia.uasset @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:25fd1abced705fc871b794b7709c7b0cd183b6e18c014f9463902af9e3105927 +oid sha256:ff64d40901f3b376446ed2de3bebab4f93317e6ae3fc89fe6ab6c9db1d30efe5 size 72438 diff --git a/Game/GigLine/Content/Hollywood/Theatre/SM_Trim_MarqueeSoffit.uasset b/Game/GigLine/Content/Hollywood/Theatre/SM_Trim_MarqueeSoffit.uasset index e352273..c931cdf 100644 --- a/Game/GigLine/Content/Hollywood/Theatre/SM_Trim_MarqueeSoffit.uasset +++ b/Game/GigLine/Content/Hollywood/Theatre/SM_Trim_MarqueeSoffit.uasset @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:5cd83749385ed136b18544597898dd364028126c1f5cb098580f0adf40086a66 +oid sha256:c84cbf3f0afd1f2f18d345c61a748a2fa5f6fc033df6b238f8edcd59c8e8cf8c size 72413 diff --git a/Game/GigLine/Content/Test/ReviewMap.umap b/Game/GigLine/Content/Test/ReviewMap.umap index 6edf4aa..f9adb5d 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:53c99032f45546d5b87630d2f916ed038b632b068455aced623e4fae1f57ed99 +oid sha256:ec72b33cc57c5aa50889c6d0bc68c78ce5fde621881ed5c3bde4d6679610ef4e size 28811 diff --git a/Screenshots/README.md b/Screenshots/README.md index a38c166..c49ca31 100644 --- a/Screenshots/README.md +++ b/Screenshots/README.md @@ -85,8 +85,8 @@ Read this one against the reference photograph it was modelled from: `Art/refere Known gaps in this first pass, recorded rather than hidden: -- **The parapet reads as a blank white band.** It is modelled as one 2.18 m wall with four 0.10 m reveal strips, and at review distance the strips disappear into the wash. -- **The mural row and lettering band barely read.** They are shallow plates (0.06–0.08 m) on the same plane as the wall; they need either depth or a decal before they read as the photographs' black-framed panels. +- **The parapet still reads as a blank band.** It is now two tiers with three deeper reveals, and the step is visible, but there is no profile or shadow line to break the wall — a moulded coping and a modelled reveal need the `0.9.0` façade system. +- **The mural row now reads** (framed plates standing 0.12–0.20 m off the wall), but **the lettering band does not**: it is a plate at 0.10 m and it disappears at 40 m. Wall lettering is a decal/texture problem, scoped in `0.9.0`; no amount of extra plate depth fixed it in the second pass. - **The corner tower is a plain cylinder with two cap rings** — the stepped Deco profile in the photograph is richer than that. - **The camera crops the east end** of Lee Drug at 68° from the north sidewalk. - **6822 Budget is untouched** and still a bare blockout volume: no photograph of it exists. diff --git a/Screenshots/demo/review-demo-crossing.png b/Screenshots/demo/review-demo-crossing.png index 61b729a..457233d 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:671fa6bdd2f90291619dde25e019b9ed2901b9195541e981f815ac7a0d12d0b6 -size 3090405 +oid sha256:06bd939e40544e818c721a8e52d4f9db42bcc15578fdf23a0f07e5e3e81a3a0e +size 3090121 diff --git a/Screenshots/demo/review-demo-north-buildings.png b/Screenshots/demo/review-demo-north-buildings.png index 6b60f6f..a7d947d 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:63cfbd2cf6b1cceabfa712136e06b2009700f20d2e34664baa6ddc255e95a380 -size 2618666 +oid sha256:16b30099d71573954ae5f2bf3082a50b6ef715753c83470b6d56146b93da8526 +size 2619302 diff --git a/Screenshots/demo/review-demo-retail-frontage.png b/Screenshots/demo/review-demo-retail-frontage.png index 0899709..c5854ac 100644 --- a/Screenshots/demo/review-demo-retail-frontage.png +++ b/Screenshots/demo/review-demo-retail-frontage.png @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:45d882e702e3e868e2870e34b78e3fe89be0a50c3d78a13eb09c74bf60648206 -size 2048484 +oid sha256:c9cb8296dd77c3b1ce3af3c26be36280f22bdcbf35c79458cd82850ee4083510 +size 2520582 diff --git a/Screenshots/demo/review-demo-spawn-view.png b/Screenshots/demo/review-demo-spawn-view.png index 6f7b0dd..92bfc1c 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:2015b86cb791f8e038004cd9d7510839475f3464518c121016eedf04a1850dad -size 2955383 +oid sha256:c060b014cf4e04d0f5b3c8255e505a1f0d80abb1a1796190a7aba00370d49618 +size 2944637 diff --git a/Screenshots/demo/review-demo-street-level.png b/Screenshots/demo/review-demo-street-level.png index 2bbfae9..24d4553 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:5b20e4c0d58d9314a0d9577a5a86329e3d3a288f3ba876970c9a786ac82546a5 -size 2873893 +oid sha256:ee9182712bef9ea7415722e2c546df0ee3d914cc46ee73b450c683245b1f4a3c +size 2875166 diff --git a/Tools/retail_frontage_build.py b/Tools/retail_frontage_build.py index 64a740d..5736dcd 100644 --- a/Tools/retail_frontage_build.py +++ b/Tools/retail_frontage_build.py @@ -58,8 +58,8 @@ LD_PARAPET_Z = 0.82 * LD_H # 9.92 m: bottom of the stepped parapet B6_SHOP_TOP = 0.32 * B6_H # 3.87 m B6_FASCIA_TOP = 0.38 * B6_H # 4.60 m -B6_WINDOW_Z = (0.45 * B6_H, 0.60 * B6_H) -B6_PARAPET_Z = 0.62 * B6_H # 7.50 m +B6_WINDOW_Z = (0.47 * B6_H, 0.64 * B6_H) +B6_PARAPET_Z = 0.74 * B6_H # 8.95 m (first pass used 0.62 and left a 4.6 m blank band) BAY = 2.20 # mural / bay rhythm on Lee Drug, assumed PROJECT = 0.55 # bronze cornice projection, assumed @@ -129,6 +129,7 @@ def build_lee_drug(mats): rounded corner tower.""" stucco, bronze, mural, glass, white = (mats["stucco"], mats["bronze"], mats["mural"], mats["glass"], mats["white"]) + lettering, reveal = mats["lettering"], mats["reveal"] parts = [] cx = (LD_X0 + LD_X1) / 2.0 width = LD_X1 - LD_X0 @@ -151,31 +152,49 @@ def build_lee_drug(mats): parts.append((mullion, "assumption: slim mullion at each bay boundary")) # Celebrity-portrait panels, one per bay, in the band above the cornice. + # + # First pass modelled these as a shallow plate on the wall plane and they vanished + # at review distance: no shadow, no edge. Now each panel is a near-black plate set + # 0.14 m back inside a stucco frame that stands 0.10 m proud, so the sun casts a + # shadow line down one side and the row reads as a row of pictures. z0, z1 = LD_MURAL_Z for i, bx in enumerate(bay_centres(LD_X0, LD_X1, margin=1.2), start=1): - panel = cube(f"LD_Mural_{i}", bx, LD_FACE_Y - 0.04, (z0 + z1) / 2.0, - BAY - 0.75, 0.08, z1 - z0, mural) + frame = cube(f"LD_MuralFrame_{i}", bx, LD_FACE_Y + 0.20, (z0 + z1) / 2.0, + BAY - 0.55, 0.12, (z1 - z0) + 0.30, white) + parts.append((frame, "photographs: stucco frame around each portrait panel; " + "0.30 m border assumed")) + panel = cube(f"LD_Mural_{i}", bx, LD_FACE_Y + 0.12, (z0 + z1) / 2.0, + BAY - 0.85, 0.06, (z1 - z0), mural) parts.append((panel, "photographs: row of black-framed portrait panels; count and " "size assumed from the visible row")) - # Lettering band: a recessed plate, not text. Reproducing the lettering needs a - # decal, which is a materials-pass job. + # Lettering band: the photographs show dark letters painted straight on the stucco, + # so this is a slightly proud plate in a mid-dark tone rather than a black recess. + # The words themselves remain a decal job; the plate only reserves the band. lz0, lz1 = LD_LETTER_Z - letter = cube("LD_LetterBand", cx, LD_FACE_Y - 0.03, (lz0 + lz1) / 2.0, - width - 3.0, 0.06, lz1 - lz0, mural) + letter = cube("LD_LetterBand", cx, LD_FACE_Y + 0.10, (lz0 + lz1) / 2.0, + width - 3.6, 0.10, lz1 - lz0, lettering) parts.append((letter, "photographs: large dark lettering across the upper wall; " - "modelled as a recessed plate, the text itself is a decal job")) + "modelled as a painted band, the text itself is a decal job")) - # Stepped Deco parapet: wall band plus four horizontal reveals. - para = cube("LD_Parapet", cx, LD_FACE_Y + 0.10, (LD_PARAPET_Z + LD_H) / 2.0, - width + 0.2, 0.30, LD_H - LD_PARAPET_Z, stucco) - parts.append((para, "photographs: parapet steps above the frontage wall; " - "thickness assumed")) - for i in range(4): - z = LD_PARAPET_Z + (LD_H - LD_PARAPET_Z) * (i + 1) / 5.0 - groove = cube(f"LD_ParapetReveal_{i + 1}", cx, LD_FACE_Y - 0.03, z, - width + 0.2, 0.07, 0.10, mural) - parts.append((groove, "photographs: four horizontal reveal lines in the parapet; " + # Stepped Deco parapet. A single 2.18 m wall with 0.10 m reveals read as one blank + # white band, so it is now two tiers with a 0.10 m step between them, and the + # reveals are 0.22 m tall and cut 0.16 m deep - deep enough to hold a shadow. + tier_h = (LD_H - LD_PARAPET_Z) / 2.0 + lower = cube("LD_ParapetLower", cx, LD_FACE_Y + 0.14, LD_PARAPET_Z + tier_h / 2.0, + width + 0.2, 0.34, tier_h, stucco) + parts.append((lower, "photographs: parapet lower tier above the frontage wall; " + "thickness assumed")) + upper = cube("LD_ParapetUpper", cx, LD_FACE_Y + 0.24, LD_PARAPET_Z + tier_h * 1.5, + width - 3.2, 0.30, tier_h, stucco) + parts.append((upper, "photographs: parapet upper tier, stepped back from the lower " + "one; setback and length assumed")) + for i, (z, span) in enumerate(((LD_PARAPET_Z + tier_h * 0.45, width + 0.2), + (LD_PARAPET_Z + tier_h * 1.30, width + 0.2), + (LD_H - 0.14, width - 3.2)), start=1): + groove = cube(f"LD_ParapetReveal_{i}", cx, LD_FACE_Y - 0.02, z, + span, 0.16, 0.22, reveal) + parts.append((groove, "photographs: horizontal reveal lines in the parapet; " "count read off the frame")) # Rounded corner tower at the east end, stepped twice at the top. The centre @@ -186,6 +205,16 @@ def build_lee_drug(mats): (LD_H - 0.9) / 2.0, TOWER_R, LD_H - 0.9, stucco) parts.append((tower, "photographs: rounded Deco corner tower rising above the " f"frontage; {TOWER_R:.2f} m radius assumed")) + # Vertical fins around the curve: the photograph's tower is fluted, not a smooth + # drum. Twelve ribs at this radius are legible from the street. + for i in range(12): + ang = math.pi * (i + 0.5) / 12.0 + fx = (LD_X1 - TOWER_R) + math.cos(ang) * (TOWER_R + 0.06) + fy = tower_y + math.sin(ang) * (TOWER_R + 0.06) + fin = cube(f"LD_TowerFin_{i + 1}", fx, fy, (LD_H - 0.9) / 2.0, + 0.16, 0.16, LD_H - 0.9, white) + parts.append((fin, "photographs: fluted fins on the corner tower; count assumed")) + # Cap rings stack exactly to the measured 12.10 m top: 11.20 -> 11.75 -> 12.10. cap_z = LD_H - 0.9 for i, (dh, radius) in enumerate(((0.55, TOWER_R - 0.35), (0.35, TOWER_R - 0.70)), start=1): @@ -200,6 +229,7 @@ def build_6806(mats): """6806–6820: burgundy fascia, brown pilasters, white-framed windows, banded parapet.""" stucco, bronze, glass, white, burgundy = (mats["stucco"], mats["bronze"], mats["glass"], mats["white"], mats["burgundy"]) + reveal = mats["reveal"] parts = [] cx = (B6_X0 + B6_X1) / 2.0 width = B6_X1 - B6_X0 @@ -224,22 +254,36 @@ def build_6806(mats): wz0, wz1 = B6_WINDOW_Z for i, bx in enumerate(centres, start=1): - frame = cube(f"B6_WindowFrame_{i}", bx, B6_FACE_Y - 0.06, (wz0 + wz1) / 2.0, - 1.70, 0.14, wz1 - wz0, white) + frame = cube(f"B6_WindowFrame_{i}", bx, B6_FACE_Y - 0.08, (wz0 + wz1) / 2.0, + 1.70, 0.18, wz1 - wz0, white) parts.append((frame, "photographs: white-framed upper windows with security bars; " "count and size assumed")) - pane = cube(f"B6_WindowGlass_{i}", bx, B6_FACE_Y + 0.02, (wz0 + wz1) / 2.0, + pane = cube(f"B6_WindowGlass_{i}", bx, B6_FACE_Y + 0.04, (wz0 + wz1) / 2.0, 1.46, 0.08, wz1 - wz0 - 0.24, glass) parts.append((pane, "photographs: dark glazing inside each frame")) + # Security bars: three thin verticals per window, the detail that stops the + # upper storey reading as a row of black rectangles. + for b in (-1, 0, 1): + bar = cube(f"B6_WindowBar_{i}_{b + 2}", bx + b * 0.40, B6_FACE_Y - 0.15, + (wz0 + wz1) / 2.0, 0.06, 0.06, wz1 - wz0 - 0.30, white) + parts.append((bar, "photographs: vertical security bars on the upper windows")) - para = cube("B6_Parapet", cx, B6_FACE_Y + 0.08, (B6_PARAPET_Z + B6_H) / 2.0, - width + 0.2, 0.26, B6_H - B6_PARAPET_Z, stucco) - parts.append((para, "photographs: parapet band above the window storey; thickness assumed")) - for i in range(3): - z = B6_PARAPET_Z + (B6_H - B6_PARAPET_Z) * (i + 1) / 4.0 - groove = cube(f"B6_ParapetReveal_{i + 1}", cx, B6_FACE_Y - 0.03, z, - width + 0.2, 0.07, 0.09, bronze) - parts.append((groove, "photographs: three reveal lines in the parapet; count assumed")) + # Two-tier parapet with deep reveals, as on Lee Drug: one flat band with hairlines + # disappeared at review distance. + tier_h = (B6_H - B6_PARAPET_Z) / 2.0 + para = cube("B6_Parapet", cx, B6_FACE_Y + 0.12, B6_PARAPET_Z + tier_h / 2.0, + width + 0.2, 0.30, tier_h, stucco) + parts.append((para, "photographs: parapet lower tier above the window storey; " + "thickness assumed")) + upper = cube("B6_ParapetUpper", cx, B6_FACE_Y + 0.20, B6_PARAPET_Z + tier_h * 1.5, + width - 2.4, 0.26, tier_h, stucco) + parts.append((upper, "photographs: parapet upper tier stepped back; length assumed")) + for i, (z, span) in enumerate(((B6_PARAPET_Z + tier_h * 0.45, width + 0.2), + (B6_PARAPET_Z + tier_h * 1.30, width + 0.2), + (B6_H - 0.12, width - 2.4)), start=1): + groove = cube(f"B6_ParapetReveal_{i}", cx, B6_FACE_Y - 0.02, z, + span, 0.14, 0.18, reveal) + parts.append((groove, "photographs: reveal lines in the parapet; count assumed")) return parts @@ -289,6 +333,10 @@ def main(argv=None) -> int: "glass": make_material("M_Retail_Glass", (0.035, 0.045, 0.055), rough=0.15), "white": make_material("M_Retail_White", (0.90, 0.88, 0.84), rough=0.60), "burgundy": make_material("M_Retail_Burgundy", (0.20, 0.09, 0.09), rough=0.55), + # Painted lettering and shadow reveals: same value family as the wall so they + # read as paint and shadow, not as black holes. + "lettering": make_material("M_Retail_Lettering", (0.30, 0.27, 0.24), rough=0.65), + "reveal": make_material("M_Retail_Reveal", (0.42, 0.38, 0.34), rough=0.70), } ld_parts = build_lee_drug(mats) diff --git a/Tools/ue_build_demo_map.py b/Tools/ue_build_demo_map.py index b325ddc..3e017ba 100644 --- a/Tools/ue_build_demo_map.py +++ b/Tools/ue_build_demo_map.py @@ -305,7 +305,8 @@ def build(): log(f"could not create {MAP}") return - removed = clear(("Demo_", "PlayerStart", "Hero_Facade", "Frontage_", "ShotSequencer")) + removed = clear(("Demo_", "PlayerStart", "Hero_Facade", "Frontage_", "RetailTrim_", + "ShotSequencer")) log(f"cleared {removed} previous demo actors") # --- lighting: fixed daytime ------------------------------------------ @@ -614,7 +615,19 @@ def build(): comp = actor.static_mesh_component comp.set_static_mesh(mesh) comp.set_mobility(unreal.ComponentMobility.MOVABLE) - log(f"staged: {label}") + # Map the trim's own slots onto the look-dev materials where the surface + # type matches, so the walls sit in the same noise/texture family as the + # rest of the block. The trim's colour slots (bronze, burgundy, mural, + # lettering) stay as authored: those tones came from the photograph. + TRIM_LOOK = {"M_Retail_Stucco": "M_Stucco", "M_Retail_White": "M_Stucco", + "M_Retail_Glass": "M_FacadeGlass"} + mapped = 0 + for index, slot in enumerate(mesh.get_editor_property("static_materials")): + target = TRIM_LOOK.get(str(slot.get_editor_property("material_slot_name"))) + if target and target in built: + comp.set_material(index, built[target]) + mapped += 1 + log(f"staged: {label} ({mapped} slot(s) onto look materials)") # --- player start: north sidewalk, facing the hero frontage ------------- # Signs were measured from the imported meshes rather than assumed: the FBX diff --git a/Tools/ue_build_review_map.py b/Tools/ue_build_review_map.py index 375f0d8..336dee0 100644 --- a/Tools/ue_build_review_map.py +++ b/Tools/ue_build_review_map.py @@ -305,7 +305,7 @@ try: # sidewalk at 2 m, look south with a level horizon so the parapets and # the cornice line read as horizontals. 68 deg covers both frontages at # this distance; the ends crop rather than the elevation leaning. - ("demo-retail-frontage", unreal.Vector(-4700, -2000, 200), unreal.Vector(-4700, 1400, 560), 68.0), + ("demo-retail-frontage", unreal.Vector(-4700, -2600, 210), unreal.Vector(-4700, 1400, 620), 66.0), # the two north-side background buildings (TCL, Tussaud's) seen from # the south across Hollywood Blvd. Probed world-space (2026-11-08): # TCL bbox X -22889..-18442, Y -9431..-1802; Tussaud's X -27071..