Vi3W
Skip to content

Guides

How to add collision to a 3D model in Unity, Unreal and Godot

Primitive, convex or mesh collision: how to add colliders to imported models in each engine, and which to use for generated props.

Aman PorwalFounder @ Vi3W

3 min read

A pencil sketch of a brass lantern on paper, with the same lantern rising off the page as a solid, lit object

Quick answer

How do you add collision to an imported 3D model?

Use the simplest shape that works. Add a box, sphere or capsule collider for most props, a convex hull for irregular objects, and a full mesh collider only for static level geometry the player walks on. Unity uses collider components, Unreal sets collision in the Static Mesh Editor, and Godot creates collision shapes from the mesh.

Three kinds of collision

  1. Primitives: box, sphere, capsule. Cheapest and most stable. Good for most props.
  2. Convex hull: a simplified, shrink-wrapped shape with no dents. Good for irregular objects that need to roll or be pushed.
  3. Mesh (concave) collision: uses the actual triangles. Accurate but expensive, and usually only allowed on static objects. Good for terrain and level geometry.

Rule of thumb: start with primitives, move up only when gameplay needs it. Players rarely notice a crate's collider is a box. They do notice frame drops.

Unity

  1. Select the prefab or object.
  2. Add Component › Box Collider (or Sphere, Capsule). Unity fits it to the mesh bounds; adjust Center and Size.
  3. For irregular objects: Mesh Collider with Convex ticked.
  4. For static level geometry: Mesh Collider without Convex.
  5. Moving objects need a Rigidbody; concave mesh colliders can't be on a non-kinematic Rigidbody.

For compound shapes (a table), add several primitive colliders on child objects.

Unreal Engine 5

  1. Open the mesh in the Static Mesh Editor.
  2. Enable Show › Simple Collision to see what's there.
  3. Collision menu: Add Box / Sphere / Capsule Simplified Collision, or Auto Convex Collision for a convex decomposition with adjustable hull count.
  4. For level geometry, set Collision Complexity to "Use Complex Collision As Simple" (expensive; static only).
  5. You can author custom collision in Blender with meshes prefixed UCX_ and the mesh name, exported in the same FBX.

Godot 4

Two ways:

  • In the import settings: double-click the GLB, open Advanced Import Settings, select a mesh, enable Physics, and choose the body type and a shape (Decompose Convex, Simple Convex, Trimesh, Box, Sphere, Cylinder, Capsule).
  • In the scene: select a MeshInstance3D, then from the Mesh menu in the viewport toolbar choose Create Trimesh Static Body (concave, static) or Create Convex Collision Sibling. Or add a StaticBody3D or RigidBody3D with a CollisionShape3D and pick a primitive shape.

Which to use for which asset

  • Crates, barrels, boxes: box or cylinder/capsule.
  • Furniture: a few boxes (seat, back) or one convex hull.
  • Rocks: convex hull.
  • Props the player can't touch (ceiling lamps, distant decor): no collision.
  • Walls, floors, terrain: mesh collision, static.
  • Vehicles: a box or compound boxes for the body, plus wheel colliders. See 3D car models for games.
  • Gameplay-critical cover: match the old greybox placeholder's shape so gameplay doesn't change. See from greybox to dressed level.

Generated models need simple collision even more

AI-generated meshes can have small bumps, thin protrusions and interior faces. A mesh collider built from that will snag the player and cost performance. Wrap them in primitives or a convex hull instead. Vi3W's retopology gives you a lighter mesh, but the collider should still be simpler than the visual mesh.

Test it

Turn on the engine's collision visualisation, walk into the object, push it, shoot it. Most collision problems are obvious within seconds of playing and invisible in the editor.

Adding props to a level? Generate them in Vi3W and give each one the simplest collider that works.

Last reviewed