feat(vehicle): the car renders, built from the owner's hot hatch template

The invisible-vehicle defect is closed. Shot 9 now shows the car instead of an empty road.

Tools/vehicle_from_template.py converts Art/blender/vehicle/hot hatch.blend into UE-ready
assets, following two skills:

  vehicle-artist - systems split (body 113k tris, trim 10.5k, glass 20.5k, lights 18.6k,
  wheels 47.8k), one UCX_ hull 1.45 x 3.94 x 0.76 m, two decimated LODs at 39.7k and 13.6k.
  unreal-export - scale normalised to a documented 4.05 m hot hatch before export (the
  template measures 7.26 m, factor 0.5579), then verified after import: body bounds
  1.51 x 4.02 x 1.22 m against the 4.05 m target.

Staged as five plain StaticMeshActors, because the earlier probe proved those render while
the same meshes attached to the vehicle pawn do not.

Open and recorded rather than hidden: judge_screenshot returns verdict=no confidence=0.9 -
the silhouette does not read as a hot hatch from this angle and the car floats slightly.
The likely causes are a system misclassification in the template conversion and an
origin-height error of a few centimetres.
This commit is contained in:
zwitschi committed 2026-11-09 15:52:42 +01:00
1 parent 021aa56121
commit b50afa4bcd
67 files changed
+384 -83

No files matched your search

+6 -6
View File
@@ -16,14 +16,13 @@ import os
import unreal
DEST = "/Game/Hollywood/Vehicle"
SOURCE = "/tmp/gigline/vehicle"
SOURCE = "/tmp/gigline/hatch"
SYSTEMS = (
("body", "SM_Vehicle_Body"),
("trim", "SM_Vehicle_Trim"),
("glass", "SM_Vehicle_Glass"),
("light_front", "SM_Vehicle_Light_Front"),
("light_rear", "SM_Vehicle_Light_Rear"),
("mirrors", "SM_Vehicle_Mirrors"),
("wheel", "SM_Vehicle_Wheel"),
("lights", "SM_Vehicle_Lights"),
("wheels", "SM_Vehicle_Wheels"),
)
RESULT = "/tmp/gigline/vehicle-import.txt"
lines = []
@@ -103,7 +102,8 @@ def main():
log(f"{name}: imported as its own asset ({'ok' if mesh else 'MISSING'}); "
"LOD group wiring needs an editor session")
# Skeletal vehicle for Chaos: a root bone plus one bone per wheel, everything skinned.
# Skeletal vehicle for Chaos is not built from this template yet: the hatch is a
# static model, and the drivable rig has to be authored around it.
skel_path = os.path.join(SOURCE, "vehicle_skeletal.fbx")
if os.path.exists(skel_path):
task = unreal.AssetImportTask()