fix(vehicle): the car is red in the engine, not black
Root cause was in the template, not the import path: 'car paint' is a legacy mix-shader
graph. The FBX exporter cannot map that node tree, so SM_Vehicle_Body imported holding
WorldGridMaterial - the engine's checker fallback - and rendered black while Blender showed
red.
Two changes:
- Tools/vehicle_from_template.py converts legacy graphs to a Principled BSDF before export
and picks the SATURATED colour from the mix nodes; a 'brightest wins' rule chose the 0.8
grey diffuse beside the 0.49 red and produced a grey car.
- Tools/ue_vehicle_materials.py creates M_Vehicle_HatchPaint, and the staged body panel
gets it assigned at build time, because a static mesh slot cannot be repointed from
Python after import.
Judge on the new capture: verdict=yes confidence=0.9 - 'a red hatch car with a red body and
dark wheels parked on a road'. The comparison table in Screenshots/README.md now shows both
columns agreeing on colour.
Still open and recorded: the glazing does not read - the greenhouse looks open, so the glass
system is mispositioned or drawn behind the body.
This commit is contained in:
1 parent
046e2c8b9e
commit
bb12ce8c33
53 files changed
+90
-66
No files matched your search
@@ -719,6 +719,14 @@ def build():
|
||||
if comp:
|
||||
comp.set_static_mesh(mesh)
|
||||
comp.set_mobility(unreal.ComponentMobility.MOVABLE)
|
||||
# The body imports with no usable material (its slot resolves to
|
||||
# WorldGridMaterial), so the paint is assigned on the staged panel.
|
||||
if mesh_name == "SM_Vehicle_Body":
|
||||
paint = unreal.EditorAssetLibrary.load_asset(
|
||||
"/Game/Hollywood/Vehicle/M_Vehicle_HatchPaint")
|
||||
if paint:
|
||||
comp.set_material(0, paint)
|
||||
log("Demo_VehiclePanel: body paint assigned")
|
||||
staged_panels += 1
|
||||
log(f"staged: {staged_panels} Demo_VehiclePanel actors (plain static meshes)")
|
||||
|
||||
|
||||
Reference in new issue
Block a user