Course contentsShow
← Unreal Engine Game Development
Lesson 256 of 8804. Advanced Input and PhysicsFree lesson

Optimizing Collision Complexity for Performance

Differentiate between simple and complex collision shapes to maintain high framerates while ensuring accurate physics behavior for detailed game meshes.

In this lesson, you will learn how to balance physical accuracy and game performance by distinguishing between simple and complex collision shapes.

When you import a high-fidelity 3D mesh into Unreal Engine, it often contains thousands of polygons. If the engine uses the visual mesh for physics calculations, your frame rate will plummet because the processor must perform complex mathematical intersections for every single triangle in that mesh. To solve this, Unreal Engine allows you to differentiate between Simple and Complex collision.

Simple Collision

Simple collision uses primitive shapes like boxes, spheres, capsules, or simplified convex hulls. These are computationally "cheap" because the math required to detect a hit is extremely basic. Use these for 95% of your objects—walls, floors, and crates. They are the backbone of a performant physics simulation.

Complex Collision

Complex collision (often called "Use Complex Collision As Simple") treats every triangle of your visual mesh as a collision surface. This is incredibly accurate but very taxing on the CPU. You should only use this for objects that require pixel-perfect precision, such as a narrow pipe that the player needs to shoot through.

Configuring in the Static Mesh Editor

You can control how these interact in the Static Mesh Editor under the Collision settings:

  • Collision Complexity:
    • Project Default: Uses the simple collision shapes you’ve authored.
    • Simple Use Complex: Uses the high-poly mesh for all physics.
    • Use Complex As Simple: Ignores simple primitives entirely and uses the high-poly mesh for both query (traces/line checks) and physics (simulation).

For optimal performance, always create a custom UCX (convex hull) mesh in your 3D software and import it alongside your asset. Set your collision complexity to Project Default, which tells the engine to ignore the high-poly visual mesh and use your optimized UCX primitives instead.

By keeping your collision geometry simple, you ensure that the Chaos Physics Solver has plenty of resources left to handle the gameplay logic you’ve been building.

Key Takeaway: Use simple primitive collision shapes for physics simulation to maintain high frame rates, reserving complex mesh-based collision only for cases where precise geometry interaction is strictly necessary.