High Priority – Game Art
welcome@highpriority.com
High Priority – Game Art
Naming your conventions is important. It keeps the project clean, files organized and improves workflow. In short, it saves you time. But most importantly, it trains people to think and act in a certain way.
We all know that artists can be easy-going and sometimes slack on the small details (we’ve been there ourselves ;). Sadly, the result is that this gives programmers a hard time. So keeping you, and your art team, organized is important.
This is why we at High Priority use the following naming conventions. They’re heavily based on industry standards, with most coming from the system Unreal uses. But we’ve implemented small tweaks here and there for optimization. Let’s get into them!
Example:
[Prefix]_[AssetName]_[Family numbering][Variation letter]_[Suffix].[Format]
[ Folder : RoofTiles_01 ]
SM_RoofTiles_01a.fbx [mesh]
T_RoofTiles_01a_C.png [color or albedo or diffuse]
T_RoofTiles_01b_C.png [variation of color map]
T_RoofTiles_01a_R.png [roughness]
T_RoofTiles_01a_M.png [metallic]
T_RoofTiles_01a_N.png [normals]
T_RoofTiles_01a_A.png [AO]
M_RoofTiles_01a [material]
M_RoofTiles_01b [same material, but uses the 01b_C texture]
Use PascalCase when naming your assets. PascalCase is the practice of writing compound words or phrases such that the first letter of each concatenated word is capitalized. Using this system makes separate words easily identifiable.
Good examples:
Bad examples:
Prefixes and suffixes help make your files easily identifiable without the use of long words or sentences. The result is a short filename that holds all the information needed. This way, you, or the person you’re handing it to, can quickly find what is needed.
Prefixes
SM_ | 3D files. Static Meshes, Weapons, Foliage, Props with just a few joints for function. |
SK_ | 3D files that contain humanoid or animal skeleton joint rigs |
T_ | Texture |
M_ | Material |
MI_ | Material Instance |
MF_ | Material Function |
MPC_ | Material Parameter Collection |
J_ | Joints / Bones |
SH_ | Shader |
P_ | Particle System |
A_ | Animation (clip) / Animation Sequence |
AC_ | Unity Animation Controller |
ABP_ | Animation Blueprint |
PP_ | Post Process |
MT_ | Morph Target |
S_ | Sounds |
SC_ | Sounds Cue |
BP_ | Unreal Blueprint |
Unity Prefabs | Are named the same as the asset they house. Eg, SM_BigTree_01a |
Suffixes (Textures only)
Each map type is represented with ‘one’ letter. Color is _C, Metallic is _M, Emissive is _E. If maps are combined to create a combined RGB mask map. We combine the letters. So _M(etallic) with _R(oughness) with _A(mbient Occlusion) becomes _MRA.
_C | Color map (diffuse or albedo) [Optional 4th channel = Height or Transparency/Opacity] |
_T | Transparency / Opacity mask |
_M | Metallic mask |
_R | Roughness mask |
_S | Smoothness (Inverted roughness map) |
_N | Normal map |
_A | Ambient Occlusion mask |
_E | Emissive map |
_H | Height mask |
_D | Displacement map (Often a blurred height map re reduce artifacts) |
_MRA (Combined mask) | Mask map combined [R=Metallic, G=Roughness, B=AO, 4th channel = Emissive, Height or Other] |
_MADS (Unity HDRP mask) | Mask map combined [R=Metallic, G=AO, B=Detail Map, 4th channel = Smoothness] |
_I | Color ID masks or color channel map |
_U | Subsurface mask |
There are two parts to numbering your files: The number, and the letter. Example: T_ObjectName_01a_C
The number is used to identify Family Numbering: A completely new asset but within the same family. For example:
These are two different tree models, but part from the same WillowTree family.
The letters are for variations within the same asset. These are most commonly used for texture variations. For Example:
Both of these are for the same model (the SM_WillowTree_01), but the ‘b’ variation has a different leaf and bark color. That’s why it uses a different letter to easily identify the variant of the same object.
Last, but not least, is the structure of your folders. Organizing them is a great way to make all your assets easy to find. This avoids scrolling through tons of different files, objects, parts, etc in one folder, a.k.a: Chaos.
Folder per “object”
Each “object” and its dependency files get their own folder. For example:
Content/Environments/Props/BigTree_01/…
…/SM_BigTree_01.fbx
…/T_BigTree_01_C.tga
…/T_BigTree_01_M.tga
…/T_BigTree_01_R.tga
…/T_BigTree_01_N.tga
…/M_BigTree_01.mat
Content/…
…/Characters
…/Vehicles
…/Weapons
…/Effects
…/Environments
…/ …/Terrain
…/ …/Background
…/ …/Props
…/ …/ …/BigTree_01 [ Game ready export files go here ]
…/ …/ …/ …/ [ SM_BigTree_01 ]
…/ …/ …/ …/ [ T_BigTree_01_C ]
…/ …/ …/ …/ [ T_BigTree_01_M ]
…/ …/ …/ …/ [ T_BigTree_01_R ]
…/ …/ …/ …/ [ T_BigTree_01_N ]
…/ …/ …/ …/ [ M_BigTree_01 ]
…/ …/ …/ …/Source [ Authoring source files go here. Not included in the game engine ]
…/ …/ …/ …/ …/ [ Modo, 3Ds Max, Maya, etc ]
…/ …/ …/ …/ …/ [ Zbrush ]
…/ …/ …/ …/ …/ [ Photoshop ]
…/Materials [ Global tile-able materials and their dependency files go here ]
…/ …/CobbleStone_01
…/ …/ …/ [ T_CobbleStone_01a_C ]
…/ …/ …/ [ T_CobbleStone_01a_M ]
…/ …/ …/ [ T_CobbleStone_01a_R ]
…/ …/ …/ [ T_CobbleStone_01a_N ]
…/ …/ …/ [ T_CobbleStone_01a_D ]
…/ …/ …/ [ M_CobbleStone_01a ]
…/ …/ …/ …/Source [ Authoring source files go here. Not included in the game engine ]
…/ …/ …/ …/ …/ [ Modo, 3Ds Max, Maya, etc ]
…/ …/ …/ …/ …/ [ Zbrush ]
…/ …/ …/ …/ …/ [ Photoshop ]
…/Shaders
…/Scenes or Maps
…/Sound
…/UI
…/Gameplay
…/Volumes
See you next time!
The High Priority Team