Skip to main content

Naming Textures & Materials

DreamCraft Standards — Naming Convention

텍스처 구조

T_ Material _ Biome _ Property _ Resolution _ _MapType

머티리얼 구조

M_ BaseName _ Variant
MI_ BaseName _ Biome _ Variant
프리픽스 (에셋 타입)
고정 식별자 (재질 / 이름)
가변 세그먼트 (바이옴 / 특성 / 해상도)
서픽스 (맵 타입)
▼ 텍스처
T_Rock_Volcanic_Large_D
T_Metal_Rusted_ORM
T_Landscape_Permafrost_Snow_N
▼ 머티리얼
M_Master_Terrain
MI_Terrain_Volcanic_Wet
MI_Rock_Volcanic_Mossy
M_Decal_Scorch_Small

텍스처 세트 규칙

같은 에셋의 텍스처는 BaseName을 일치시킨다
하나의 머티리얼에 들어가는 텍스처 세트는 반드시 동일한 BaseName을 공유해야 한다. 검색 시 BaseName만 치면 관련 텍스처가 한꺼번에 나온다.
✓ BaseName 일치 — "Rock_Volcanic" 검색 → 전부 나옴
T_Rock_Volcanic_D
T_Rock_Volcanic_N
T_Rock_Volcanic_ORM
T_Rock_Volcanic_H
✕ BaseName 불일치 — 검색이 흩어짐
T_VolcanicRock_D
T_Rock_Volc_Normal
T_Volcanic_Rock_Rough
💡 서픽스도 통일
Normal Map을 _N으로 정했으면 프로젝트 전체에서 _N만 쓴다. _Normal, _Nrm 혼용 금지.

텍스처 서픽스

텍스처는 프리픽스 T_ + 서픽스로 서브타입을 구분
기본 맵 타입
_D
Diffuse / Base Color
_N
Normal Map
_E
Emissive
_R
Roughness
_MT
Metallic
_AO
Ambient Occlusion
_M
Mask
_H
Height / Displacement
_O
Opacity
_S
Specular
_F
Flow Map
_CV
Curvature


채널 패킹 (Channel Packing)
💡 여러 맵을 RGB 채널에 합칠 때, 서픽스 글자를 이어 붙인다
메모리 절약과 샘플러 슬롯 절약을 위해 자주 사용. 어떤 채널에 뭐가 들어있는지 서픽스만 보면 알 수 있어야 한다.
채널 구성 설명 서픽스
R: AO, G: Roughness, B: Metallic ORM 패킹 (가장 일반적) _ORM
R: Metallic, G: Roughness 메탈릭 + 러프니스 _MTR
R: Emissive, G: Roughness, B: AO 이미시브 + 러프니스 + AO _ERAO
RGB: Mask, A: Opacity 마스크 + 오파시티 _MO
💡 커스텀 패킹을 만들었다면
주석이나 위키에 채널 구성을 반드시 기록해둘 것. 시간이 지나면 본인도 기억 못 한다.

텍스처 분류

🖼️ 프리픽스별 용도
T_
월드 텍스처 (범용)
메시, 랜드스케이프, 환경 등 일반 텍스처
TI_
아이콘 텍스처
UI 아이콘 전용 — TI_Icon_Sword, TI_Icon_Health
RT_
렌더 타겟
런타임 렌더 결과물 — RT_Minimap, RT_SecurityCam


타일링 텍스처 vs 유니크 텍스처
반복 사용하는 범용 텍스처와, 특정 오브젝트 전용 텍스처의 네이밍을 구분한다.
▼ 타일링 — 재질 + 특성 (어디서든 쓸 수 있는 이름)
T_Rock_Mossy_D
T_Metal_Rusted_Scratched_D
T_Wood_Plank_Weathered_D
▼ 유니크 — 특정 오브젝트 전용
T_Furnace_Body_D
T_PlayerBot_Helmet_D


데칼 텍스처
데칼용 텍스처는 T_Decal_로 시작하여 머티리얼과 묶이도록 한다.
T_Decal_Crack_Ground_D
T_Decal_Scorch_Small_D
T_Decal_Blood_Splat_O


랜드스케이프 레이어 텍스처
랜드스케이프 페인팅에 사용되는 텍스처. 바이옴 태그를 넣어 구분.
T_Landscape_Volcanic_Dirt_D
T_Landscape_Grassland_Grass_D
T_Landscape_Permafrost_Snow_N

해상도 표기

같은 텍스처의 해상도 변형이 있을 때만 표기
해상도가 하나뿐이면 붙이지 않는다. 여러 해상도를 유지해야 할 때만 서픽스 앞에 넣는다.
▼ 해상도 하나 — 표기 불필요
T_Rock_Volcanic_D
▼ 여러 해상도 유지 — 서픽스 앞에 표기
T_Rock_Volcanic_4K_D
T_Rock_Volcanic_2K_D
T_Rock_Volcanic_1K_D
⚠ 해상도는 서픽스 앞, BaseName 뒤에 위치
T_Rock_Volcanic_4K_D ✓ — T_Rock_Volcanic_D_4K
맵 타입 서픽스가 항상 맨 끝에 와야 정렬이 깔끔하다.

바이옴 태깅 위치

바이옴은 BaseName 안에서 재질 뒤에 위치
구조: T_[재질]_[바이옴]_[특성]_[서픽스]
Grassland RedDesert Volcanic Permafrost Swamp Coast Mountain
T_Rock_Volcanic_Large_D
T_Cliff_RedDesert_N
T_Dirt_Permafrost_Frozen_D
💡 범용 텍스처에는 바이옴을 넣지 않는다
여러 바이옴에서 공통으로 쓰는 텍스처는 바이옴 세그먼트를 생략. T_Rock_Mossy_D — 특정 바이옴에 한정되지 않음.

머티리얼 프리픽스 & 분류

🎨 기본 프리픽스
M_
머티리얼
Material — 마스터 머티리얼 포함
MI_
머티리얼 인스턴스
Material Instance
MF_
머티리얼 함수
Material Function — 재사용 로직 모듈
MPC_
머티리얼 파라미터 컬렉션
Material Parameter Collection — 글로벌 파라미터


🏷️ 용도별 서브 프리픽스
특수 용도 머티리얼은 M_ 뒤에 용도를 명시
M_Decal_
데칼
M_Decal_Crack_Ground
M_PP_
포스트 프로세스
M_PP_ColorGrading, M_PP_Outline
M_Landscape_
랜드스케이프
M_Landscape_Volcanic
M_UI_
UI 전용
M_UI_HealthBar, M_UI_RadialProgress
M_FX_
이펙트 전용
M_FX_Fire, M_FX_Dissolve

마스터 → 인스턴스 계층

부모-자식 관계가 이름에서 읽혀야 한다
마스터 머티리얼의 BaseName이 인스턴스에 그대로 이어지고, 인스턴스는 더 구체적인 세그먼트를 추가한다.
▼ 마스터 머티리얼
M_Master_Terrain
▼ 인스턴스 (1단계 — 바이옴)
MI_Terrain_Volcanic
MI_Terrain_Grassland
▼ 인스턴스 (2단계 — 변형)
MI_Terrain_Volcanic_Wet
MI_Terrain_Volcanic_Charred
▼ 다른 예시 — 오브젝트용
M_Master_Prop
MI_Prop_Metal_Rusted
MI_Prop_Wood_Weathered
MI_Prop_Wood_Painted_Red
💡 마스터 머티리얼 이름에는 Master_를 명시
인스턴스와 마스터를 검색에서 즉시 구분하기 위함. 인스턴스는 MI_로 시작하므로 Master_가 빠진다.

머티리얼 함수 & 파라미터 컬렉션

머티리얼 함수 — 기능 기반으로 네이밍
무엇을 하는 함수인지가 이름에서 드러나야 한다. 재질이 아닌 기능/효과명으로 짓는다.
MF_BlendByHeight
MF_WorldAlignedTexture
MF_WindAnimation
MF_TriplanarProjection
MF_SnowCoverage


머티리얼 파라미터 컬렉션 — 범위/시스템 기반으로 네이밍
어떤 시스템이 이 파라미터를 제어하는지 이름에서 알 수 있어야 한다.
MPC_Weather ← 비/눈/바람 등 날씨 관련 글로벌 값
MPC_TimeOfDay ← 시간대별 라이팅/색조 변화
MPC_Terrain ← 랜드스케이프 블렌딩 파라미터
MPC_PostProcess ← 포스트프로세스 조정값

머티리얼 파라미터 네이밍

머티리얼 안의 파라미터 이름도 규칙이 필요하다
머티리얼 인스턴스에서 파라미터를 수정할 때, 이름이 엉망이면 어떤 값이 뭘 하는지 알 수 없다.
그룹으로 분류
Unreal 머티리얼 에디터의 Group 기능으로 파라미터를 묶는다. 그룹명은 용도별로 짧고 명확하게.
그룹명 포함 파라미터 예시
Base BaseColor, BaseColor_Tint, BaseColor_Texture
Surface Roughness, Roughness_Min, Roughness_Max, Metallic
Normal Normal_Texture, Normal_Intensity
Emissive Emissive_Color, Emissive_Intensity
Detail Detail_Texture, Detail_Tiling, Detail_BlendFactor
Animation Wind_Speed, Wind_Intensity, Panner_SpeedX
💡 파라미터 네이밍 규칙
PascalCase 사용. [대상]_[속성] 형태.
BaseColor_Tint ✓ — tint color for base
범위를 가진 값은 _Min, _Max 서픽스.

텍스처 ↔ 머티리얼 관계

BaseName을 맞추면 에셋 간 관계가 명확해진다
텍스처, 머티리얼, 머티리얼 인스턴스, 메시가 같은 BaseName을 공유하면 검색 한 번으로 관련 에셋을 전부 찾을 수 있다.
▼ "Rock_Volcanic" 으로 검색하면 전부 나옴
T_Rock_Volcanic_D ← 텍스처 (Diffuse)
T_Rock_Volcanic_N ← 텍스처 (Normal)
T_Rock_Volcanic_ORM ← 텍스처 (패킹)
M_Rock_Volcanic ← 머티리얼
MI_Rock_Volcanic_Mossy ← 머티리얼 인스턴스 (이끼 변형)
MI_Rock_Volcanic_Charred ← 머티리얼 인스턴스 (그을린 변형)
SM_Rock_Volcanic_Large ← 스태틱 메시
⚠ BaseName이 어긋나면 일어나는 일
텍스처는 T_VolcanicRock, 머티리얼은 M_Rock_Volcanic, 메시는 SM_RockVolc... 검색할 때마다 다른 이름으로 찾아야 하고, 관련 에셋을 놓치게 된다.
💡 에셋 생성 순서 팁
텍스처를 먼저 만들 때 BaseName을 확정하고, 머티리얼과 메시가 그 이름을 따르도록 한다. 이름의 출처(source of truth)를 텍스처로 삼으면 일관성이 유지된다.

세그먼트 순서 정리

텍스처 세그먼트 순서
Prefix 재질/대상 바이옴 특성 해상도 맵 타입
최대 조합:
T_Rock_Volcanic_Mossy_4K_D
가변 세그먼트 생략 가능:
T_Rock_Volcanic_D ← 특성·해상도 생략
T_Metal_Rusted_ORM ← 바이옴 불필요, 특성만


머티리얼 세그먼트 순서
Prefix 용도/대상 바이옴 변형
마스터 → 인스턴스 흐름:
M_Master_Terrain ← 마스터
MI_Terrain_Volcanic ← 바이옴
MI_Terrain_Volcanic_Wet ← 바이옴 + 변형
⚠ 맵 타입 서픽스는 항상 맨 끝
텍스처에서 _D, _N, _ORM 등 맵 타입은 어떤 경우에도 마지막 위치. 해상도나 특성이 서픽스 뒤로 가면 정렬이 깨진다.
T_Rock_Volcanic_4K_D T_Rock_Volcanic_D_4K