test(vehicle): the body is genuinely dynamic, so the teleport is applied to a normal actor
The dynamics probe rules out the last structural explanation: simulate=1 instance=yes profile=PhysicsActor A normal dynamic actor - and it still travels ~700 cm/s upward with vZ oscillating around zero. So the teleport is applied to a genuinely dynamic body, which is why not one of the force-shaped settings (gravity, mass, penetration, spawn height) changed anything. Recorded with it: the bisect plan for the next pass, because guessing at Chaos internals has stopped being the cheap option. Spawn the pawn in ReviewMap's empty floor to separate asset from world, and spawn a stock AWheeledVehiclePawn beside it to separate our setup from the engine's. Pawn parked; captures unchanged.
This commit is contained in:
1 parent
d1636f6986
commit
358673bcfc
78 files changed
+109
-77
No files matched your search
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
@@ -339,6 +339,26 @@ void AGigLineVehicle::Tick(float DeltaSeconds)
|
||||
}
|
||||
}
|
||||
|
||||
// Is the body actually dynamic? A kinematic body is teleported by whoever holds it and reports
|
||||
// no velocity - exactly the profile measured - so this decides the next step.
|
||||
{
|
||||
static bool bDynamicsChecked = false;
|
||||
if (!bDynamicsChecked && SettleElapsed > 0.2f)
|
||||
{
|
||||
bDynamicsChecked = true;
|
||||
if (USkeletalMeshComponent* Body = GetMesh())
|
||||
{
|
||||
FBodyInstance* Instance = Body->GetBodyInstance();
|
||||
UE_LOG(LogTemp, Warning,
|
||||
TEXT("GigLine vehicle dynamic: simulate=%d instance=%s profile=%s"),
|
||||
Body->IsSimulatingPhysics() ? 1 : 0,
|
||||
Instance ? TEXT("yes") : TEXT("no"),
|
||||
Body->GetCollisionProfileName().IsNone()
|
||||
? TEXT("none") : *Body->GetCollisionProfileName().ToString());
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Velocity profile: an impulse shows as a spike at t=0, a force as steady growth.
|
||||
{
|
||||
static float NextSample = 0.0f;
|
||||
|
||||
@@ -50,6 +50,12 @@ So the wheel bones match, the terrain has no proxy lid, and stopping the mover d
|
||||
2. **`UChaosWheeledVehicleMovementComponent::UpdateState` / `OnUpdateTransform`** writing the transform from a vehicle state that was never created (which is also why `CreateVehicle()` yields no wheels).
|
||||
3. **The skeletal mesh asset itself** - `SK_Vehicle_Sedan` came from our own FBX pipeline; if its bone layout does not match what the wheel setups name, `CreateVehicle()` bails before creating wheels.
|
||||
|
||||
### Bisect plan for the next pass
|
||||
|
||||
1. Spawn the same pawn in `ReviewMap` (flat 160 m floor, no slices, no UCX ground) and repeat the profile. Flies there too -> the asset/component is at fault. Settles there -> something in `DemoMap` (the UCS slabs, the terrain, or the world settings) drives it.
|
||||
2. In parallel, spawn a stock `AWheeledVehiclePawn` with `SK_Vehicle_Sedan` and default settings in the same spot: if the stock pawn settles, the difference is in `AGigLineVehicle`'s setup (mass override, stability control, our movement subclass).
|
||||
3. Only after the bisect: fix, then confirm `Wheels.Num() == 4`.
|
||||
|
||||
### Tasks
|
||||
|
||||
- [ ] Give `SK_Vehicle_Sedan` a physics asset whose single chassis body matches the car's box and is positioned below the shell, then confirm the pawn settles on the road instead of launching.
|
||||
@@ -60,6 +66,12 @@ So the wheel bones match, the terrain has no proxy lid, and stopping the mover d
|
||||
|
||||
Split out of `0.3.0` on 2026-11-09 on the owner's instruction: the three hero-facade staging shots (`review-hero-facade-front`, `review-hero-facade-oblique`, `review-hero-portals`) were rejected as "rework needed to match reference", and that is asset work rather than vehicle work.
|
||||
|
||||
### Bisect plan for the next pass
|
||||
|
||||
1. Spawn the same pawn in `ReviewMap` (flat 160 m floor, no slices, no UCX ground) and repeat the profile. Flies there too -> the asset/component is at fault. Settles there -> something in `DemoMap` (the UCS slabs, the terrain, or the world settings) drives it.
|
||||
2. In parallel, spawn a stock `AWheeledVehiclePawn` with `SK_Vehicle_Sedan` and default settings in the same spot: if the stock pawn settles, the difference is in `AGigLineVehicle`'s setup (mass override, stability control, our movement subclass).
|
||||
3. Only after the bisect: fix, then confirm `Wheels.Num() == 4`.
|
||||
|
||||
### Tasks
|
||||
|
||||
- [ ] Rebuild the El Capitan hero facade to match the reference photography: cornice depth, the banner proportions, window rhythm, and the three entry portals.
|
||||
|
||||
Reference in new issue
Block a user