From bc9fed8e11945df6f807c74f815db158c2cd828f Mon Sep 17 00:00:00 2001 From: Zwitschi Date: Tue, 10 Nov 2026 15:11:52 +0100 Subject: [PATCH] fix(hero): seat the motto band and surround on the parapet face The motto band and moulded surround had the same burial as the medallions: offset 0.06 left their front face at Y -0.44, inside the 1.2 m-deep parapet, so the 'inset panel with a moulded surround' never rendered. Only the inscription (moved to 0.40 in the previous commit) read. - Band recessed at offset 0.34 (Y -0.16), surround proud at 0.43 (Y -0.07), inscription stays 0.40 (Y -0.10). - Band is now light stone (was stone_dark): a dark band at the parapet face would have sat directly behind the dark inscription marks and swallowed them. The reference is dark incised lettering on a pale band. - Removed the dead duplicate 'Hero_MottoBand 0.40' entry - the earlier 0.06 match won, so the 0.40 was silently ignored. Rendered and judged; the advisory judge no longer flags the band. --- Art/blender/hero/hero-facade-2026-11-07.blend | 4 ++-- Game/GigLine/Content/Hollywood/DemoMap.umap | 2 +- .../Hollywood/ElCapitan/M_Facade_Banner.uasset | 2 +- .../ElCapitan/M_Facade_Banner_Ref.uasset | 2 +- .../ElCapitan/M_Facade_GlassDark.uasset | 2 +- .../ElCapitan/M_Facade_GlassDark_Ref.uasset | 2 +- .../Hollywood/ElCapitan/M_Facade_Grille.uasset | 2 +- .../ElCapitan/M_Facade_Grille_Ref.uasset | 2 +- .../Hollywood/ElCapitan/M_Facade_Stone.uasset | 2 +- .../ElCapitan/M_Facade_StoneShadow.uasset | 2 +- .../ElCapitan/M_Facade_StoneShadow_Ref.uasset | 2 +- .../ElCapitan/M_Facade_Stone_Ref.uasset | 2 +- .../Hollywood/ElCapitan/SM_HeroFacade.uasset | 4 ++-- Game/GigLine/Content/Test/ReviewMap.umap | 2 +- MEMORY.md | 12 ++++++++++++ .../review/hero-compare-facade-front.png | 4 ++-- .../review/review-hero-facade-front.png | 4 ++-- .../review/review-hero-facade-oblique.png | 4 ++-- TODO.md | 1 + Tools/blender/hero_facade_build.py | 18 +++++++++++------- 20 files changed, 46 insertions(+), 29 deletions(-) diff --git a/Art/blender/hero/hero-facade-2026-11-07.blend b/Art/blender/hero/hero-facade-2026-11-07.blend index 99368a8..d18bd54 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:0020a5a5bc39b3ab4d1baeedc9f7cbcd40ee76303934788f9d414318dbfe848c -size 319961 +oid sha256:e6eba5b377cc011bb48614063e314bd307fa9b7d2fbeb89ebb16f2367c7fd77c +size 319928 diff --git a/Game/GigLine/Content/Hollywood/DemoMap.umap b/Game/GigLine/Content/Hollywood/DemoMap.umap index bf39c6a..e84123f 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:0c8c3d27fdbd4319e7b22fd94cb0f4d546575b65cb6bb1419b58689aab667e4a +oid sha256:551599dfc44df885e2f4251ce32aa8eac521b20708d53f3cbe64f59d5e816068 size 614603 diff --git a/Game/GigLine/Content/Hollywood/ElCapitan/M_Facade_Banner.uasset b/Game/GigLine/Content/Hollywood/ElCapitan/M_Facade_Banner.uasset index 272ed95..5368041 100644 --- a/Game/GigLine/Content/Hollywood/ElCapitan/M_Facade_Banner.uasset +++ b/Game/GigLine/Content/Hollywood/ElCapitan/M_Facade_Banner.uasset @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:b5a40b0011ee5d8324a9230211cc747551a21a92273b8bdb919978126025d3b7 +oid sha256:ac721d4e0d758eb5930e0158c714aec09e711dc9590d854f5bdce9bf26402760 size 56660 diff --git a/Game/GigLine/Content/Hollywood/ElCapitan/M_Facade_Banner_Ref.uasset b/Game/GigLine/Content/Hollywood/ElCapitan/M_Facade_Banner_Ref.uasset index b238b7b..9f0eca3 100644 --- a/Game/GigLine/Content/Hollywood/ElCapitan/M_Facade_Banner_Ref.uasset +++ b/Game/GigLine/Content/Hollywood/ElCapitan/M_Facade_Banner_Ref.uasset @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:31c3df2749c45296200bbd7bbcd62fbca5e08c27dc0bce41acdb6f0dfa1fb97f +oid sha256:8a4aa468719657661c87c6a2ab7aa86af12441d2a8f418c9daf7fc461adb0845 size 4791 diff --git a/Game/GigLine/Content/Hollywood/ElCapitan/M_Facade_GlassDark.uasset b/Game/GigLine/Content/Hollywood/ElCapitan/M_Facade_GlassDark.uasset index acee787..1255cb9 100644 --- a/Game/GigLine/Content/Hollywood/ElCapitan/M_Facade_GlassDark.uasset +++ b/Game/GigLine/Content/Hollywood/ElCapitan/M_Facade_GlassDark.uasset @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:1a01313cac24111631b087efa4df562dab709d7c59b70f1e875a4344b5c94a0a +oid sha256:7db1dea4423d12be8086ed3cdf1f24fb9e70e6cb7caa3b19c885a15cec4db58d size 56708 diff --git a/Game/GigLine/Content/Hollywood/ElCapitan/M_Facade_GlassDark_Ref.uasset b/Game/GigLine/Content/Hollywood/ElCapitan/M_Facade_GlassDark_Ref.uasset index cb82ebc..e85bf2d 100644 --- a/Game/GigLine/Content/Hollywood/ElCapitan/M_Facade_GlassDark_Ref.uasset +++ b/Game/GigLine/Content/Hollywood/ElCapitan/M_Facade_GlassDark_Ref.uasset @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:d6659d68bf71ea0b6a8c531a02da7c581ca33c00e224e75c6a8694742fba5632 +oid sha256:b572124812243b05962e39ef1a88cf23407052fe6658e69781b2fff677ca9529 size 4806 diff --git a/Game/GigLine/Content/Hollywood/ElCapitan/M_Facade_Grille.uasset b/Game/GigLine/Content/Hollywood/ElCapitan/M_Facade_Grille.uasset index 62f74b3..92bab7b 100644 --- a/Game/GigLine/Content/Hollywood/ElCapitan/M_Facade_Grille.uasset +++ b/Game/GigLine/Content/Hollywood/ElCapitan/M_Facade_Grille.uasset @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:6310393bfadeaa87472620da51c48121425a17a7bba00bbd74312f4abbc8b09a +oid sha256:7ece7627457c93bb998c94a14821accb2417ee889565bee8656c6150990ba92a size 56660 diff --git a/Game/GigLine/Content/Hollywood/ElCapitan/M_Facade_Grille_Ref.uasset b/Game/GigLine/Content/Hollywood/ElCapitan/M_Facade_Grille_Ref.uasset index bf460d2..75bd595 100644 --- a/Game/GigLine/Content/Hollywood/ElCapitan/M_Facade_Grille_Ref.uasset +++ b/Game/GigLine/Content/Hollywood/ElCapitan/M_Facade_Grille_Ref.uasset @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:fe4be8642f1a486980f559ff2a0587c7730ce546655ada10833a60fd3b38ac7f +oid sha256:df9bdf3b7dcc2e090a83c9befebed46eb39af0dded649904410199cf0bd8b0f0 size 4791 diff --git a/Game/GigLine/Content/Hollywood/ElCapitan/M_Facade_Stone.uasset b/Game/GigLine/Content/Hollywood/ElCapitan/M_Facade_Stone.uasset index 40cab24..3dcb2fa 100644 --- a/Game/GigLine/Content/Hollywood/ElCapitan/M_Facade_Stone.uasset +++ b/Game/GigLine/Content/Hollywood/ElCapitan/M_Facade_Stone.uasset @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:cd7009b8ca4ca843d3c3b07f02fa018367f98953c28fee77feb9a1c50b722cae +oid sha256:b41c65c0afcde6740b97d8848d7cbf3954f747bf4fba1de8aafd0bb2c5b7ef83 size 56644 diff --git a/Game/GigLine/Content/Hollywood/ElCapitan/M_Facade_StoneShadow.uasset b/Game/GigLine/Content/Hollywood/ElCapitan/M_Facade_StoneShadow.uasset index 33d9b04..406adc3 100644 --- a/Game/GigLine/Content/Hollywood/ElCapitan/M_Facade_StoneShadow.uasset +++ b/Game/GigLine/Content/Hollywood/ElCapitan/M_Facade_StoneShadow.uasset @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:f6c361e951b28fd658aa3a7183fe70e12e82471d9587892c4a889e0287776656 +oid sha256:c3389eecea25ae23530f963444edb74ed2a64887ea1ee07273693cdd9331b9ad size 56740 diff --git a/Game/GigLine/Content/Hollywood/ElCapitan/M_Facade_StoneShadow_Ref.uasset b/Game/GigLine/Content/Hollywood/ElCapitan/M_Facade_StoneShadow_Ref.uasset index ae4b45f..f459232 100644 --- a/Game/GigLine/Content/Hollywood/ElCapitan/M_Facade_StoneShadow_Ref.uasset +++ b/Game/GigLine/Content/Hollywood/ElCapitan/M_Facade_StoneShadow_Ref.uasset @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:ae5e7c2802615a6df9a2ff84d949add91b38c1c638008569f7c67138a29bdd00 +oid sha256:bc1e7da9b1fa845b9edf455c872a5641de1e52f304fb7f1946665e3b12c501a0 size 6981 diff --git a/Game/GigLine/Content/Hollywood/ElCapitan/M_Facade_Stone_Ref.uasset b/Game/GigLine/Content/Hollywood/ElCapitan/M_Facade_Stone_Ref.uasset index 406c708..ebb5d01 100644 --- a/Game/GigLine/Content/Hollywood/ElCapitan/M_Facade_Stone_Ref.uasset +++ b/Game/GigLine/Content/Hollywood/ElCapitan/M_Facade_Stone_Ref.uasset @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:3b0c081dce73326a41962646b5f827e6f5d6821426a157875a6aa3fd053eead6 +oid sha256:e3235d612d3996822924aad2f19dbf998f492fb71fd4480e9d99370bb88fef90 size 6945 diff --git a/Game/GigLine/Content/Hollywood/ElCapitan/SM_HeroFacade.uasset b/Game/GigLine/Content/Hollywood/ElCapitan/SM_HeroFacade.uasset index 88e171e..f8a2b26 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:f8badb656ce53af71a8469c9549db6bd496801cdbe658997e2e64445e3664d7c -size 208117 +oid sha256:8dcdf1cc3e153f546a5b683a2a5c009ed178bd382c3c39c7c7dc407eecbf00f2 +size 208127 diff --git a/Game/GigLine/Content/Test/ReviewMap.umap b/Game/GigLine/Content/Test/ReviewMap.umap index dbe9fb8..a3c8190 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:2062d8123e48b1731d5f6436d587ade4c6cfe710d1c626b9e2085d9c5ec43125 +oid sha256:f498c7e9a4770e4dcafe7c343200410b54e4f4ceac64f263e7772f6dcfb3e141 size 39252 diff --git a/MEMORY.md b/MEMORY.md index 1daa831..50d1f4d 100644 --- a/MEMORY.md +++ b/MEMORY.md @@ -668,3 +668,15 @@ A visual change needs **build → import → render**, never just a render: `ren - **Medallion fix:** stepped relief with per-layer prefixes so `seat_on_front` gives each its own stand-off — `MedallionRim` 0.36, `MedallionField` 0.43, `MedallionBoss` 0.50. One shared prefix (`Hero_Medallion`) would seat every disc at the same offset and flatten the relief, and it also matched the more specific prefixes via `startswith`, so it had to be removed entirely. - **Medallions were also at ±6.2, inside the inscription text (spans ±6.87).** Moved to ±9.8. - **`Tools/review/hero_iterate.sh` still had the pre-move `cd "$(dirname "$0")/.."`** from the tools restructure — it landed in `Tools/` and failed `find Art` with "no such file". Fixed to `../..`, matching `render_screenshots.sh`. + +## 2026-11-10 — Hero motto band + surround: same burial, plus dark-on-dark + +- The motto band and moulded surround shared the medallion burial (offset 0.06 → front + Y −0.44, inside the parapet). Fixed the same way: band recessed at 0.34 (Y −0.16), + surround proud at 0.43 (Y −0.07), inscription stays 0.40 (Y −0.10). +- **The band had to go light (`stone`, was `stone_dark`) at the same time.** A dark + band at the parapet face would have sat directly behind the dark inscription marks and + swallowed them; the reference is dark incised lettering on a pale stone band. +- **The `seat_on_front` table had a dead duplicate** — `Hero_MottoBand` appeared at both + 0.06 and 0.40, and the first match (0.06) won, so the 0.40 was silently ignored. That + is why "the band is buried" looked fixed in the table while the build kept burying it. diff --git a/Screenshots/review/hero-compare-facade-front.png b/Screenshots/review/hero-compare-facade-front.png index 2c7cfd4..c05b850 100644 --- a/Screenshots/review/hero-compare-facade-front.png +++ b/Screenshots/review/hero-compare-facade-front.png @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:58a8faf4031b0202f0b5673aa57e5b9ac2e306b4ea0df8666f4e755324ec2c6e -size 3023151 +oid sha256:573ae9be2413a4dc2074a8b136e4034108bb90439bc2b0c55d8c51cb9b44521f +size 3036541 diff --git a/Screenshots/review/review-hero-facade-front.png b/Screenshots/review/review-hero-facade-front.png index da1d502..6c0b094 100644 --- a/Screenshots/review/review-hero-facade-front.png +++ b/Screenshots/review/review-hero-facade-front.png @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:ad26ad1421a66826af53085afe22a2f54b86fe4c11d08bcfbd8e774e3da94ede -size 2379767 +oid sha256:0ff356626657fc268c3658373a0beb9f6449ad173cfffd0128463eab8cc689e9 +size 2406802 diff --git a/Screenshots/review/review-hero-facade-oblique.png b/Screenshots/review/review-hero-facade-oblique.png index b12a091..15ec60d 100644 --- a/Screenshots/review/review-hero-facade-oblique.png +++ b/Screenshots/review/review-hero-facade-oblique.png @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:b3aed8af088ca1b7cc357c13a23fa797c76a29103bd91eca1777fe0651237c61 -size 2005966 +oid sha256:9c9faabe70cf8ab758086b7e938973b2658b1c9f6f1f754405ad9edf83fe96e3 +size 2032452 diff --git a/TODO.md b/TODO.md index 4b35138..a0e5888 100644 --- a/TODO.md +++ b/TODO.md @@ -224,6 +224,7 @@ Open: - [x] **Make the generated ashlar albedo render.** Two blockers, both measured: the map's generic material pass was **overriding every hero slot** with the kit's flat stone (`comp.set_material` on `Hero_Facade`), and assigning authored materials to the _mesh's_ slot list does not persist because `get_editor_property("static_materials")` returns a copy. What works: exclude the hero from the generic pass and set **component-level overrides** to the authored `*_Ref` materials in both builders (`apply_hero_materials()`). The elevation now shows coursed, grainy limestone. - [x] Carved inscription: `inscription()` in `Tools/blender/hero_facade_build.py` lays 112 letter marks in three lines across the attic, in the shadow stone so they read at 45 m. They had to be **seated on the parapet face** (`FRONT_Y + 0.40`): the parapet is 1.2 m deep and stands in front of the wall plane, so marks at the wall plane were hidden behind it. - [x] Medallion relief that reads at 45 m. **Measured first, then fixed:** the discs were not just flat - they were **buried**. `seat_on_front` put `Hero_Medallion` at offset 0.08 → front face Y −0.42, while the parapet (1.2 m deep) stands at Y −0.15, so both medallions were inside the parapet and never rendered (the motto band and surround have the same bug at offset 0.06). Fixed: three stepped layers per medallion — `Hero_MedallionRim` (0.55 m, dark, offset 0.36 → Y −0.14), `Hero_MedallionField` (0.38 m, light, offset 0.43 → Y −0.07), `Hero_MedallionBoss` (0.15 m, dark, offset 0.50 → Y 0.00) — a 7 cm step each way so the rim/field/boss read as relief. Moved from ±6.2 (inside the inscription text, ±6.87) to ±9.8. Rendered and judged; the two-model judge is advisory-pessimistic (`no` 0.93) and does not flag medallions any more. Owner review pending. +- [x] Motto band and surround — same burial bug (offset 0.06 → front Y −0.44). The band is now **light stone** (was `stone_dark`, which would have swallowed the dark lettering once visible), recessed at offset 0.34 (Y −0.16), with the moulded surround proud at offset 0.43 (Y −0.07) and the inscription at 0.40 (Y −0.10); the dead duplicate `Hero_MottoBand 0.40` entry is removed. Rendered and judged; the judge (`no` 0.93) no longer flags the band, only the stone warmth/column fluting the owner has already directed lighter. Owner review pending. - [ ] Banner lettering (JIMMY KIMMEL LIVE) - needs a texture; the banners are flat panels today. - [ ] Crimson banner tone and the JIMMY KIMMEL LIVE lettering. - [ ] Re-render the three ReviewMap staging shots and put them back in the status table for review. diff --git a/Tools/blender/hero_facade_build.py b/Tools/blender/hero_facade_build.py index 916fe9e..56ea550 100644 --- a/Tools/blender/hero_facade_build.py +++ b/Tools/blender/hero_facade_build.py @@ -264,9 +264,11 @@ def build(): for z_off in (-0.575, 0.575): cube(f"Hero_MottoSurround_h{int(z_off > 0)}", 0.0, -1.13, motto_z + z_off, motto_w + 0.64, 0.26, 0.32, stone) - cube("Hero_MottoBand", 0.0, -1.06, motto_z, motto_w, 0.10, 0.85, stone_dark) - # Dark marks, not stone-on-stone: at 45 m a same-colour relief disappears, and the reference letters read - # as dark incisions against the pale wall. + # Light stone band, not the dark panel the blockout used: the reference letters are + # dark incisions against a pale band, so a dark band would swallow the dark lettering. + # The band sits recessed behind its moulded surround while the surround and the + # lettering stand proud, so the frame and the text both read at 45 m. + cube("Hero_MottoBand", 0.0, -1.06, motto_z, motto_w, 0.10, 0.85, stone) inscription(motto_w - 0.6, motto_z, stone_dark) note("Hero_MottoBand", (motto_w, 0.10, 0.85), "photographs: motto panel above the colonnade, now an inset panel with a " @@ -411,14 +413,16 @@ def build(): # front face is behind the wall plane are moved until it sits at FRONT_Y + offset. seat_on_front(( ("Hero_Architrave", 0.05), ("Hero_Cornice", 0.05), ("Hero_Dentil", 0.05), - ("Hero_Entablature", 0.03), ("Hero_MottoBand", 0.06), ("Hero_MottoSurround", 0.06), + ("Hero_Entablature", 0.03), ("Hero_MottoBand", 0.34), ("Hero_MottoSurround", 0.43), ("Hero_MedallionRim", 0.36), ("Hero_MedallionField", 0.43), ("Hero_MedallionBoss", 0.50), ("Hero_Banner", 0.08), ("Hero_Window", 0.03), ("Hero_Portal", 0.05), ("Hero_PortalJamb", 0.08), ("Hero_PortalLintel", 0.08), ("Hero_PortalMullion", 0.04), ("Hero_PortalSign", 0.10), - # The parapet is 1.2 m deep and stands in front of the wall plane, so the inscription has to sit on - # ITS face, not on FRONT_Y - otherwise the parapet hides the letters entirely. - ("Hero_Inscription", 0.40), ("Hero_MottoBand", 0.40), + # The parapet is 1.2 m deep and stands in front of the wall plane, so the attic detail + # (inscription, motto band, surround) has to sit on ITS face, not on FRONT_Y - the old + # 0.06/0.08 offsets left the band and surround buried inside the parapet. The band is + # recessed (0.34) behind the proud surround (0.43) and the lettering (0.40). + ("Hero_Inscription", 0.40), )) return parts, lines