docs(vehicle): revert the axis fix; the reverse is in the Chaos solver

The axis_forward:X / Blender-Z axle fix changed the reference pose but not the drive
(-2737 cm/s), and axis_forward:X also alters the shared character preset. Revert it.
The Chaos solver drives the wheel about the vehicle's Y (not the bone), and the
drive force is positive yet the car moves backward - the inversion is in the engine
torque / drive-force sign. Next: GetEngineTorque() sign or a SetupVehicle override.
This commit is contained in:
zwitschi committed 2026-11-10 19:45:17 +01:00
1 parent ecdd8208db
commit 911a7059ae
4 files changed
+14 -10

No files matched your search

-1
View File
@@ -60,7 +60,6 @@ _METRIC = {
_CHARACTER = dict(
_METRIC,
object_types={"ARMATURE", "MESH"},
axis_forward="X",
add_leaf_bones=False,
path_mode="COPY",
embed_textures=False,
+2 -4
View File
@@ -199,10 +199,8 @@ def build_skeletal(joined, wheels, out_fbx, exp_dir):
for name, (x, y) in wheel_positions.items():
bone = edit_bones.new(name)
bone.head = (x, y, r)
# Point the bone along the axle in BLENDER Z: the Unreal FBX import maps (x,y,z)->
# (x,-z,-y), so a tail along Z lands on Unreal Y (horizontal axle). Opposite sides
# get opposite signs (left down, right up) so the axles point outward.
bone.tail = (x, y, r - math.copysign(0.25, y))
# Point the bone along the axle: the wheel spins about its own Y.
bone.tail = (x, y - math.copysign(0.25, y), r)
bone.parent = root
bpy.ops.object.mode_set(mode="OBJECT")
-5
View File
@@ -119,11 +119,6 @@ def main():
ui.import_animations = False
ui.import_materials = True
ui.skeletal_mesh_import_data.import_uniform_scale = 1.0
# The FBX is already authored in the Unreal frame (nose +X, axle along Y); the
# importer's default axis conversion otherwise rolls the armature 90 deg about X and
# the wheel axles land on Z, which drives the Chaos vehicle backward.
ui.skeletal_mesh_import_data.import_rotation = unreal.Rotator(0.0, 0.0, 0.0)
ui.skeletal_mesh_import_data.import_translation = unreal.Vector(0.0, 0.0, 0.0)
task.options = ui
unreal.AssetToolsHelpers.get_asset_tools().import_asset_tasks([task])
skel = unreal.EditorAssetLibrary.load_asset(f"{DEST}/SK_Vehicle_Sedan")