
개요
텍스처, 메시, 머티리얼, 나이아가라, 블루프린트 등 다양한 애셋의 모범 사례(Best Practice)를 소개한다.
에셋의 기본값 설정은 장기적인 프로젝트의 건전성과 유지보수 편의성에 정말 중요한 요소다.
1. 애셋의 일관성(Consistency) 유지
2. 재사용성(Reusability) 극대화
3. 팀원 간의 원활한 협업
영상
결론
텍스처 : 방향성 통일
메시 : 방향성, 피벗, 스케일, UV 확인용 머티리얼, 버텍스 컬러 통일
머티리얼 : 그룹화, 주석, 패딩넘버 사용
나이아가라 : 그룹화, 패딩넘버 사용
타임라인별 요약
1. 텍스처
[00:01:17 - 00:11:05] 텍스처 애셋 표준화 가장 먼저 텍스처의 표준화
- 방향성 (Directionality): 파티클 효과 등에 사용되는 방향성이 있는 텍스처(예: 화염, 총구 화염)는 기본적으로 'Y축 위쪽(Y-up)'을 향하도록 임포트해야 합니다 [01:42, 01:47]. 이는 파티클이 속도 방향으로 정렬될 때(Velocity Aligned) 기본값이 Y축이기 때문입니다 [01:56]. 이렇게 표준화하면, 머티리얼에서 텍스처를 다른 것으로 교체할 때(예: Muzzle flash 1을 Muzzle flash 2로) 방향성 문제없이 즉시 교체할 수 있습니다 [02:17, 03:43]. 만약 텍스처가 옆을 향하고 있다면 [02:56], 이 기본 설정을 활용할 수 없어 비효율적입니다.


- 1D 타일링: 트레일(trail) 효과처럼 한 방향으로 타일링되는 텍스처는 기본적으로 '수평(Horizontal)'으로 임포트해야 합니다 [04:20]. 만약 수직으로 임포트하면 [04:32], 다른 수평 텍스처와 일관성이 깨집니다. 머티리얼에서 'Swizzle' 노드를 사용하면 UV를 90도 회전하는 것이 거의 비용이 들지 않으므로(0 인스트럭션) [05:02, 05:32], 모든 1D 타일링 텍스처를 수평으로 통일하는 것이 좋습니다.




- 그라디언트(Gradients): 그라디언트 텍스처 역시 수평 또는 수직으로 방향을 통일해야 합니다 [09:26, 09:34]. 하지만 최근에는 텍스처를 임포트하는 대신 '커브 아틀라스(Curve Atlas)'나 에디터의 '컬러 커브(Color Curves)' 기능을 사용하는 것이 좋습니다 [09:57, 10:04].
그라디언트 텍스처 역시 수평으로 통일을 권장한다.
그리고 요즘은 그라디언트 텍스처 자체를 사용할 필요가 없다.
커브아틀라스를 사용하면 된다. 또는 최신 버전의 경우는 더 좋은 기능도 들어왔다.


2. 메시
[00:11:05 - 00:20:12] 메시 애셋 표준화 VFX 메시는 여러 이펙트에서 재사용되는 경우가 많으므로 [11:13, 11:21] 표준화가 중요합니다.
- 피벗 (Pivot Point): 피벗의 위치 또한 일관되어야 합니다

- 스케일 (Scale): 공유되는 모든 VFX 메시는 일관된 기본 크기(예: 1x1x1 유닛)로 임포트되어야 합니다 [13:13, 14:06]. 어떤 메시는 2배 크고 [13:39], 어떤 메시는 170배 크다면 [14:59] 메시를 교체하며 작업할 때 매번 스케일을 재조정해야 하는 번거로움이 생깁니다.

만약 특수한 용도(예를 들어 쇼크웨이브)의 메시 제작시, 별도 규격을 정할수도 있다.
하지만 해당 용도의 모든 에셋 역시 방향과 크기는 별도 설정된 값으로 일관되어야한다. (언제든지 쉽게 교체 가능하도록)

왜곡돼있는지 확인하려면 사각형 패턴만 있어도 충분하다.

- 버텍스 컬러 (Vertex Colors): 매우 중요합니다. VFX 메시는 항상 버텍스 컬러를 포함하여 임포트해야 합니다 [17:12, 17:54]. 특히 실린더나 평면의 '딱딱한 외곽선(hard edges)'을 부드럽게 페이드 아웃 시키기 위해 버텍스 알파나 컬러를 칠해두는 것이 좋습니다 [18:00]. 이는 텍스처 마스크를 사용하는 것보다 훨씬 저렴한(cheapest) 방법입니다 [19:09, 19:15].
대부분의 VFX용 메시는 엣지를 숨기려고 노력한다.
그런데 굳이 매번 텍스처를 사용해서 비용을 낭비할 필요가 없다. 그래서 항상 버텍스 컬러를 사용한다.
가장자리에 검은색 그라데이션을 칠한다.



- 요약: 메시는 일관된 방향(X축), 일관된 크기, 그리고 기본 버텍스 컬러가 적용된 상태여야 합니다 [19:22].
3. 머티리얼
[00:20:12 - 00:45:27] 머티리얼 그래프 표준화 기존 파라곤 애셋의 머티리얼을 예시로, 그래프를 정리하는 모범 사례를 보여줍니다.
- 정리 (Cleanup): 연결되지 않은 노드들은 'Clean Up' 툴을 사용해 삭제합니다 [21:47, 21:56]. 테스트용 로직은 그래프에 남겨두지 말고 'Developers' 폴더 내의 테스트 머티리얼로 복사해둡니다 [22:05, 22:11].


- 정렬 (Alignment): 노드를 가지런히 정렬합니다. 단축키 Shift + W/A/S/D로 정렬을 맞추는 것이 유용합니다 [22:48].
- 주석 (Comments): 간단한 머티리얼이라도 C 키를 눌러 주석 박스를 추가하고 설명을 적는 것이 좋습니다 [23:59, 24:05].
- '블랙 박스' 피하기: 노드 내부의 기본값을 수정하는 것을 피해야 합니다. 예를 들어, TextureCoordinate 노드 내부의 UV Tiling 값을 0.8로 수정하면 [24:49, 24:52], 그래프 외부에서는 이 정보가 숨겨져(hidden) 파악하기 어렵습니다.

- 파라미터 이름: 가장 중요한 부분 중 하나입니다. I, L, param, scale_1 과 같은 의미 없는 이름은 재앙입니다 [30:27, 33:00]. Intensity 대신 Intensity_World_Position_Offset처럼 명확하고 구체적인 이름을 사용해야 합니다 [30:44, 30:56].


- 숫자 간격: 중요한 팁으로, 01, 02, 03 대신 10, 20, 30 처럼 숫자 사이에 간격을 둡니다 [53:36, 53:44]. 이렇게 하면 나중에 15 Detail Normals 처럼 중간에 새 그룹을 추가할 때 모든 그룹의 번호를 재설정할 필요가 없습니다 [54:02, 54:08].
강사의 경우 텍스처샘플은 반드시 01_Textures 라고 지정하는 등 프로젝트 내에서 일관되게 그룹을 설정한다.
아래 그림에선 00으로 설정함.

- 명명된 리루트 (Named Reroutes): 복잡한 머티리얼은 Named Reroute 노드를 적극 활용합니다 [39:57]. 예를 들어, Emissive 로직을 한 섹션에서 모두 계산한 뒤 Emissive_Output이라는 이름의 명명된 리루트 노드로 출력하고 [40:04], 최종 아웃풋 핀에서는 이 노드를 이름으로 참조하여 연결합니다 [40:41]. 이는 그래프를 기능별로 '구획화(Compartmentalize)'하여 가독성을 극도로 높여줍니다 [41:18].
- 와이어 정리: 일반 리루트 노드(더블 클릭)를 사용해 와이어를 정리하고 [42:25], 와이어가 서로 교차하지 않도록 합니다 [43:04]. Add, Multiply는 연산 순서가 상관없으므로 와이어가 꼬일 이유가 없습니다 [43:18].
4. 나이아가라
[00:45:27 - 00:50:17] 나이아가라 시스템 표준화 머티리얼과 동일한 원칙이 적용됩니다 [45:36].
- 지리적 레이아웃: 연관된 이미터끼리 그룹화하여 배치합니다 [45:48]. 한정된 2D 화면 공간을 UV 레이아웃처럼 효율적으로 사용하여 낭비되는 공간을 줄여야 가독성이 높아집니다 [46:13, 47:54].


최종 팁
[00:57:15 - 01:01:07] 마지막 팁: 카메라 북마크 및 결론
- 가장 유용한 팁 (카메라 북마크): 많은 사람들이 사용하지 않는 언리얼의 유용한 기능으로 '카메라 북마크'를 소개합니다 [58:02].
'이펙트 (FX) > 이펙트 팁 : Unreal' 카테고리의 다른 글
| [Unreal/Houdini] Sprite VAT 사용법 (Vertex Animation Texture, Particle) (0) | 2025.11.18 |
|---|---|
| [Unreal] 이펙트 폴더 구조, 네이밍 규칙 설정법 (가이드, Guide, Structure, Naming) (0) | 2025.10.18 |
| [Unreal/BP] MI 네이밍 자동화 스크립팅된 에셋 액션 만들기 (파일첨부) (0) | 2025.08.26 |
| [Unreal/Niagara] 나이아가라 디버거 사용법 (0) | 2025.08.19 |
| [Unreal/Houdini] 지면과 상호작용하는 VAT 강의 소개 (Terrain Adaptive Vertex Animation Texture) (0) | 2025.08.19 |
댓글