fix(vehicle): raise the chassis box above the ground (float 33m -> 7.8m)

Box.Center was -Extent.Z*0.25 (below the root bone); the box then sat under the ground
and the suspension pushed the chassis up. Raising it to +Extent.Z*0.35 cuts the float
from ~33 m to 7.8 m, confirming the direction. Still not settled - the box centre and/or
the root bone (grounded at Z 0 by normalise_scale) need to move to the car's centre of
mass.
This commit is contained in:
zwitschi committed 2026-11-10 20:59:53 +01:00
1 parent 63ba9d91ce
commit 84291a5270
2 files changed
+16 -1

No files matched your search

@@ -56,7 +56,11 @@ UPhysicsAsset* UGigLineVehicleBuilder::BuildPhysicsAsset(USkeletalMesh* Mesh,
Box.X = Extent.X * 1.9f; Box.X = Extent.X * 1.9f;
Box.Y = Extent.Y * 1.8f; Box.Y = Extent.Y * 1.8f;
Box.Z = Extent.Z * 0.55f; Box.Z = Extent.Z * 0.55f;
Box.Center = FVector(0.f, 0.f, -Extent.Z * 0.25f); // The chassis body must sit ABOVE the ground (the car body is at Z 0..height), not below
// the root bone. The old -Extent.Z*0.25 put the box below the ground and the suspension
// (measured against the root bone) then pushed the chassis upward. Place it at the car's
// mid-height instead.
Box.Center = FVector(0.f, 0.f, Extent.Z * 0.35f);
Body->AggGeom.BoxElems.Add(Box); Body->AggGeom.BoxElems.Add(Box);
PhysicsAsset->SkeletalBodySetups.Add(Body); PhysicsAsset->SkeletalBodySetups.Add(Body);
+11
View File
@@ -1147,3 +1147,14 @@ Historical task context from 2026-11-09/10; later vehicle findings above may sup
the suspension rest length is measured against the root BONE, not the box, so the box offset 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 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`. wheel-bone height, then re-run `-drivetest`.
## 2026-11-10 — Box centre: raising it cuts the float, but it persists
- `Box.Center = Extent.Z*0.35` (was `-Extent.Z*0.25`) cuts the float from ~33 m to **7.82 m**
(`settled at Z 782`, ground at Z 5). Direction confirmed: the chassis box belongs above the
ground, not below the root bone. Still not settled, so the box centre needs to go higher toward
the car's centre of mass (~0.7 m), and/or the root bone should sit at the centre of mass rather
than at the ground (the `normalise_scale` grounds the whole car, so the root bone is at Z 0).
- The hot-hatch skeletal mesh now imports (403 x 148 x 158 cm), but the mesh is rolled (height Y,
width Z) while the armature is correct - the MESH vertices are exported raw (identity) while the
ARMATURE is baked with the FBX conversion, the same mesh-vs-armature split as before.