feat(facades): 0.1.6 retail second pass — relief, material mapping, framing
What the first pass got wrong, and what changed: - The mural plates were placed 0.20 m INSIDE the solid blockout volume, so they never rendered. Nothing can be recessed into a solid we do not cut: the inset is now faked by a proud frame with a near-flush plate, and the row reads. - Detail sat 0.05 m off the wall, under a pixel of depth at 40 m. Trim planes now stand 0.10-0.20 m proud, and the parapet became two tiers with deeper reveals. - 6806's parapet started at 0.62 H and left a 4.6 m blank band; the window storey and parapet moved up to follow the photograph. - Security bars on the upper windows, twelve fluted fins on the corner tower. - The trim's stucco/white/glass slots are mapped onto the demo's look materials, so the walls sit in the same noise/texture family as the rest of the block; the colour slots sampled from the photograph stay as authored. - Review camera pulled back and widened to 66 deg so the east end is in frame. - The scene audit caught duplicate RetailTrim_ actors: the demo builder's clear list did not include the new label, so every rebuild stacked another copy. Still open and not fixable by geometry: wall lettering. A plate at 0.10 m does not read at 40 m, so it moves to the 0.9.0 decal route (TODO.md, Screenshots/README.md).
This commit is contained in:
1 parent
4132f42ca1
commit
3942e9a215
36 files changed
+136
-75
No files matched your search
@@ -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
|
||||
|
||||
Reference in new issue
Block a user