From d4af4af90f51e7d2882757cbff3a604366d28308 Mon Sep 17 00:00:00 2001 From: Zwitschi Date: Sat, 7 Nov 2026 12:46:00 +0100 Subject: [PATCH] hero: make the portals real recesses and land the facade on Z 0 The portal detail shot failed for a modelling reason, not a camera reason: the doors were 0.1 m panels on a solid plinth, so they read as shading. The plinth is now four piers plus a lintel band, with a 1.2 m reveal, stone jambs and lintels standing 0.10 m proud and three mullions per opening. review-06 frames them from 8 m at eye height. Two defects fixed while doing it: the jamb boxes hung 0.15 m below the pavement, so the facade imported with min Z -15 cm; and a rebuild run against a read-only .blend silently skipped the save, which is why screenshots kept showing the old geometry. --- Art/blender/hero/hero-facade-2026-11-07.blend | 4 +- Art/blender/hero/hero-facade-2026-11-07.json | 42 ++++++++---- Game/GigLine/Config/DefaultEngine.ini | 1 + Game/GigLine/Content/Hollywood/DemoMap.umap | 2 +- .../Hollywood/ElCapitan/SM_HeroFacade.uasset | 4 +- Game/GigLine/Content/Test/ReviewMap.umap | 2 +- MEMORY.md | 6 ++ ROADMAP.md | 2 +- Screenshots/README.md | 8 ++- Screenshots/review-00-overview.png | 4 +- Screenshots/review-01-character.png | 4 +- Screenshots/review-02-scale-cubes.png | 4 +- Screenshots/review-03-player-placement.png | 4 +- Screenshots/review-04-ground-contact.png | 4 +- Screenshots/review-04-hero-facade-front.png | 3 + Screenshots/review-05-hero-facade-oblique.png | 3 + Screenshots/review-05-shadow-compare.png | 4 +- Screenshots/review-06-hero-portals.png | 4 +- Screenshots/review-07-hero-facade-front.png | 4 +- Screenshots/review-08-hero-facade-oblique.png | 4 +- Tools/hero_facade_build.py | 68 +++++++++++++++---- Tools/ue_build_review_map.py | 6 +- 22 files changed, 132 insertions(+), 55 deletions(-) create mode 100644 Screenshots/review-04-hero-facade-front.png create mode 100644 Screenshots/review-05-hero-facade-oblique.png diff --git a/Art/blender/hero/hero-facade-2026-11-07.blend b/Art/blender/hero/hero-facade-2026-11-07.blend index 1bfcf57..771f2b9 100644 --- a/Art/blender/hero/hero-facade-2026-11-07.blend +++ b/Art/blender/hero/hero-facade-2026-11-07.blend @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:f52c2388c9a5e1e27e975f463bb740fa1efcb6e2343be6b9a779d177f0ca06a8 -size 125299 +oid sha256:eba62eb9928ddc52ca895280168f9db2b1627a86b777e7d34175c49ab0f8034f +size 134203 diff --git a/Art/blender/hero/hero-facade-2026-11-07.json b/Art/blender/hero/hero-facade-2026-11-07.json index 413059d..b56c429 100644 --- a/Art/blender/hero/hero-facade-2026-11-07.json +++ b/Art/blender/hero/hero-facade-2026-11-07.json @@ -28,30 +28,39 @@ ], "evidence": "measured frontage x assumption depth x measured height, inset behind the cornice" }, - { - "object": "Hero_Stylobate", - "dims_m": [ - 25.75, - 2.4, - 1.45 - ], - "evidence": "assumption: pedestal height" - }, { "object": "Hero_Column_x6", "dims_m": [ 0.95, 0.95, - 9.25 + 7.45 ], "evidence": "6 columns at 4.96 m centres (sibling notes x measured frontage)" }, + { + "object": "Hero_Architrave", + "dims_m": [ + 25.75, + 1.65, + 0.84 + ], + "evidence": "assumption: stacked entablature bands" + }, + { + "object": "Hero_Cornice", + "dims_m": [ + 25.75, + 1.75, + 0.36 + ], + "evidence": "assumption: projecting cornice line" + }, { "object": "Hero_Entablature", "dims_m": [ 25.75, 1.5, - 2.2 + 3.4 ], "evidence": "assumption: entablature depth" }, @@ -60,7 +69,7 @@ "dims_m": [ 25.75, 1.2, - 1.6 + 2.2 ], "evidence": "assumption: parapet carries the motto band" }, @@ -82,6 +91,15 @@ ], "evidence": "photographs: two stone discs beside the motto" }, + { + "object": "Hero_Stylobate", + "dims_m": [ + 25.75, + 2.4, + 1.45 + ], + "evidence": "assumption: pedestal height; four piers and a lintel band leave three recesses" + }, { "object": "Hero_PortalFlight_1", "dims_m": [ diff --git a/Game/GigLine/Config/DefaultEngine.ini b/Game/GigLine/Config/DefaultEngine.ini index c74b3c9..22075f3 100644 --- a/Game/GigLine/Config/DefaultEngine.ini +++ b/Game/GigLine/Config/DefaultEngine.ini @@ -10,6 +10,7 @@ GameName=GigLine [/Script/AndroidFileServerEditor.AndroidFileServerRuntimeSettings] bEnablePlugin=False bAllowNetworkConnection=False +SecurityToken=01A1B5CDAFDE7AAEB5DFBB48880D25DE bIncludeInShipping=False bAllowExternalStartInShipping=False bCompileAFSProject=False diff --git a/Game/GigLine/Content/Hollywood/DemoMap.umap b/Game/GigLine/Content/Hollywood/DemoMap.umap index fe635c7..cdb449a 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:86494aede159b9533c3165588b519ed2aa77378f38dc65cc95877a64b9a672a1 +oid sha256:cc95c6abbe1c0da5ac677813498dc16e3617ebed8a029b598eb9e5c2a11395d3 size 10483 diff --git a/Game/GigLine/Content/Hollywood/ElCapitan/SM_HeroFacade.uasset b/Game/GigLine/Content/Hollywood/ElCapitan/SM_HeroFacade.uasset index 1bfbd1b..d66dd6f 100644 --- a/Game/GigLine/Content/Hollywood/ElCapitan/SM_HeroFacade.uasset +++ b/Game/GigLine/Content/Hollywood/ElCapitan/SM_HeroFacade.uasset @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:8056f4e79c5266c641e8ab51774099f258fdf89ac14e5cad574aa5836f67cb73 -size 113730 +oid sha256:ce9572e7344bb02ea61c2cc1a3b0966125c4a2a01d99acd012a658519df037ac +size 117081 diff --git a/Game/GigLine/Content/Test/ReviewMap.umap b/Game/GigLine/Content/Test/ReviewMap.umap index 7bb280f..38eee99 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:fa97923fb4da06be107d8eca77018564d8263456a83190ad246c42c69d3a10e8 +oid sha256:28f800dae8a0433b62ee9ac06cb76940c22ab83522d8574114c94e6243062487 size 26121 diff --git a/MEMORY.md b/MEMORY.md index ef37755..b6e09bb 100644 --- a/MEMORY.md +++ b/MEMORY.md @@ -120,3 +120,9 @@ Scope: facts and traps that cost time to establish. Planned work lives in [ROADM - **Blender-side builders live in `Art/blender/*/`** (terrain, street, site, blockout) and reach helpers via `os.path.join(HERE, "..","..","..","Geo","tools")`. Moving them breaks the old `"..", "Geo", "scripts"` path silently until the script is run. - **Height provenance:** 3 of the 15 block buildings carry no OSM height and Blosm renders them at a placeholder 6.4 m. `Geo/tools/block_height_report.py` lists them; they need heights measured off the photographs before the skyline is believable. +## 2026-11-07 — Blender rebuilds that silently did nothing + +- **A read-only `.blend` makes Blender skip the save without failing the run.** `Tools/hero_facade_build.py` printed its part list and "bounds" as normal, then went straight to the export: the `.blend` and the report stayed at their old timestamps, and the Unreal re-import brought back the old mesh. Symptom to watch for: the imported bounds do not change after a rebuild. Fix: `chmod u+w` the `.blend` first, then confirm the timestamp moved. +- **Model bottom must land on Z 0.** The hero portal jambs were sized `PORTAL_H + 0.3` and centred at `PORTAL_H / 2`, so they hung 0.15 m below the pavement and the whole facade imported with `min z = -15 cm`. Always check the asset's `bounds_m.min.z` in the build report. +- **Rebuilding a facade is not enough to make a detail shot work**: doors modelled as thin panels on a solid plinth read as shading, not openings. Cutting the plinth into piers with a lintel band is what makes them legible from 8 m. + diff --git a/ROADMAP.md b/ROADMAP.md index 9858c75..76bb56e 100644 --- a/ROADMAP.md +++ b/ROADMAP.md @@ -74,7 +74,7 @@ Owner: this session. Scope: the review scene used for all visual approval — th - [x] **Character placement shot**: `review-03-player-placement` shows the pawn (`AGigLineCharacter`) staged by `Tools/ue_build_review_map.py` with a cube behind it. Note: the pawn's capsule renders invisible in `-game` because the character has no visible mesh, so the shot shows where the player lands relative to the scene rather than the body. - [x] **Ground-contact detail shot**: `review-04-ground-contact`, knee height, close on the feet — the soles meet the floor and the shadow joins them. - [x] **Shadow-comparison detail shot**: `review-05-shadow-compare`, both cubes in one frame from a low angle; the floating cube's shadow is detached, the grounded one's touches. -- [ ] **Detail shot of the hero façade portals**: the portals sit behind the colonnade and are only about 3.4 m tall against a 14.5 m façade, so from the review floor they read as dark recesses at best (`review-06`). Resolving them needs either a camera on the plinth itself or the portals rebuilt proud of the stylobate — recorded as work, not done. +- [x] **Detail shot of the hero façade portals**: `review-06-hero-portals` from 8 m at eye height now fills the frame with all three doorways. The camera alone was not enough: the doors were flat panels on a solid face, so they were rebuilt as three genuine recesses — plinth split into four piers plus a lintel band, 1.2 m reveal, stone jambs and lintels standing 0.10 m proud, three mullions each. Facade bounds are now exactly Z 0..14.50 m; a jamb overhang had been sinking the model 0.15 m into the ground. - [x] Document the shot list, camera positions, and what each shot is evidence for in `Screenshots/README.md`; nine shots, each with an approval line. - [x] Extend the review floor beyond the hero façade: 160 m square centred on the façade, so façade shots stand on ground instead of the horizon band. - [x] Delete retired shots: the old `first-person` frame is gone and the camera list is now a single table so a change cannot leave an orphan. diff --git a/Screenshots/README.md b/Screenshots/README.md index 2861193..dddf1ad 100644 --- a/Screenshots/README.md +++ b/Screenshots/README.md @@ -75,11 +75,13 @@ Low camera, knee height, close on the mannequin's feet. A floating or sinking ch Low angle, both cubes side by side with the character between them. The detached shadow of the floating cube against the grounded one. -## review-06-hero-portals.png — Hero façade, whole elevation, approval: ☐ pending +## review-06-hero-portals.png — Hero façade portals, approval: ☐ pending -![Hero façade, whole elevation](review-06-hero-portals.png) +![Hero façade portals](review-06-hero-portals.png) -Straight-on from eye height 25 m out. Six columns, plinth, entablature, parapet; the three portals sit behind the colonnade at this distance. +New: generated 2026-11-07 after the portals were rebuilt. Eye height at 8 m, filling the frame with the three doorways, their flights, and the plinth. The doors are now genuine 1.2 m recesses cut through four plinth piers, with stone jambs and lintels standing proud and three mullions in each opening. + +What this shot is evidence for: that the entrance is three separate openings with individual flights (not the inherited "eight steps, 12 m wide"), and that the facade stands on Z 0 rather than sinking into the ground. ## review-07-hero-facade-front.png — Hero façade, north sidewalk, approval: ☐ pending diff --git a/Screenshots/review-00-overview.png b/Screenshots/review-00-overview.png index ce41a3a..a9d88ee 100644 --- a/Screenshots/review-00-overview.png +++ b/Screenshots/review-00-overview.png @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:1cb37878275b900fa5fdd2b3d9a7a94af3b8e3c9fa2b37ff530e4ea714d28166 -size 2580544 +oid sha256:144c3ea6b57e9891a6a720c211307d36c9b76206639641ac165f9572e412d2a7 +size 2526958 diff --git a/Screenshots/review-01-character.png b/Screenshots/review-01-character.png index dd16696..f80b347 100644 --- a/Screenshots/review-01-character.png +++ b/Screenshots/review-01-character.png @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:cbe70839e4989e9c011c95588c51d05e27c7689850894732e14a23b8fbe58c2b -size 2500074 +oid sha256:737ed599e58d407c53de02df50618ff459d26ad22e8d942ce03e899ea0391859 +size 2504150 diff --git a/Screenshots/review-02-scale-cubes.png b/Screenshots/review-02-scale-cubes.png index 4b1efb0..f7dea4b 100644 --- a/Screenshots/review-02-scale-cubes.png +++ b/Screenshots/review-02-scale-cubes.png @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:5835ef33193ed4b76f9e4e97bfc6418a2b2b01fd4fdcad505b294963990eb9e4 -size 1898344 +oid sha256:f61440e03d5fa4d5f4cae68df38daf87577f93b6ffdf39a119df2b5b94689e2d +size 1900504 diff --git a/Screenshots/review-03-player-placement.png b/Screenshots/review-03-player-placement.png index e88451a..fdc0da6 100644 --- a/Screenshots/review-03-player-placement.png +++ b/Screenshots/review-03-player-placement.png @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:2442094f2b7adc2169a3070d21dcb796abbbbeb25bd7019cbd0c2e48056b36c8 -size 1950425 +oid sha256:d33bdd84bab5461b1020894742c8040c3122e66edc7f18478a5a67092a626bd0 +size 1955409 diff --git a/Screenshots/review-04-ground-contact.png b/Screenshots/review-04-ground-contact.png index 0b3850b..06aba79 100644 --- a/Screenshots/review-04-ground-contact.png +++ b/Screenshots/review-04-ground-contact.png @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:bdac52ce85002ea578878770c640ddecc147392a1c2933f34903ebcbba77ca81 -size 1843413 +oid sha256:bc1cf2def826f4738c1a6710d0723a8f76c62a91e2d5058c2e282e5f7f5408f0 +size 1845676 diff --git a/Screenshots/review-04-hero-facade-front.png b/Screenshots/review-04-hero-facade-front.png new file mode 100644 index 0000000..bf7ffdb --- /dev/null +++ b/Screenshots/review-04-hero-facade-front.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:dadd922a44f69cf5da67a25229d11d53b982173f974391a299773bae38170b67 +size 2708743 diff --git a/Screenshots/review-05-hero-facade-oblique.png b/Screenshots/review-05-hero-facade-oblique.png new file mode 100644 index 0000000..d4e21f3 --- /dev/null +++ b/Screenshots/review-05-hero-facade-oblique.png @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:2d7a5f4f130d0f8077bde5786953b9132c7bfa5150087fea4075e1190ee6446b +size 2388719 diff --git a/Screenshots/review-05-shadow-compare.png b/Screenshots/review-05-shadow-compare.png index 7046b78..5559990 100644 --- a/Screenshots/review-05-shadow-compare.png +++ b/Screenshots/review-05-shadow-compare.png @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:c169503f649c031c2fff0e590287fe7a15f4fd177e203f397674f4b1a92ec936 -size 1675980 +oid sha256:0072fdd0af95db948d60b51a5a38425e581e4fb172f40f114c52e065033e72b3 +size 1675568 diff --git a/Screenshots/review-06-hero-portals.png b/Screenshots/review-06-hero-portals.png index a8fe146..fd20070 100644 --- a/Screenshots/review-06-hero-portals.png +++ b/Screenshots/review-06-hero-portals.png @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:bf4402b11a9da61539f7e93f4131ae3d2ba0e505a8df3fcf27621622170d2f01 -size 1619816 +oid sha256:b37d9337136492bfb04ae38009a47383cfe85b6815278ac8bf95c9d61b266906 +size 1758447 diff --git a/Screenshots/review-07-hero-facade-front.png b/Screenshots/review-07-hero-facade-front.png index 35d4e02..80e86d6 100644 --- a/Screenshots/review-07-hero-facade-front.png +++ b/Screenshots/review-07-hero-facade-front.png @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:35b47051a779838568fcf305d7820ef4703ee0b652d746e27aa98ab209ce07cf -size 1924016 +oid sha256:be8cdde120879ec4236bc5abfcdac97b920ea9d59ef412e60845028bb6347c02 +size 2076787 diff --git a/Screenshots/review-08-hero-facade-oblique.png b/Screenshots/review-08-hero-facade-oblique.png index f3aecae..7420f95 100644 --- a/Screenshots/review-08-hero-facade-oblique.png +++ b/Screenshots/review-08-hero-facade-oblique.png @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:e731f74d92863a099289575f4ebdb8f765e804d42df2673e57e638b22a1e6cf7 -size 1760130 +oid sha256:0acecf11e23516d0586a1a366434ae821ea39083bd8ffcff9a054f73ff651aaf +size 2005040 diff --git a/Tools/hero_facade_build.py b/Tools/hero_facade_build.py index 87c65bc..4003a98 100644 --- a/Tools/hero_facade_build.py +++ b/Tools/hero_facade_build.py @@ -122,8 +122,7 @@ def build(): # --- stylobate and steps ---------------------------------------------- # A plinth from the pavement to the pedestal shelf, with three door flights. - cube("Hero_Stylobate", 0.0, -1.2, PEDESTAL_H / 2.0, FRONTAGE_W, 2.4, PEDESTAL_H, stone) - note("Hero_Stylobate", (FRONTAGE_W, 2.4, PEDESTAL_H), "assumption: pedestal height") + # The stylobate is built later as piers around the three door openings. # --- Ionic colonnade --------------------------------------------------- col_xs = [] @@ -171,24 +170,65 @@ def build(): note("Hero_Medallion_x2", (1.1, 1.1, 0.02), "photographs: two stone discs beside the motto") # --- entrances --------------------------------------------------------- - # Three portals between column pairs, each with its own short flight. + # Three portals between column pairs, each with its own short flight. The + # doorway is cut INTO the stylobate face rather than laid on it: the plinth is + # modelled as three segments so the opening is a real recess, and the portals + # stand proud of the wall behind the colonnade so they read from the street. portal_xs = (-COLUMN_BAY, 0.0, COLUMN_BAY) + plinth_front = -2.4 # front face of the plinth, in the facade frame + plinth_back = 0.0 + gap = PORTAL_W + # The plinth is four piers between and beside the openings, plus a band over + # them, so each door is a real recess instead of a panel on a solid face. + piers = [ + (-(FRONTAGE_W / 2.0), portal_xs[0] - gap / 2.0), + (portal_xs[0] + gap / 2.0, portal_xs[1] - gap / 2.0), + (portal_xs[1] + gap / 2.0, portal_xs[2] - gap / 2.0), + (portal_xs[2] + gap / 2.0, (FRONTAGE_W / 2.0)), + ] + for pi, (x0, x1) in enumerate(piers, start=1): + cube(f"Hero_Stylobate_{pi}", (x0 + x1) / 2.0, -1.2, PEDESTAL_H / 2.0, + x1 - x0, 2.4, PEDESTAL_H, stone) + # Band above the openings, closing the plinth to full height between the doors. + cube("Hero_Stylobate_LintelBand", 0.0, -1.2, PORTAL_H + (PEDESTAL_H - PORTAL_H) / 2.0, + (portal_xs[-1] + gap / 2.0) - (portal_xs[0] - gap / 2.0), 2.4, + PEDESTAL_H - PORTAL_H, stone) + note("Hero_Stylobate", (FRONTAGE_W, 2.4, PEDESTAL_H), + "assumption: pedestal height; four piers and a lintel band leave three recesses") + for i, x in enumerate(portal_xs, start=1): - # Recessed doorway: a dark panel set into the stylobate face. - cube(f"Hero_Portal_{i}", x, -2.35, PORTAL_H / 2.0, - PORTAL_W, 0.10, PORTAL_H, glass) - # Door grille above the steps, using the banner red for the sign panel. - cube(f"Hero_PortalSign_{i}", x, -2.42, PORTAL_H + 0.55, + # Recessed doorway: a dark reveal set back inside the plinth, 1.2 m deep so + # it reads as an opening from any angle. + depth = 1.2 + cube(f"Hero_Portal_{i}", x, plinth_front + depth / 2.0 + 0.05, PORTAL_H / 2.0, + PORTAL_W, depth, PORTAL_H, glass) + # Stone surround, standing 0.1 m proud of the plinth face. + for side, sx in (("L", -1.0), ("R", 1.0)): + # Jambs stop at the pavement: a 0.15 m overhang below Z 0 would sink the + # whole facade into the ground plane. + cube(f"Hero_PortalJamb_{i}{side}", x + sx * (PORTAL_W / 2.0 + 0.15), + plinth_front - 0.10, (PORTAL_H + 0.3) / 2.0, 0.3, 0.2, PORTAL_H + 0.3, stone) + cube(f"Hero_PortalLintel_{i}", x, plinth_front - 0.10, PORTAL_H + 0.15, + PORTAL_W + 0.6, 0.2, 0.3, stone) + # Door grille: mullions across the opening, dark metal read at distance. + for m in range(1, 4): + cube(f"Hero_PortalMullion_{i}_{m}", x - PORTAL_W / 2.0 + m * PORTAL_W / 4.0, + plinth_front + 0.12, PORTAL_H / 2.0, 0.09, 0.06, PORTAL_H, stone_dark) + # Sign panel over the doorway, as the photographs show. + cube(f"Hero_PortalSign_{i}", x, plinth_front - 0.16, PORTAL_H + 0.75, 0.7, 0.06, 0.9, banner) # Photographs show four to five risers per portal; the count follows the # pedestal height rather than inheriting the old "eight steps" claim. steps = max(3, min(5, int(round((PEDESTAL_H - 0.2) / STEP_RISE)))) - for s in range(steps): - top = PEDESTAL_H - s * STEP_RISE - cube(f"Hero_Step_{i}_{s + 1}", x, - -2.4 - 0.14 - s * STEP_TREAD - STEP_TREAD / 2.0, - top - STEP_RISE / 2.0, - STEP_WIDTH, STEP_TREAD, STEP_RISE, stone) + # Steps descend from the plinth to the pavement; the lowest tread must land + # exactly on Z 0, never below it, so the flight meets the ground plane. + steps = max(3, min(steps, int(round(PEDESTAL_H / STEP_RISE)))) + for st in range(steps): + top = PEDESTAL_H - st * STEP_RISE + height = top if st == steps - 1 else STEP_RISE + cube(f"Hero_Step_{i}_{st + 1}", x, + plinth_front - 0.14 - st * STEP_TREAD - STEP_TREAD / 2.0 + 0.28, + top - height / 2.0, STEP_WIDTH, STEP_TREAD, height, stone) note(f"Hero_PortalFlight_{i}", (PORTAL_W, STEP_TREAD * steps, PEDESTAL_H - 0.2), f"{steps} steps at {STEP_RISE:.2f} m rise / {STEP_TREAD:.2f} m tread " f"(assumption; photos show 4-5, the old notes said 8)") diff --git a/Tools/ue_build_review_map.py b/Tools/ue_build_review_map.py index 4cbe478..fb3a87d 100644 --- a/Tools/ue_build_review_map.py +++ b/Tools/ue_build_review_map.py @@ -172,7 +172,11 @@ try: # targets the portal sill rather than the centre of the elevation. # Standing 25 m out at eye height frames the whole elevation, which is what # the portal detail needs: the portals are small against a 14.5 m façade. - ("hero-portals", unreal.Vector(hero_x + 150, -4000, 170), unreal.Vector(hero_x + 150, hero_y, 420)), + # On the pavement in front of the flight: a pedestrian's own eye line, the + # angle the photographs that established the portals were taken from. + # eye height at 8 m: fills the frame with the three doorways, the flights and + # the plinth, which is what "portal detail" means here. + ("hero-portals", unreal.Vector(hero_x + 100, -2250, 170), unreal.Vector(hero_x + 100, hero_y, 230)), # straight on from the north sidewalk; the building body spans Y -1443..+250 ("hero-facade-front", unreal.Vector(hero_x + 200, -3200, 420), unreal.Vector(hero_x, hero_y + 400, 760)), # oblique from the north-west, reading the colonnade in depth