test(vehicle): clamping the velocity to zero does not stop the rise - the transform is written
The decisive clamp: zero linear and angular velocity every frame for two seconds. t=0.25 Z=3220 vZ=0 | t=0.75 Z=3683 vZ=0 | t=1.25 Z=4197 vZ=0 It rises at ~1200 cm/s with velocity pinned to zero, so this is not a force, an impulse, or a bad initial state - all of those the clamp would have removed. Something calls a transform setter on the vehicle every frame. Our own source contains exactly one direct transform write outside the character (the shot actor's camera), so the writer is engine-side: the Chaos vehicle component driving UpdatedComponent from a vehicle state that was never created, or a skeletal-mesh transform update. Also diffed the two maps, since the pawn works in ReviewMap and not in DemoMap: kill_z, gravity, lights and partitioning are identical; DemoMap adds 593 static mesh actors, a height fog and a post-process volume, ReviewMap adds a shot actor and the character. Nothing in either list can write a transform, so the map difference is not in its actors or settings.
This commit is contained in:
1 parent
331e2016be
commit
387a4530de
78 files changed
+111
-76
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.
@@ -359,6 +359,17 @@ void AGigLineVehicle::Tick(float DeltaSeconds)
|
||||
}
|
||||
}
|
||||
|
||||
// Kill any injected velocity every frame for the first two seconds. If the pawn still rises, the
|
||||
// writer sets the transform directly; if it settles, the whole thing was one bad initial impulse.
|
||||
if (SettleElapsed < 2.0f)
|
||||
{
|
||||
if (USkeletalMeshComponent* Body = GetMesh())
|
||||
{
|
||||
Body->SetPhysicsLinearVelocity(FVector::ZeroVector);
|
||||
Body->SetPhysicsAngularVelocityInDegrees(FVector::ZeroVector);
|
||||
}
|
||||
}
|
||||
|
||||
// Velocity profile: an impulse shows as a spike at t=0, a force as steady growth.
|
||||
{
|
||||
static float NextSample = 0.0f;
|
||||
|
||||
Reference in new issue
Block a user