feat(vehicle): build the skeletal mesh from the hot hatch

vehicle_from_template.py now authors the physics mesh from the real hot hatch: apply
the mirror/nodes modifiers, derive the 4 wheel centres, add a root + 4 wheel bones,
weight and export vehicle_skeletal.fbx. A rotation orients the car so it imports
unrolled (length +X, width +Y, height +Z); wheel bones land at front +X, rear -X,
left/right +/-Y. The vehicle still floats (rises to 33 m) - recorded in MEMORY.
This commit is contained in:
zwitschi committed 2026-11-10 20:47:54 +01:00
1 parent d8cbb0c95b
commit 63ba9d91ce
3 files changed
+140

No files matched your search

+15
View File
@@ -1132,3 +1132,18 @@ Historical task context from 2026-11-09/10; later vehicle findings above may sup
- Next step is not more solver tracing: reconcile the two meshes — drive the **hot hatch** (make
it skeletal, or rebuild `SK_Vehicle_Sedan` to match the hot hatch's axis and dimensions) so the
visible and physics cars are one asset with one forward axis.
## 2026-11-10 — Hot hatch is now the skeletal (physics) mesh; vehicle still floats
- `vehicle_from_template.py` now builds a skeletal mesh from the hot hatch (the real car):
it applies the MIRROR/NODES modifiers, derives the four wheel centres by quadrant, adds a
root + `Wheel_FL/FR/RL/RR` armature, weights wheels-to-bones, and exports
`vehicle_skeletal.fbx`. A rotation matrix [[0,1,0],[0,0,-1],[-1,0,0]] orients the car so the
FBX conversion lands it unrolled (length +X, width +Y, height +Z). Wheel bones import
correctly: FL (1.43,-0.71,0.34) FR (1.43,0.62,0.34) RL (-1.22,-0.75,0.36) RR (-1.22,0.67,0.36).
- **Still floats** (rises 300 -> 3315 cm, `simulating=1`, 4 wheels): the same suspension push
as before, so the reverse/float is NOT the visual/physics axis mismatch after all. Remaining
suspect is the chassis box centre (`-Extent.Z*0.25` = ~-20) vs the wheel-bone height (0.34):
the suspension rest length is measured against the root BONE, not the box, so the box offset
may be the push. Next: try `Box.Center = (0,0,+Extent.Z*0.3)` or drive the box from the
wheel-bone height, then re-run `-drivetest`.