Get the accurate local position of collision point

When an object move fast and hit another object, it generate a hit event on component with a hit information. An impact point is in the hit information, which is the collision point in world space. If I want to get this point in object local space, what I could do is only inverse transform this point using the transform of the object.

However, the local position looks delay and is not exactly on the surface of the object. I have used Chaos Visual Debugger to see what was happened in the physics world, the contact point seems not the same even in world space, let alone the local space.

In the case below, I disable the interpolation using p.UseAsyncInterpolation command. If I enable it, the result is wrong, too. So here I just post one of them.

Here are the screenshots in game world and physics world.

I printed the collision point in game world, which is (563.015, 1404.812, 8.387)

The position in physics world is (563.014616, 1391.535137, 8.625001) + (0.0, 8.625002, 0.0) = (563.014616, 1400.160139, 8.625001)

The y and z components are not the same.

[Image Removed]

重现步骤
Make a ball to hit the wall in very fast speed using physics force. Draw the contact point. This problem is alse exist in UE 5.5. You can use the files I upload. Open TestMap.umap in CollisionTest folder. Play it and pressed “D” key to accelerate the ball and let it hit the wall. Once it hit the wall, you can see the contact point in local space following the ball, and the position before and after the ball hitting the wall.

Found it Mario. Apologies. I’ve responded on the other ticket.

Geoff