How export obj files from Blender to Tabletop Simulator

How to export .OBJ files from Blender to Tabletop Simulator

When exporting your 3d models from Blender for use in Tabletop Simulator, sometimes the results are less than ideal. There are a few things to be aware of to ensure your object shows up correctly.

Mesh position

Make sure your model is centred over the world origin in Blender. If it’s not, your object will rotate around that point in TTS, which will feel weird for your players.

Poly count

If TTS is taking a performance hit when your model is imported, make sure you don’t have an overly-detailed model. The simplest way to reduce the number of polygons in your model is to add a Decimate modifier. Reduce the Ratio value to “simplify” your model as much as you can without destroying its appearance!

A good rule of thumb is to stay under 20k triangles. You can see the number of triangles in your model by clicking the Viewport Overlays popup near the top-right of the 3d panel, and selecting Statistics:

This will show the stats for your model at the top-left of the 3d panel:

Shading

Sometimes a model with sharp edges will have shadows on some faces, once you import it into TTS. This can usually be solved by following these steps:

  • Select your model, press Tab to enter edit mode, and go into Face Select mode.
  • Press A to Select All.
  • Right-click on the model and select Shade Smooth.
  • Press Tab to exit edit mode.
  • In the Modifiers tab, add an Edge Split modifier.

This is often enough to solve any weird surface shading you get in TTS.

Note: if your model has bevelled or rounded edges, this step should not be necessary.

Normals

The normal for any given face is perpendicular to the face itself. The direction of the normal defines which way each polygon is facing.

Sometimes during modelling, a normal will be flipped accidentally. It can be easy to miss, while working in Blender. For example: on this cube, the normal on the front face is flipped, but you can’t tell by looking at it:

When I import this model into TTS, the problem presents itself. The “backside” of faces simply don’t show up at all:

Here’s how to check your normals in Blender, before you export the model:

In the Viewport Overlays popup near the top-right of the 3d panel, select Face Orientation.

This displays all normals that are facing you in blue, and normals facing away from you in red:

Orbit around your model and make sure all faces are blue.

One quick way to fix normals is to tab into Edit Mode, press A to Select All, then press Shift + N (Mesh > Normals > Recalculate Outside).

If that doesn’t give you the desired result, select each backward face in Edit Mode and press Alt + N > Flip (Mesh > Normals > Flip).

Colliders

TTS will generate a box collider for your model, unless you specify a custom collider. Keep custom colliders as simple as possible (under 255 triangles is recommended).

If you want to create a bowl, something with slots or holes that other components fit into, or any other concave shape, you must create a collider, and select the “Non-convex” checkbox in TTS. Further, this type of object must be locked for TTS to respect concave collision.

Further reading on colliders at the TTS knowledge base.

Export Settings

These are the export settings I use for TTS; I’m only listing the changes I made from the default OBJ export settings:

  • Select File > Export > Wavefront (.obj)
    • Tip: right-click on this menu item and select Add to Quick Favorites; now you can select an object and press Q to quickly export your model.
  • Optional: select the Selection only checkbox (this only exports the currently-selected model(s)
  • Under Transform, change the Forward popup to Z Forward so your models are facing the right way.
  • Under Geometry, select the Triangulate Faces checkbox. This is essential; TTS requires that all models are made of triangles.

At the top of the Export panel, you can click the [+] button to save these settings as a preset, so you don’t have to set them manually from memory every time.

Export your .obj file; it is now ready to be imported into Tabletop Simulator!