Make a Prop
A chair, a barrel, a mixer: one freestanding object that isn't part of a modular set. This is the
simplest complete loop through our pipeline, which is why it's the first thing to do.
If it tiles, snaps or connects to siblings, you want Make a Kit Piece instead.
1. Check it doesn't already exist
Search Q-Dex, and search the project. Most wasted work in a studio isn't work done badly, it's
work done twice.
2. Decide the name before you make anything
The name decides the folder, so this is not admin. It's the first real decision.
SM_Prop_Furniture_Table_01
│ │ │ │ └── Num: always, even for the only one
│ │ │ └──────── Descriptor: what it is
│ │ └────────────────── SubCategory: optional, PascalCase
│ └─────────────────────── Category: Prop, PascalCase
└────────────────────────── Type: SM_ for a mesh
Confirm it really is a Prop. The ladder in Naming Conventions > Which category is it settles it:
read top to bottom, and the first yes wins. A tree, a cliff or a one-off building is a Prop too,
however large.
→ Naming Conventions for every token
3. Create the file where its name says
Assets/Source/Meshes/Prop/<SubCategory>/<name>.blend
There is no lookup table between the name and the folder. The Category token is the folder name.
→ Project Folder Structure
4. Model it
- Metric. 1 Blender unit = 1 metre in Unity.
-Yforward in Blender, which is+Zforward in Unity. The add-on has guides for this.- Use modifiers where you can. Bevels and subdivision driven by a modifier make changing the
resolution later trivial; geometry nodes make it a slider. - Keep to grid increments where it makes sense:
0.1,0.5,1,2,5,10m.
5. Set the pivot
Bottom-centre, resting exactly on the ground plane at Z = 0.
So it sits flush on the floor the moment a level designer drops it in, and rotates in place without
appearing to move. Doors are the exception. Their pivot goes on the bottom, directly below the hinge, or it
opens like a revolving door.
6. Name the material slots
Every slot is SMM_ + the mesh's own name + a required role suffix naming the part it covers:
SM_Prop_Kitchen_Mixer_01 the mesh
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 you assign a real
M_ material to it later. That's intentional, because the same Body takes steel on one variant and
brass on another.
7. UV unwrap
Which channel does what, and when you need a second or third, is in
Asset Rules (Generated) > uvChannels. If the prop will use an overlay texture, you need the extra
channel now, not after export.
8. Tell the checker what it is
Set the collection's kind to prop in the Blender add-on's Asset Rules panel (N-sidebar). A
collection only gets checked once it says which kind it is.
Do it even though it feels redundant. Guessing "prop" for everything would flag every wall in a kit
file on the first run, which is how a check gets switched off and never switched back on.
9. Make its textures
Come back here when the maps exist.
10. Export
Use the add-on's exporter, always. It runs a check for obvious problems first.
Output: Assets/Exported/Meshes/Prop/<SubCategory>/<name>.fbx
Textures are not in the .fbx. They import separately so Unity keeps full control over import
settings. That is why the role suffixes exist.
11. Assemble it in Unity
- Unity imports the
.fbxand applies texture import settings automatically, keyed off the role
suffix in each file name. A_Normalmap gets normal-map settings without anyone opening the
inspector. → Texture Workflow > Import Settings - Create the
M_material(s) for the texture set, if they don't exist. Named for the texture
set, not for this mesh:M_Surface_OldChair_01. → Materials - Assign them to the
SMM_slots. - Make the prefab. Swap the prefix to find the pair:
SM_Prop_Furniture_Table_01→
P_Prop_Furniture_Table_01. - Anything the prop needs to be held, sat on or interacted with (sockets, colliders) goes on the
prefab, not the mesh. Where the hand goes was never a property of the geometry.
12. Check it
Run Workspace Check on the project folder. Fix anything it names. Every finding carries the rule
id, what it means, and the steps that clear it.
13. Commit
- The
.metafile travels in the same commit as its asset, always. A commit with the.fbxand
not its.metagives everyone else a re-imported asset with a fresh GUID and broken references. - Use the commit format:
feat(assets): add kitchen mixer prop - Release your locks.
Naming, folders, pivots, materials, export, import, prefab, check, commit. Every other recipe here
is a variation on this one.