Naming files, objects and variables are very important to keep things consistent when sharing files with other people, maintaining old assets, etc.

I learned this system when I started working at working at Method Studios Vancouver in 2015 and been refining it ever since.

I build my scripts to follow a very specific naming convention, I don’t do any checks for errors, which helps keeping my scripts small and easy to understand. The downside is if I make a mistake my scripts will probably mangle my scene so I have to make sure everything is correct before running anything.

<aside> ⚠️

Naming conventions are very debated topic for some reason.

I’m always open to improve my workflow. So if you have suggestions or widely accepted best practices please let me know.

Especially when related to rigging or Unreal Engine workflows.

</aside>

Maya Object Naming Conventions

Main

[SIDE][ASSETNAME][ASSETPART][LETTER][NUMBER][TYPE]

Examples:

C_mecha_gunA_001_geo C_mecha_gunB_001_geo

<aside> ⚠️

I’m considering dropping [ASSETNAME]. I added to help avoid duplicated names between different assets, but that is what namespaces and referenced files are for.

Food for thought … Example: L_mechaDog_gun_001_geo > L_gun_001_geo L_mechaCat_gun_001_geo > L_gun_001_geo

</aside>

Prefixes

C_ # Centralized objects or objects that doesn’t have a Left/Right counterpart.
L_ # Left side objects
R_ # Right side objects

<aside> ⚠️

I haven’t worked this into my workflow but for Unreal Engine exports I’ll switch my convention to match the base Manny / Quinn naming conventions.

</aside>

Geometry Suffixes

_geo # final geometry, be it low poly game models or sub-d for film quality meshes.
_low # low poly for bakes
_high # High poly meshes , baked subdivided or decimated for baking.
_dec # Decimated meshes when there are multiple variants of the same object.

Rigging Suffixes

_jnt - Joints