docs(vehicle): record the FBX bakes a -90 deg armature roll

The export rotates the armature -90 deg about X (wheel axle on Z) while leaving the
mesh unrotated. Head/tail, axis_forward:X, and armature pre-roll all failed to change
the imported bones. Next: post-import skeleton fix or bake_space_transform.
This commit is contained in:
zwitschi committed 2026-11-10 19:06:11 +01:00
1 parent 3d4e830660
commit a2f8ddccf1
1 file changed
+18
+18
View File
@@ -1074,3 +1074,21 @@ Historical task context from 2026-11-09/10; later vehicle findings above may sup
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.
## 2026-11-10 — Vehicle reverse: FBX armature bakes a −90° roll the build can't undo
- Inspecting `vehicle_skeletal.fbx` (imported back into Blender) shows the export bakes a
**−90° rotation about X** into the armature: `root` tail (0,1.64,0), wheel tails at
(x, 0.33, ±0.83) — the wheel **axle lands on Z**, not Y. The mesh vertices are exported
unrotated (bounds 476×228×144), so mesh and armature come back in different frames.
- Three Blender-side fixes were tried and **none changed the imported wheel bones**:
1. axle tail along −Z (head/tail) — reference pose unchanged;
2. `axis_forward: "X"` on the `_CHARACTER` preset — unchanged;
3. armature object pre-roll −90° about X — unrolled the `root` (roll 90→0) but left the
wheel bones at roll ±90 / Z ±0.81.
- Conclusion: the export bakes the armature conversion regardless of head/tail or the
object transform. Remaining options (untried): `bake_space_transform: true` (also rolls
the mesh — would need the mesh un-rolled again in Unreal), or a **post-import skeleton
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`.