318 lines
7.4 KiB
Markdown
318 lines
7.4 KiB
Markdown
|
|
# Naming Conventions - Dubai Metaverse
|
||
|
|
|
||
|
|
## Overview
|
||
|
|
|
||
|
|
Consistent naming conventions are critical for project organization, asset management, and team collaboration. All assets, files, and code must follow these conventions.
|
||
|
|
|
||
|
|
## General Rules
|
||
|
|
|
||
|
|
1. **Use PascalCase** for asset names (e.g., `SM_Building_01`)
|
||
|
|
2. **Use underscores** to separate logical groups (e.g., `SM_Building_Marina_01`)
|
||
|
|
3. **Be descriptive** but concise
|
||
|
|
4. **Use consistent prefixes** for asset types
|
||
|
|
5. **Include numbers** for multiple instances (01, 02, 03...)
|
||
|
|
6. **No spaces** in file names
|
||
|
|
7. **No special characters** except underscores and hyphens
|
||
|
|
|
||
|
|
## Asset Type Prefixes
|
||
|
|
|
||
|
|
### Static Meshes
|
||
|
|
- **Format**: `SM_AssetName_Variant_Number`
|
||
|
|
- **Example**: `SM_Building_Marina_01`, `SM_Prop_Bench_01`
|
||
|
|
- **Prefix**: `SM_`
|
||
|
|
|
||
|
|
### Skeletal Meshes
|
||
|
|
- **Format**: `SK_AssetName_Variant_Number`
|
||
|
|
- **Example**: `SK_Character_Male_01`, `SK_Vehicle_Lamborghini`
|
||
|
|
- **Prefix**: `SK_`
|
||
|
|
|
||
|
|
### Materials
|
||
|
|
- **Format**: `M_AssetName_Type`
|
||
|
|
- **Example**: `M_Building_Glass`, `M_Concrete_4K`, `M_Marina_Water`
|
||
|
|
- **Prefix**: `M_`
|
||
|
|
|
||
|
|
### Material Instances
|
||
|
|
- **Format**: `MI_AssetName_Variant`
|
||
|
|
- **Example**: `MI_Building_Glass_Blue`, `MI_Concrete_Dirty`
|
||
|
|
- **Prefix**: `MI_`
|
||
|
|
|
||
|
|
### Textures
|
||
|
|
- **Format**: `T_AssetName_MapType_Resolution`
|
||
|
|
- **Example**: `T_Building_BaseColor_4K`, `T_Concrete_Normal_2K`
|
||
|
|
- **Prefix**: `T_`
|
||
|
|
- **Map Types**: `BaseColor`, `Normal`, `Roughness`, `Metallic`, `AO`, `Emissive`, `Height`
|
||
|
|
|
||
|
|
### Blueprints
|
||
|
|
- **Format**: `BP_ClassName_Purpose`
|
||
|
|
- **Example**: `BP_PlayerController_Main`, `BP_Door_Automatic`, `BP_Vehicle_Lamborghini`
|
||
|
|
- **Prefix**: `BP_`
|
||
|
|
|
||
|
|
### Animation Blueprints
|
||
|
|
- **Format**: `ABP_CharacterName_Purpose`
|
||
|
|
- **Example**: `ABP_NPC_Walk`, `ABP_Player_Main`
|
||
|
|
- **Prefix**: `ABP_`
|
||
|
|
|
||
|
|
### Behavior Trees
|
||
|
|
- **Format**: `BT_NPCName_Behavior`
|
||
|
|
- **Example**: `BT_NPC_Wander`, `BT_NPC_Social`
|
||
|
|
- **Prefix**: `BT_`
|
||
|
|
|
||
|
|
### Particle Systems
|
||
|
|
- **Format**: `P_EffectName_Type`
|
||
|
|
- **Example**: `P_Dust_Ambient`, `P_Fountain_Water`, `P_Heat_Distortion`
|
||
|
|
- **Prefix**: `P_`
|
||
|
|
|
||
|
|
### Audio
|
||
|
|
- **Format**: `A_SoundName_Type`
|
||
|
|
- **Example**: `A_Ambient_City`, `A_Vehicle_Engine`, `A_Footstep_Concrete`
|
||
|
|
- **Prefix**: `A_`
|
||
|
|
|
||
|
|
### Sequencer Sequences
|
||
|
|
- **Format**: `SQ_SequenceName_ShotNumber`
|
||
|
|
- **Example**: `SQ_DubaiCinematic_01`, `SQ_DroneSweep_03`
|
||
|
|
- **Prefix**: `SQ_`
|
||
|
|
|
||
|
|
### Cine Cameras
|
||
|
|
- **Format**: `CineCamera_Purpose_Number`
|
||
|
|
- **Example**: `CineCamera_Drone_01`, `CineCamera_StreetLevel_02`
|
||
|
|
- **Prefix**: `CineCamera_`
|
||
|
|
|
||
|
|
### Data Assets
|
||
|
|
- **Format**: `DA_DataType_Name`
|
||
|
|
- **Example**: `DA_Quest_Main`, `DA_Dialogue_NPC_01`
|
||
|
|
- **Prefix**: `DA_`
|
||
|
|
|
||
|
|
### Widget Blueprints
|
||
|
|
- **Format**: `WBP_WidgetName_Purpose`
|
||
|
|
- **Example**: `WBP_MainMenu`, `WBP_MiniMap`, `WBP_InteractionPrompt`
|
||
|
|
- **Prefix**: `WBP_`
|
||
|
|
|
||
|
|
### PCG Graphs
|
||
|
|
- **Format**: `PCG_SystemName_Purpose`
|
||
|
|
- **Example**: `PCG_BuildingPlacement`, `PCG_RoadProps`, `PCG_Vegetation`
|
||
|
|
- **Prefix**: `PCG_`
|
||
|
|
|
||
|
|
## Category-Specific Naming
|
||
|
|
|
||
|
|
### Buildings
|
||
|
|
|
||
|
|
**Hero Landmark**:
|
||
|
|
- `SM_Hero_CayanTower_Main`
|
||
|
|
- `SM_Hero_CayanTower_Details`
|
||
|
|
- `M_Hero_CayanTower_Glass`
|
||
|
|
- `M_Hero_CayanTower_Chrome`
|
||
|
|
|
||
|
|
**Primary Buildings**:
|
||
|
|
- `SM_Building_Marina_01`
|
||
|
|
- `SM_Building_Marina_02`
|
||
|
|
- `M_Building_Glass_4K`
|
||
|
|
- `M_Building_Concrete_4K`
|
||
|
|
|
||
|
|
**Background Buildings**:
|
||
|
|
- `SM_Building_Background_01`
|
||
|
|
- `SM_Building_Background_02`
|
||
|
|
|
||
|
|
### Vehicles
|
||
|
|
|
||
|
|
- `SM_Vehicle_Lamborghini`
|
||
|
|
- `SM_Vehicle_GWagon`
|
||
|
|
- `SM_Vehicle_Ferrari`
|
||
|
|
- `BP_Vehicle_Lamborghini`
|
||
|
|
- `BP_VehicleController_Main`
|
||
|
|
|
||
|
|
### Characters (MetaHumans)
|
||
|
|
|
||
|
|
- `MH_Dubai_01`
|
||
|
|
- `MH_Dubai_02`
|
||
|
|
- `SK_Character_Male_01`
|
||
|
|
- `ABP_NPC_Walk`
|
||
|
|
- `BT_NPC_Wander`
|
||
|
|
|
||
|
|
### Materials
|
||
|
|
|
||
|
|
**Building Materials**:
|
||
|
|
- `M_Building_Glass_8K`
|
||
|
|
- `M_Building_Chrome_8K`
|
||
|
|
- `M_Building_Concrete_4K`
|
||
|
|
- `M_Building_Metal_4K`
|
||
|
|
|
||
|
|
**Effect Materials**:
|
||
|
|
- `MFX_HeatHaze`
|
||
|
|
- `MFX_Fingerprint`
|
||
|
|
- `MFX_Weathering`
|
||
|
|
|
||
|
|
**Water Materials**:
|
||
|
|
- `M_Water_Marina`
|
||
|
|
- `M_Water_Foam`
|
||
|
|
|
||
|
|
### Textures
|
||
|
|
|
||
|
|
**Hero Asset Textures (8K)**:
|
||
|
|
- `T_Hero_CayanTower_BaseColor_8K`
|
||
|
|
- `T_Hero_CayanTower_Normal_8K`
|
||
|
|
- `T_Hero_CayanTower_Roughness_8K`
|
||
|
|
|
||
|
|
**Building Textures (4K)**:
|
||
|
|
- `T_Building_Glass_BaseColor_4K`
|
||
|
|
- `T_Building_Concrete_Normal_4K`
|
||
|
|
|
||
|
|
**Background Textures (2K)**:
|
||
|
|
- `T_Building_Background_BaseColor_2K`
|
||
|
|
|
||
|
|
## Folder Structure Naming
|
||
|
|
|
||
|
|
### Content Folder Structure
|
||
|
|
|
||
|
|
```
|
||
|
|
Content/
|
||
|
|
├── Maps/
|
||
|
|
│ ├── Main/
|
||
|
|
│ ├── Blockout/
|
||
|
|
│ └── Test/
|
||
|
|
├── Assets/
|
||
|
|
│ ├── Buildings/
|
||
|
|
│ │ ├── Hero/
|
||
|
|
│ │ ├── Primary/
|
||
|
|
│ │ └── Background/
|
||
|
|
│ ├── Vehicles/
|
||
|
|
│ ├── Characters/
|
||
|
|
│ ├── Props/
|
||
|
|
│ ├── Materials/
|
||
|
|
│ │ ├── M_BuildingLibrary/
|
||
|
|
│ │ ├── M_HeroLandmark/
|
||
|
|
│ │ └── MFX/
|
||
|
|
│ └── Textures/
|
||
|
|
│ ├── T_HeroLandmark/
|
||
|
|
│ ├── T_Buildings/
|
||
|
|
│ └── T_Props/
|
||
|
|
├── Blueprints/
|
||
|
|
│ ├── Gameplay/
|
||
|
|
│ ├── Vehicles/
|
||
|
|
│ ├── AI/
|
||
|
|
│ └── NPCs/
|
||
|
|
├── PCG/
|
||
|
|
├── Cinematics/
|
||
|
|
└── Audio/
|
||
|
|
```
|
||
|
|
|
||
|
|
### Folder Naming Rules
|
||
|
|
|
||
|
|
- Use **PascalCase** for folder names
|
||
|
|
- Be descriptive and organized by category
|
||
|
|
- Group related assets together
|
||
|
|
- Use consistent hierarchy
|
||
|
|
|
||
|
|
## LOD Naming
|
||
|
|
|
||
|
|
### LOD Suffixes
|
||
|
|
|
||
|
|
- **LOD0**: No suffix (highest quality)
|
||
|
|
- **LOD1**: `_LOD1`
|
||
|
|
- **LOD2**: `_LOD2`
|
||
|
|
- **LOD3**: `_LOD3`
|
||
|
|
|
||
|
|
**Example**:
|
||
|
|
- `SM_Building_Marina_01` (LOD0)
|
||
|
|
- `SM_Building_Marina_01_LOD1`
|
||
|
|
- `SM_Building_Marina_01_LOD2`
|
||
|
|
- `SM_Building_Marina_01_LOD3`
|
||
|
|
|
||
|
|
**Note**: Nanite meshes don't use LOD suffixes (Nanite handles LOD automatically)
|
||
|
|
|
||
|
|
## Variant Naming
|
||
|
|
|
||
|
|
### Color Variants
|
||
|
|
|
||
|
|
- `_Red`, `_Blue`, `_Green`, etc.
|
||
|
|
- **Example**: `MI_Building_Glass_Blue`
|
||
|
|
|
||
|
|
### Size Variants
|
||
|
|
|
||
|
|
- `_Small`, `_Medium`, `_Large`
|
||
|
|
- **Example**: `SM_Prop_Bench_Small`
|
||
|
|
|
||
|
|
### Quality Variants
|
||
|
|
|
||
|
|
- `_4K`, `_8K` (for textures)
|
||
|
|
- **Example**: `T_Building_BaseColor_4K`
|
||
|
|
|
||
|
|
## Numbering Conventions
|
||
|
|
|
||
|
|
### Sequential Numbering
|
||
|
|
|
||
|
|
- Use **zero-padded** numbers: `01`, `02`, `03`... `10`, `11`...
|
||
|
|
- **Example**: `SM_Building_Marina_01`, `SM_Building_Marina_02`
|
||
|
|
|
||
|
|
### Version Numbers
|
||
|
|
|
||
|
|
- Use **v1**, `v2`, `v3` for versions
|
||
|
|
- **Example**: `SM_Building_Marina_01_v2`
|
||
|
|
|
||
|
|
## Special Cases
|
||
|
|
|
||
|
|
### UDIM Textures
|
||
|
|
|
||
|
|
- Use UDIM naming: `T_AssetName_MapType_1001`, `T_AssetName_MapType_1002`
|
||
|
|
- **Example**: `T_Hero_CayanTower_BaseColor_1001`
|
||
|
|
|
||
|
|
### Decals
|
||
|
|
|
||
|
|
- **Format**: `D_DecalName_Type`
|
||
|
|
- **Example**: `D_Weathering_Crack`, `D_Signage_Neon`
|
||
|
|
- **Prefix**: `D_`
|
||
|
|
|
||
|
|
### Post-Process Volumes
|
||
|
|
|
||
|
|
- **Format**: `PP_VolumeName_Purpose`
|
||
|
|
- **Example**: `PP_DubaiCinematic`, `PP_Interior`
|
||
|
|
- **Prefix**: `PP_`
|
||
|
|
|
||
|
|
## Validation
|
||
|
|
|
||
|
|
### Automated Validation
|
||
|
|
|
||
|
|
Use `scripts/validate_assets.sh` to validate naming conventions:
|
||
|
|
|
||
|
|
```bash
|
||
|
|
./scripts/validate_assets.sh
|
||
|
|
```
|
||
|
|
|
||
|
|
### Manual Checklist
|
||
|
|
|
||
|
|
Before committing assets, verify:
|
||
|
|
- ✅ Prefix is correct for asset type
|
||
|
|
- ✅ Name is descriptive and clear
|
||
|
|
- ✅ Numbers are zero-padded
|
||
|
|
- ✅ No spaces or special characters
|
||
|
|
- ✅ Follows category-specific conventions
|
||
|
|
- ✅ Folder structure is correct
|
||
|
|
|
||
|
|
## Examples
|
||
|
|
|
||
|
|
### Complete Asset Set Example
|
||
|
|
|
||
|
|
**Building Asset**:
|
||
|
|
- Mesh: `SM_Building_Marina_01`
|
||
|
|
- Material: `M_Building_Marina_Glass`
|
||
|
|
- Material Instance: `MI_Building_Marina_Glass_Blue`
|
||
|
|
- Textures:
|
||
|
|
- `T_Building_Marina_BaseColor_4K`
|
||
|
|
- `T_Building_Marina_Normal_4K`
|
||
|
|
- `T_Building_Marina_Roughness_4K`
|
||
|
|
- `T_Building_Marina_Metallic_4K`
|
||
|
|
- `T_Building_Marina_AO_4K`
|
||
|
|
|
||
|
|
**Vehicle Asset**:
|
||
|
|
- Mesh: `SM_Vehicle_Lamborghini`
|
||
|
|
- Blueprint: `BP_Vehicle_Lamborghini`
|
||
|
|
- Material: `M_Vehicle_Lamborghini_Paint`
|
||
|
|
- Textures:
|
||
|
|
- `T_Vehicle_Lamborghini_BaseColor_4K`
|
||
|
|
- `T_Vehicle_Lamborghini_Normal_4K`
|
||
|
|
|
||
|
|
---
|
||
|
|
|
||
|
|
**Version**: 1.0
|
||
|
|
**Last Updated**: [Current Date]
|
||
|
|
|