fix(vehicle): author wheel axles horizontally; record reverse is not the axle

Wheel axles were vertical in Unreal (the FBX armature conversion rolled them 90 deg
about X). Fix: axis_forward:X in the character preset and a Blender-Z wheel tail so the
axle lands on Unreal Y. This is correct (reference pose FL roll 180 / FR roll 0) but
does not fix the reverse: -drivetest still -2737 cm/s, and FinalRatio sign is a no-op.
The remaining cause is the Chaos wheel spin-axis convention or engine torque sign.
This commit is contained in:
zwitschi committed 2026-11-10 19:27:36 +01:00
1 parent a2f8ddccf1
commit ecdd8208db
4 files changed
+23 -2

No files matched your search

+13
View File
@@ -1092,3 +1092,16 @@ Historical task context from 2026-11-09/10; later vehicle findings above may sup
fix** — rotate each wheel bone's reference pose −90° about X in `ue_vehicle_import.py`
(or a commandlet) so the axle lands on Y. Verify with the `get_ref_bone_pose` probe
(axle should read ±Y) before re-running `-drivetest`.
## 2026-11-10 — Vehicle reverse: not the axle, not the gear ratio
- The reverse direction is **not** the axle orientation and **not** the final-drive ratio:
flipping the wheel-bone axle to horizontal (Unreal ±Y, via `axis_forward: X` + a Blender-Z
tail) changed the reference pose (FL roll 180, FR roll 0) but the `-drivetest` still reads
`speed=-2737 cm/s`. `FinalRatio = -3.5` also changed nothing (it is a magnitude; the gear
direction is `ForwardGearRatios` vs `ReverseGearRatios`).
- So the wheels spin backward for positive torque regardless of axle direction, which points
at the **wheel spin axis convention in the Chaos solver** (the `FSimpleWheel` angular
velocity axis) or the engine torque sign, not the bone authoring. The horizontal-axle fix
is kept (it is correct even if insufficient): `axis_forward: X` in the character preset and
a Blender-Z wheel tail (`r - copysign(0.25, y)`) so the axle lands on Unreal Y.