Why Unreal 5 physics sucks and how to fix it?

Hi there!

I have a default project in Unreal 5.3.2 with default physics and other settings. I have a few convex meshes and I want to use them as one destructible object made of pre-made parts.

My problem is that I get a ridiculous result, my objects are jumping around like crazy and it doesn’t look any near to real physical behavior.
Here’s a video of what it looks like: https://www.youtube.com/watch?v=V1Ak2nxz_6Q

I figured it had something to do with the “push out velocity” setting, so if I set it to some value like 10 or something small (not 0, which means “unlimited”) it works much more stable and realistic, but another problem appears - with any values other than 0, objects begin to pass through each other and remain in the “awakened” state for too long, because they are constantly in collision.

Please someone help me! I’ve been sitting on it for a few days now, trying different physics settings, increasing velocity and position iterations to 100, changing object masses, regenerating convex collisions using Unreal’s built-in tool, and so on.

Also, cube and sphere collisions seem to work much better, but convex collisions have a huge problem.

Specification: RTX 4090, i14900kf, 128 GB RAM. So I don’t have any performance issues or anything like that.

  • “Why don’t you use Fracture Mode / Destructible Geometry Collection?”
  • Because it lacks some functionality, and the main one is that you can’t interact with it in any way, you can’t pick it up, and so on. It’s just decorative destruction, at least for now.

After hours of experimenting I found 3 parameter that really can change the situation, those are:

  • Collision Margin Fraction - with value as small as possible like 0.001
  • Collision Margin Max - value around 0,05 (or less)
  • Collision Max Push Out Velocity - with value about 700

with such values I can get much more stable and accurate results, but still I have some artifacts like objects going through each other or through the floor for a few frames.

So, what I can say for now is that Unreal’s physics sucks really well. And I dont really know how to deal with it. One of our main game mechanics should have be physics interaction/manipulation, and what I can see so far donesn’t really make me happy.

Here is the second video with comparison of default and adjusted physics settings: https://youtu.be/AzhxiwnbQx8

Pull the source, replace the latest avaliable physX into it.

Do so before they permanently lock out the option to do so, which im sure they are leaning toward considering they have made it incrementally harded to swap it out with every new version released.

Even if you were to get chaos to work, you are looking at a 40% to 70% performance differential.
And why would anyone be OK with that?

Yeah, I saw such a suggestion and not once, but I don’t know how to integrate PhysX into Unreal. I simply can’t find detailed information of how to do that. Also, for me it seems like if I change it from Chaos to PhysX it will break something in Unreal 5, but again, I just have no knowledge about it, so I dont even know what to think.

Do you have any information about how to change physics engine in Unreal 5? Maybe some articles/videos/posts anything? Thanks

No, there is nothing out there, you just have to do it and fix the build errors you get one by one…