feat(hero): facade rework — inscription, medallions, motto band, banner lettering #39

Merged
zwitschi merged 93 commits from hero-facade-0.3.0 into main 2026-11-10 15:37:40 +01:00
52 changed files with 102 additions and 77 deletions
Showing only changes of commit f8b9f070d9 - Show all commits

No files matched your search

Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
+2 -2
View File
@@ -26,7 +26,7 @@ Both capture passes are produced by [`Tools/render_screenshots.sh`](../Tools/ren
| 11 | ReviewMap | [shadow compare](review/review-shadow-compare.png) | ☐ pending | |
| 12 | ReviewMap | [vehicle](review/review-vehicle.png) | ☐ pending | |
| 13 | DemoMap | [crossing](demo/review-demo-crossing.png) | ☐ pending | |
| 14 | DemoMap | [feet](demo/review-demo-feet.png) | ☐ pending | |
| 14 | DemoMap | [feet](demo/review-demo-feet.png) | ☐ pending | character and car float | |
| 15 | DemoMap | [north buildings](demo/review-demo-north-buildings.png) | ☐ pending | |
| 16 | DemoMap | [retail frontage](demo/review-demo-retail-frontage.png) | ☐ pending | |
| 17 | DemoMap | [spawn view](demo/review-demo-spawn-view.png) | ☐ pending | character and car float |
@@ -35,7 +35,7 @@ Both capture passes are produced by [`Tools/render_screenshots.sh`](../Tools/ren
| 20 | DemoMap | [third person walk](demo/review-demo-third-person-walk.png) | ☐ pending | character and car float |
| 21 | DemoMap | [third person](demo/review-demo-third-person.png) | ☐ pending | character and car float |
| 22 | DemoMap | [vehicle](demo/review-demo-vehicle.png) | ☐ pending | |
| 23 | DemoMap | [wheel](demo/review-demo-wheel.png) | ☐ pending | |
| 23 | DemoMap | [wheel](demo/review-demo-wheel.png) | ☐ pending | car floats | |
**Status:** ☐ pending · ☑ approved · ☒ rejected. "ReviewMap" rows are asset staging; "DemoMap" rows are the game map.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
+26 -1
View File
@@ -675,7 +675,32 @@ def build():
# Measured, not guessed: the QA self-test reports the capsule settling at Z 561 on this
# pavement (capsule half height 88), so 561 puts the soles exactly on the surface. The
# previous Z 600 started 39 cm in the air and read as floating.
player_z = 561.0
# Measured from the staged geometry: Demo_Sidewalk_North spans Y -1912..-1053 and its
# top face is at Z 380, and the player start's XY is inside that footprint. The capsule
# centre belongs at 380 + half height 88 + 1 = 469. Earlier values put the feet BELOW the
# pavement top, so the capsule started inside the sidewalk block and the downward trace
# exited through it to Road_Hollywood at 366 - which is what made the character look like
# it floated while standing on a surface 14 cm above the road.
player_z = 469.0
# Stopgap collision for the north sidewalk. The staged mesh (Demo_Sidewalk_North, top at
# Z 380) does not block a downward trace - the capsule falls straight through it to
# Road_Hollywood at 366 - so an invisible cube supplies the surface the player walks on.
# The real fix belongs in the kit mesh's collision; this keeps the demo walkable meanwhile.
sidewalk_collision = spawn(unreal.StaticMeshActor,
unreal.Vector(-14000.0, -1482.5, 376.0),
"Demo_SidewalkCollision")
if sidewalk_collision:
cube = unreal.EditorAssetLibrary.load_asset("/Engine/BasicShapes/Cube.Cube")
comp = sidewalk_collision.get_component_by_class(unreal.StaticMeshComponent)
if cube and comp:
comp.set_static_mesh(cube)
comp.set_mobility(unreal.ComponentMobility.STATIC)
# A 100 cm engine cube: 279 m long, 8.6 m wide, 8 cm thick -> top at Z 380.
sidewalk_collision.set_actor_scale3d(unreal.Vector(279.0, 8.6, 0.08))
comp.set_collision_profile_name("BlockAll")
sidewalk_collision.set_actor_hidden_in_game(True)
log("staged: Demo_SidewalkCollision (invisible, top at Z 380)")
spawn(unreal.PlayerStart, unreal.Vector(-13336.0, -1150.0, player_z), "Demo_PlayerStart",
unreal.Rotator(pitch=0.0, yaw=90.0, roll=0.0))
log("staged: Demo_PlayerStart on the cut north sidewalk, facing south (+Y)")