Browse the wiki

Model Naming Conventions

This doc will give a breakdown of how to go about naming objects for modelling.

Part of your role as a modeller is to ensure your model is named accordingly. As painful as it may seem and as bland as the task is, it is essential to ensure others who pick up your asset are able to work with it effectively.

If you are unclear about any of the below information, please do contact your supervisor.

Naming the top level group node

This is essential and you should not use your imagination.

For every asset, everything should sit under a top-level group node. This group node should be named like so:

<type>_<assetName>_<subType>_mod_top_<variant>_<lod###>_GRP

For example:

  • chr_oni_body_mod_top_neutral_lod100_GRP
  • chr_oni_body_mod_top_damaged_lod100_GRP
  • set_japaneseShrine_mod_top_damaged_lod300_GRP

For more information on LODs, please check out this doc:

  • Model LODs – This doc will give a run-down of how we name and handle model LODs at CAVE.

Object naming convention

We are using the following tokens for naming objects and each token should be seperated with an underscore:

<SIDE>_<section>_<position>_<objectName>_<materialType>_<TYPE>

SIDE

The side token is optional and should be added to all objects to describe is the object is to the left, right or centred. Please note that the side token should be capitalised.

  • L: for objects to the left of the centre line. For example, the left arm.
  • R: for objects to the right of the centre line. For example, the right arm.

For objects at the centre of the centre line, you do not need to add a side token. And when you have multiple objects going from left to right (for example a row of windows), you can simply add a three padded number onto the end (as described in the object section of this doc). For example:

  • fnt_windowPane001_glass_GEO
  • fnt_windowPane002_glass_GEO

section

The section token is optional and should be used to describe a part of the object. For example, the arm, leg, torso, etc.

  • L_arm_GRP
  • L_forearm_GRP
  • R_thigh_GRP
  • R_leg_GRP

Please note, we are using the anatomical classification for limbs and other body parts. For example, the ‘leg’ anatomically refers to the space between the knee and the foot, and the ‘thigh’ refers to the region between the hip and the knee. So NO upperArm and lowerArm!

position

The position token is optional and should be used to describe where the object lies in relation to other similar objects. When using this token, think about the naming of anatomical landmarks. For example, the anterior superior iliac spine or the inferior superior iliac spine. Like anatomy, you only need to include this token if the opposite exists. For example, if you have an object on the exterior, but there is no interior equivalent, then you do not need to add the interior token.

The available position tokens are:

  • int: for objects that are on the inside. For example, an interior wall.
  • ext: for objects that are on the outside. For example, an exterior wall.
  • fnt: for objects that are positioned on the front. For example, a front panel.
  • bck: for objects that are positioned on at the back. For example, a rear panel.
  • upp: for objects that are above another object. For example, upper pipe vent.
  • lwr: for objects that are below another object. For example, lower pipe vent.
  • btm: for objects that are at the bottom. For example, bottom panel.
  • top: for objects that are at the top. For example, top panel.

You can also mix and match. For example, int _fnt or ext_bck. Maybe later on, we’ll create a stricter set of rules for position, but for now, we’ll leave it up to you to use something the is easily readable and descriptive.

objectName

The objectName token is mandatory and should describe clearly the object. As mentioned above, if you have an object where you need multiple words to describe it please seperate the words with an underscore. When you have multiples of the same object or similar objects in the scene, please add a three padded number (###) onto the end of the objectName token, starting with 001.

Here are some examples:

  • vent
  • ventFrame
  • vent001_bolt001
  • vent001_bolt002
  • vent001_bolt003
  • shelf001_screw001
  • shelf001_screw002

Please try not make up random names. Do a little research and try to find the official name for the object. We do not want to see objects named thing001 and thing002, or cylinder001, sphere1, etc. Models with such names will get kicked back and not reviewed.

materialType

We will be adding a materialType token so we can easily add preset shaders to the geometry later on down the pipeline.  Currently, we are only using the following material types:

  • ceramic
  • glass
  • leather
  • metal 
  • organic
  • paper
  • plastic
  • rubber
  • textile
  • wood

This is so the Surfacing team have a base to work from, and they can use wildcards for easy selection and shader assignment. For more information on the Material Naming Conventions, check out this page:

…and to pick up the latest CAVE generic materials, please take a look here:

  • Library Materials – Generic – Here you will find a breakdown of our generic materials that should be used by modelling to help define the material type of an object.

TYPE

The TYPE token is mandatory and should describe the type of object. For example, is it geometry, a curve, a group node, etc. Please note that the type token should be capitalised.

  • GEOP: used to describe polygonal models that DO NOT need to be subdivided at render time. The ‘P’ is for ‘primitive’.
  • GEOS: used to describe polygonal models that DO need to be subdivided at render time. The ‘S’ is for ‘subdivide’. By default, catclark should be enabled and set to 2 iterations.
  • MSH: used to describe non-renderable models.
  • GRP: used to describe a group node.
  • CRV: used to describe curves.
  • CAM: used to describe cameras.
  • LGT:  used to describe lights.
  • LOC:  used to describe locators.

Avoid duplicate names

As mentioned above, when naming duplicate objects, please add a three padded number to the ObjectName. All objects in the scene should have a unique name, and not doing so can create issues later on, especially when pushing assets from one application to another.

Here is an example of approved naming of duplicate objects:

  • ventPanel001_GRP
    • ventPanel001_bolt001_metal_GEOP
    • ventPanel001_bolt002_metal_GEOP
  • ventPanel002_GRP
    • ventPanel002_bolt001_metal_GEOP
    • ventPanel002_bolt002_metal_GEOP

And an example of a model that would be declined:

  • VentPanel001_GRP
    • VentPanel001Bolt001_metal_GEOP
    • VentPanel001Bolt002_metal_GEOP
  • VentPanel002_GRP
    • VentPanel001Bolt001_metal_GEOP
    • VentPanel001Bolt002_metal_GEOP

Examples

Here are some more examples. Later on, we’ll look to have a tool created to manage help manage the naming of objects.

  • chr_rocky_body_mod_top_default_lod1_GRP
    • L_arm_GRP
      • L_arm_panel001_plastic_GEOS
      • L_arm_panel002_plastic_GEOS
    • L_leg_GRP
      • L_leg_panel001_plastic_GEOS
      • L_leg_panel002_plastic_GEOS
  • veh_astp77_interior_mod_top_damaged_lod1_GRP
    • computerConsole_plastic_GEOS

Additional Notes

  • All non-renderable mesh should end in _MSH (mesh)
  • All group nodes should end in _GRP (group)
  • All geometry nodes, as mentioned above, should end in _GEOP or GEOS
  • All curves should end in _CRV (curve)

Further Reading

  • Material Naming Conventions – This doc will give a breakdown of how to go about naming materials.
  • Model LODs – This doc will give a run-down of how we name and handle model LODs at CAVE.

Support CAVE Academy

Here at CAVE Academy the beauty of giving and sharing is very close to our hearts. With that spirit, we gladly provide Masterclasses, Dailies, the Wiki, and many high-quality assets free of charge. To enable the team to create and release more free content, you can support us here: Support CAVE Academy

Leave a Comment





Support the CAVE Academy Wiki

Helping others through learning and sharing