[S-Unreal-002] Unreal Asset Naming Convention
In this article:
Overview
In the multifaceted realm of game development, where artistic creativity and technical precision intertwine, asset naming conventions emerge as the linchpin of a seamless and productive collaboration. These conventions establish a shared lexicon for artists, programmers, game designers, and producers, facilitating a common understanding of the purpose and content of each asset. By adhering to consistent naming standards, teams can swiftly locate, integrate, and modify assets, fostering both efficiency and creativity. Asset naming conventions not only minimize misunderstandings and save valuable time but also empower developers to craft immersive and cohesive gaming experiences. In the dynamic world of game development, a unified asset naming convention is a critical tool for orchestrating the diverse talents and elements required to bring interactive worlds to life
Scope
This standardization cover the Unreal Style Guideline about how to work in Unreal. This standard applies to all person in in team that work using Unreal Engine.
Technical Director and Art Director was the parties whose in charge in these guidelines. While all of the team member should follow these guidelines, they can ask about the guidelines to the directors or can propose some new guidelines here and there.
Unreal Asset Naming Convention
Consistency is the key to maintainable code and project and naming conventions should be treated as law. A project that conforms to a naming convention is able to have its assets managed, searched, parsed, and maintained with incredible ease.
[S-Unreal-002.1] Asset Naming
Please also remember that all names should be written in English.
[S-Unreal-002.1.1] Use PascalCase For Each Name Segment
PascalCase refers to starting a name with a capital letter and then instead of using spaces, every following word also starts with a capital letter. For example, DesertEagle
, RocketPistol
, and ASeriesOfWords
.
See Cases for Letter.
See Asset Pattern Name.
[S-Unreal-002.1.2] Never Use Spaces
Re-enforcing [S-Unreal-002.1.1], never use spaces. Spaces can cause various engineering tools and batch processes to fail. Ideally, your project's root also contains no spaces and is located somewhere such as D:\Project
instead of C:\Users\My Name\My Documents\Unreal Projects
.
[S-Unreal-002.1.3] Never Use Unicode Characters And Other Symbols
If one of your game characters is named 'Zoë', its folder name should be Zoe
. Unicode characters can be worse than Spaces for engineering tool and some parts of UE4 don't support Unicode characters in paths either.
Related to this, if your project has unexplained issues and your computer's user name has a Unicode character (i.e. your name is Zoë
), any project located in your My Documents
folder will suffer from this issue. Often simply moving your project to something like D:\Project
will fix these mysterious issues.
Using other characters outside a-z
, A-Z
, and 0-9
such as @
, -
, _
, ,
, *
, and #
can also lead to unexpected and hard to track issues on other platforms, source control, and weaker engineering tools.
See Forbidden Character.
[S-Unreal-002.2] Asset Pattern Name
Most things are prefixed with prefixes being generally an acronym of the asset type followed by an underscore.
The naming standard for all asset inside Unreal is separated into 4 segment.
The naming standard pattern is: Prefix_AssetName_Variant_Suffix
.
[S-Unreal-002.2.1] AssetName
All assets should have an AssetName
that represents a logical grouping of related assets. Any asset that is part of this logical group should follow the standard of Prefix_BaseAssetName_Variant_Suffix
.
Keeping the pattern in mind and using common sense is generally enough to warrant good asset names.
-
AssetName
should be determined by a short and easily recognizable name related to the context of this group of assets. - Use PascalCase for example
SM_KKKBuildingBasement
. - Usually use noun word, except for some asset that by nature was using non noun word.
- Animation, use SkeletonName + _ + AnimationName where the SkeletonName was noun and the AnimationName was verb, for example
AM_Pikachu_MeleeAttack_01
,AS_Humanoid_Idle_01
.- Note that
AM_Pikachu_MeleeAttack_01
usingSKEL_Pikachu
as skeleton andAS_Humanoid_Idle_01
usingSKEL_Humanoid
as skeleton.
- Note that
- Other blueprint with specific purpose and logic, for example BlueprintTaskNode, ActorComponent that used as handler/updater, etc.
- Animation, use SkeletonName + _ + AnimationName where the SkeletonName was noun and the AnimationName was verb, for example
[S-Unreal-002.2.2] Variant
For unique and specific variations of assets, Variant
is either a short and easily recognizable name that represents logical grouping of assets that are a subset of an asset's name.
- Can be none for example
SK_Bulbasaur
. - Can be filled with adjective/adverb word and optionally added with increment number for example
T_ClumpGrass_Dry_D
,T_ClumpGrass_Lush_01_D
,T_ClumpGrass_Lush_02_D
.- If Bob had multiple skins these skins should still use
Bob
inAssetName
but include a recognizableVariant
. An 'Evil' skin would be referred to asSK_Bob_Evil
and a 'Retro' skin would be referred to asSK_Bob_Retro
.
- If Bob had multiple skins these skins should still use
- Can be filled only with increment number for unique but generic variant asset for example
SM_Rock_01
,SM_Rock_02
,T_SomeExample_01_D
.- Increment number start from 1 and max at 99.
- Should only contain 2 digit, not more, not less.
- If you need more than 2 digit then you probably need to reorganized/recategorize your asset using different
AssetName
orVariant
.-
SM_Rock_01
,SM_Rock_02
, …, …,SM_Rock_09
,SM_Rock_10
,SM_Rock_11
, …, …,SM_Rock_99
(max).
-
- Can have multiple variant (chained variant).
- Depending on how your asset variants are made, you can chain together variant names. For example, if you are creating flooring assets for an Arch Viz project you should use the name
Flooring
with chained variants.-
Floor_Marble_01
,Floor_Maple_01
,Floor_Tile_Squares_01
.
-
- LOD
-
SM_ClumpGrass_Lush_01_LOD1
-
- Depending on how your asset variants are made, you can chain together variant names. For example, if you are creating flooring assets for an Arch Viz project you should use the name
[S-Unreal-002.2.2.1] LOD
We use the same patter as Unreal did, LOD
+ LOD_Index
for example, SM_ClumpGrass_Lush_01_LOD1
.
[S-Unreal-002.2.2.2] Texture Pack
It is common practice to pack multiple layers of texture data into one texture. An example of this is packing Emissive, Roughness, Ambient Occlusion together as the Red, Green, and Blue channels of a texture respectively. To determine the suffix, simply stack the given suffix letters from above together, e.g. _ERO
.
Packing 4 channels of data into a texture (RGBA) is not recommended except for an Alpha/Opacity mask in the Diffuse/Albedo's alpha channel as a texture with an alpha channel incurs more overhead than one without.
[S-Unreal-002.2.3] Prefix/Suffix
Please notes that:
- Most of the commonly used assets were registered here, but not all unreal assets type.
- This database will be used as live document and will be updated if necessary
- If you can’t find the asset type that you’re searching, find your director!
- If you have any complaint, find your director!
For more detailed list for asset naming Prefix/Sufix, please go to this table here.
Reference
- https://github.com/Allar/ue5-style-guide
- https://www.unrealdirective.com/resource/asset-naming-conventions
- https://docs.unrealengine.com/4.27/en-US/ProductionPipelines/AssetNaming/
Related Pages
[S-Unreal] Unreal Style Guidelines
[G-Production-001] Development Principles
[S-Unreal-001] Unreal Standardization Terminology
[S-Production-001] General Naming Convention
[S-Unreal-002] Unreal Asset Naming Convention
[S-Unreal-003] Unreal Folder Structure & Naming Convention
[S-Unreal-004] Textures Standardization
[S-Unreal-005] Static Meshes Standardization
[S-Unreal-006] Skeletal Meshes Standardization
[S-Unreal-007] Media Standardization
[S-Unreal-008] Niagara Particle System Standardization
[S-Unreal-009] Maps Standardization