Hi fellow Unrealers !
I came accross a strange behavior while working on a puzzle game concept : when you enable/disable physic simulation on objects that are touching each other, they’ll sometimes pass freely through each other… I filled a bug report 2 or 3 weeks ago but didn’t get any answer for now.
I was wondering if any of you guys would have an idea to fix this problem… I didn’t find any proper workaround for now.
Because a video and an example project will be more clear than a thousand words, here you go !
The example project (4.25) : http://clementgonin.fr/UE4/TestBugCollision_project.zip
And the video :
*I’ll copy the bug report I sent too, if it can be of any help to understand the problem :
STEPS TO REPRODUCE
- Put 2 cubes on top of each other, one simulating physics, and the other not simulating physics
- Set a key to enable/disable physic simulation for both of the cubes, so there’s always one of the 2 cubes in each state
- Launch game, switch several times using the key previously set
- The top cube will randomly fall through the bottom one
- If it’s not working, try to move the top cube a little so they’re a little misaligned
> See joined video and example project for more informations
Since the cubes have collision enabled at all time, simulating physic or not, they should never be able to pass through each other
Please watch the following video for a detailed demonstration of the problem : Unreal Engine 4 : Collision bug when enabling/disabling physic simulation on touching objects - YouTube
As you can see, when objects are touching while changing physic simuation state, it happens pretty often.
Strange thing is that usually, when 2 non simulating objects are going though each other and one enables physics simulation again, they repeal each other.
In this situation, they’re going through each other without detecting they’re overlapping.
Adding logic regarding the physic simulation tends to increase the problem.
For example, on the project where I came accross this bug, I clamped the objects speed on event tick, to be sure they don’t go over a given speed.
With this feature enabled, the cubes are passing through each other way more often.*