The character movement component in
void UCharacterMovementComponent::SimulateMovement(float DeltaSeconds)
evaluates whether to find the floor when simulating the movement of the simulated proxy based on whether the gravity relative velocity's z component is not positive:
bShouldFindFloor = RotateWorldToGravity(Velocity).Z <= 0.0;
Due to quantization of the replicated movement's linear velocity and floating point error in the world to gravity transform, it's possible that this check will return false in instances where the character is grounded and not moving along the gravity direction.
In a local PIE session walk around on a surface using custom gravity with at least two clients. Observe that
bShouldFindFloor = RotateWorldToGravity(Velocity).Z <= 0.0;
sometimes fails for the simulated proxy when moving along the face of the surface.
There's no existing public thread on this issue, so head over to Questions & Answers just mention UE-209298 in the post.
0 |
Component | UE - Gameplay - Components |
---|---|
Affects Versions | 5.3 |
Target Fix | 5.5 |
Created | Mar 8, 2024 |
---|---|
Resolved | Mar 12, 2024 |
Updated | Jul 16, 2024 |