3D Models

Texture Creation

Blender

Unity

Our 3D workflow leans heavily on Blender. Hard-surface modelling, sculpting, texture painting, block-outs, and sometimes texture creation and procedural generation can all be done in there.

Doing rather than reading?

Make a Prop and Make a Kit Piece walk the whole thing in order. This page is the reference behind them.

Guidelines to avoid hiccups

Work with modifiers where you can

Lowering or raising the resolution of a mesh is far easier when bevels and subdivision surface are driven through modifiers. Taking it a step further, geometry nodes makes later editing and adjustment as easy as changing a slider. Almost never apply bevels or other hard to revert modifiers to avoid future complications.

Naming

Names are defined once, in one place

The full grammar, every category, and the decision ladder for which category a thing is, are in Naming Conventions, generated from the JSON that the Blender add-on actually checks against.

For meshes, the type prefix is SM_. That is what keeps a mesh from being confused with the prefab that usually accompanies it.

SM_Prop_Kitchen_Mixer_01.fbx
SM_Prop_Cellar_Shovel_01.fbx

The category is PascalCase. Prop, Character, Effect, Kit because those words are also the folder names. PROP is not a category and will fail its NAM rule.

The two-digit number at the end is present always, even when there will only ever be one of something. The day there is a second one, nothing has to be renamed and a rename means touching every reference, every prefab, every scene.

Material slots

A Blender material names a slot on a mesh: the part of the model it covers. It carries the
mesh's own name plus a required part suffix:

SM_Prop_Kitchen_Mixer_01
  SMM_Prop_Kitchen_Mixer_01_Body
  SMM_Prop_Kitchen_Mixer_01_Bowl

SMM_ materials do not survive import. Unity gets a slot with that name and a real M_ material is assigned to it there deliberately, because the same Body takes steel on one variant and brass on another.

Animations

SMA_, with the action after the number: SMA_Kit_FrontDoor_01_Open.

Conventions that only exist in Blender

These have no Unity-side equivalent, so this page is their home.

Scale and orientation

Metric. 1 Blender unit = 1 metre in Unity. Forward is -Y in Blender, which is +Z in Unity.
The add-on has guides for it.

The grid, the increments and the pivot rules are on Modular 3D Assets, and they apply to
freestanding props as much as to kit pieces. When one element is built from several parts (like a facade from panels, window inserts, a cornice and corner piers) that is Splitting a Piece.

Shape keys

Clear, understandable names. Never reorder or delete a shape key after it has started being used in a game. The order is part of the data.

Prefer this format where it suits the model:

Category_Region_Action
  • Mouth_Left_Smile
  • Brows_Left_Up

For symmetric or duplicate keys, use _L or _R as a suffix.

Bones

Bones use a dot for symmetry: the normal bone name followed by .L or .R. A dot, not an underscore; Blender's own symmetry tools key on it.

Import and export

Blender → Unity

Always export through our add-on, never Blender's own FBX exporter. It runs a check for obvious problems first, and it knows where the file belongs.

For a kit modelled as one .blend with a collection per piece, the add-on exports each collection using its own collection-export settings.
→ Modular 3D Assets > Kit Modeling Pipeline

Textures are not in the file

Textures import into Unity separately, not embedded in the .blend or .fbx. This gives maximal control over the content and over Unity's import settings, which would otherwise be unavailable. Those settings are applied automatically from the role suffix in each texture's file name.
→ Texture Workflow > Import Settings