Better in-engine collision tools + Concave collision importation in FBX.

I’ve been working with UE4 for a long time and one thing that always makes me sad is how needlessly complex it is to create and manage collisions.

The basic system in UE4 leaves a lot to be desired. You have a few premade settings and basic shapes for meshes, which works for basic meshes. But as soon that a complex shape is required - say, a hollow cylinder, then the engine abilities starts to fall appart.

Now, most of the current issues could be easily resolved if two (not so easy to add) things were implemented:

The first one would be to allow us to edit - directly in engine - the collisions. I have a shape that has a slight slope in it, so it’s more of a trapezoid shape. Obviously, I’m stuck with a box collider, an off-the-track simplified collision, or an unoptimised auto-convex collision. If we could place vertex to specific coordinates, move edges and faces in-engine, most issues like this one would be fixed.

The second one is to support concave collisions made within FBXs. In fact, I was quite surprised that the engine didn’t support this as is - it’s a very common practice in the industry and also supported in the other big engines out there. The current way to deal with hollow cylinder is to create 12~16 boxes and cap all sides in a 3D software. 16-side colliders would require 64 polygon (128 triangles) if it was optimised, but with the current system, it costs 96 (192 triangles). It’s not a lot, of course, but the problem is that it adds up. Say I’m working on a tower - ff I have ledges, windows, doors, other holes, the collision becomes more and more complex and to cut (make unique) every single piece that isn’t convex just feels clunky.

Now I certainly understand that this is more complicated with dynamic assets. This is more of a static mesh issue, which I think definitely need an upgrade with how we can work and import collisions.

I suppose you are aware that you can import collision meshes from FBX using naming prefixes on 3D models and concave collision shapes destroy PhyX performance?!

A model with good topology can simply use “complex” collisions instead.

Also I believe if NVidia is dropping support for concave shapes then isn’t just Unreal, but any other engines out there will also drop it as well.

Absolutely, which is why I’ve talked about the second option. I speak about the problem of having to split meshes into several submeshes with the naming convention.

This solution is very costly in term of CPU. The big problem with this, too, is with meshes that needs to have a tight topology - to allow for vertex painting or good tesselation. This can lead to meshes with 2k to 5k polygon, which in turn is counted twice because of the collision.

This is why I talk of collisions that include static meshes. Dynamic meshes are another issue entirely. Static concave collisions are supported in Unity.

Maybe in a form of “triangle mesh” collision, which is supported in UE4 too, that’s what Use Complex as Simple option does.

That’s not a common practice and definitely not easily available. As far as I know, only Havok physics engine has option for actual concave mesh rigid bodies. Anyway, they recommend not to use them.
Preparing physics assets is a part of a pipeline, just as making textures/models/animations. If it could be easily automated, it would be done years ago.