Files
metaverseDubai/NAMING_CONVENTIONS.md

318 lines
7.4 KiB
Markdown
Raw Normal View History

# 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]