docs(review): split into ReviewMap and DemoMap, with one status table
The review file now separates the two questions it was mixing: ReviewMap - assets staged on their own: individual objects, the Blender import, camera angles and the lighting comparison. Nothing from the game map is involved. DemoMap - the actual game map in development: street, buildings, player, vehicle in place. One status table at the top covers both parts, with a Part column, and remains the only place approval and issue notes are recorded. Between them sits the Blender-vs-UE comparison, which now pairs ReviewMap captures as well as DemoMap ones, followed by the ReviewMap image grid and the existing in-game shot sections. Tools/ue_build_review_map.py also stages the LATEST vehicle assets (five systems plus the hatch paint) and two new cameras - a three-quarter view of the car and a ground-level look at the character's feet - so the staging map never drifts from what the Blender tools last produced. Tools/render_screenshots.sh gained a second capture pass that renders ReviewMap into Screenshots/review/, after the demo collection because that pass clears the engine's screenshot folder.
This commit is contained in:
1 parent
a983dfdcdf
commit
72d5bab427
54 files changed
+254
-112
No files matched your search
@@ -192,6 +192,32 @@ try:
|
||||
else:
|
||||
log("MISSING: /Script/GigLine.GigLineCharacter")
|
||||
|
||||
# --- vehicle, from the latest Blender import ------------------------------
|
||||
# Staged from the same assets the demo map uses, so the review always shows what
|
||||
# Tools/vehicle_from_template.py most recently produced rather than a copy that can
|
||||
# drift. The panels are plain static meshes because the vehicle pawn keeps its
|
||||
# physics only.
|
||||
vehicle_origin = unreal.Vector(-1600.0, 600.0, 0.0)
|
||||
vehicle_systems = ("SM_Vehicle_Body", "SM_Vehicle_Trim", "SM_Vehicle_Glass",
|
||||
"SM_Vehicle_Lights", "SM_Vehicle_Wheels")
|
||||
staged_vehicle = 0
|
||||
for index, mesh_name in enumerate(vehicle_systems):
|
||||
mesh = unreal.EditorAssetLibrary.load_asset(f"/Game/Hollywood/Vehicle/{mesh_name}")
|
||||
if not mesh:
|
||||
log(f"MISSING vehicle system: {mesh_name}")
|
||||
continue
|
||||
piece = spawn(unreal.StaticMeshActor, vehicle_origin, f"Review_Vehicle_{index:02d}")
|
||||
if piece:
|
||||
piece.static_mesh_component.set_static_mesh(mesh)
|
||||
piece.static_mesh_component.set_mobility(unreal.ComponentMobility.STATIC)
|
||||
if mesh_name == "SM_Vehicle_Body":
|
||||
paint = unreal.EditorAssetLibrary.load_asset(
|
||||
"/Game/Hollywood/Vehicle/M_Vehicle_HatchPaint")
|
||||
if paint:
|
||||
piece.static_mesh_component.set_material(0, paint)
|
||||
staged_vehicle += 1
|
||||
log(f"staged: {staged_vehicle} vehicle systems at the staging area")
|
||||
|
||||
# --- NPC prefab -----------------------------------------------------------
|
||||
# The reusable NPC person: a collision capsule + visible MPFB body, standing
|
||||
# feet on Z 0, placed clear of the pawn so the prefab reads on its own.
|
||||
@@ -211,6 +237,10 @@ try:
|
||||
cams = [
|
||||
# wide scene: character, both cubes, floor
|
||||
("overview", unreal.Vector(700, -900, 620), unreal.Vector(0, 300, 80)),
|
||||
# the vehicle staging, three-quarter front, same framing idea as the demo shot
|
||||
("vehicle", unreal.Vector(-900, -200, 260), unreal.Vector(-1600, 600, 90)),
|
||||
# ground-level contact check: feet on the floor, shadow at the contact point
|
||||
("character-feet", unreal.Vector(220, -420, 45), unreal.Vector(0, 0, 25)),
|
||||
# the MPFB mannequin, mid shot
|
||||
("character", unreal.Vector(200, -300, 160), unreal.Vector(0, 0, 85)),
|
||||
# both cubes from the south: contact shadow vs cast shadow
|
||||
|
||||
Reference in new issue
Block a user