Skip to main content

[S-Unreal-002] Unreal Asset Naming Convention

UploadIn 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 Progressthe 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, DesertEagleRocketPistol, 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.

Using other characters outside a-zA-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 using SKEL_Pikachu as skeleton and AS_Humanoid_Idle_01 using SKEL_Humanoid as skeleton.
    • Other blueprint with specific purpose and logic, for example BlueprintTaskNode, ActorComponent that used as handler/updater, etc.

[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 in AssetName but include a recognizable Variant. An 'Evil' skin would be referred to as SK_Bob_Evil and a 'Retro' skin would be referred to as SK_Bob_Retro.
  • 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 or Variant.
      • 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_01Floor_Maple_01, Floor_Tile_Squares_01.
    • LOD
      • SM_ClumpGrass_Lush_01_LOD1

[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!

[Prefix/Suffix ]([S-Unreal-002] Unreal Asset Naming Convention 6f300d57fb844c1d885b1bb9ac8e5397/Prefix Suffix 536fdf2259c84f63b87255247b9e0241.csv)

Reference


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

[S-Unreal-010] Blueprint Standardization

[S-Unreal-011] C++ Standardization