When a actor collision is put perfectly on top of another actor collision, physics will let it fall through the collision below. Is there a workaround that doesn’t involve offsetting a object before activating physics?
To recreate:
Create new actor
Put a default cube in it and set it to be the root
Put the actor in the level in the grid, like 0.0.0
Put another actor perfectly on top of it, like 0.0.100
In the level blueprint add a delay to begin play
After the begin play activate simulate physics for the top actor
Note: without the delay it collides normally, my guess is that without a delay it does it on initialization.
I was able to reproduce this on my end and have entered a bug report, UE-29881, to be assessed by the development staff. It appears the cause of the error is due to collisions touching/overlap. Try moving the asset to a point in which they do not touch. for instance, set the top cube to 0,0,101.06 and see if you see the same error. This places the physics cube just outside of the collision for the bottom physics cube.
"In the level blueprint add a delay to begin play - After the begin play activate simulate physics for the top actor
Note: without the delay it collides normally, my guess is that without a delay it does it on initialization."
This indicates there’s something amiss with the integration, it’s not clear to me what a ‘blueprint delay’ is doing. A PhysX Visual Debugger capture might clarify the sequence of events within the PhysX scene. Is the actor not inserted into the scene until the end of the delay, or is there some other mechanism at work? Is the lower actor also activated after the end of the delay?
Yea, it seems to be the distance between collisions needs to be higher then 1 unit. It certainly is odd that it works when done on begin play without a delay.