docs(vehicle): the reverse is a 90-degree armature roll, not the axle sign

Bone reference poses show root roll 90 and wheel bones rolled +/-90, with wheel
centres at Z +/-0.81 instead of Y. The mesh vertices are unrotated, so the FBX
axis_forward:-Y conversion rotates the armature but not the geometry, leaving the
wheel axle on a rotated axis. Fix is in the bone authoring, verified by the
reference-pose probe.
This commit is contained in:
zwitschi committed 2026-11-10 18:52:24 +01:00
1 parent c3aacabd46
commit 3d4e830660
1 file changed
+14
+14
View File
@@ -1060,3 +1060,17 @@ Historical task context from 2026-11-09/10; later vehicle findings above may sup
spins about the wrong axis. `FPhysicsAssetUtils`-style body setup is not the cause either
(physics already simulates).
- Kept `-reversetest` in the drive test as the diagnostic for this.
## 2026-11-10 — Vehicle reverse: the skeleton is rolled 90° vs the mesh
- Bone reference poses (`AnimPose.get_ref_bone_pose`) show the armature is **rolled 90°**:
`root` rot (roll 90, 0, 0), `Wheel_FL/RL` rot (90, 0, −180), `Wheel_FR/RR` rot (−90, 0, 0);
wheel centres land at Z ±0.81 instead of Y ±0.81. The mesh vertices are unrotated (bounds
476 × 228 × 144, nose +X), so the **FBX `axis_forward: -Y` conversion rotates the armature
but not the geometry** — the wheel axle (bone Y) ends up on a rotated axis, which is why the
engine torque drives the wheels backward and why the inward/outward axle flip was a no-op.
- Fix belongs in the bone authoring, not the vehicle component: build the wheel bones so their
Y axis lands on Unreal +Y after the FBX conversion, or set `use_space_transform`/bake the
space transform so mesh and armature share one frame. Verify with the reference-pose probe
(`get_ref_bone_pose` → the wheel axle should read ±Y, not ±Z) before re-running the drive
test.