
개요
언리얼 엔진 5 폴더 구조와 명명 규칙을 효율적으로 설정하는 방법에 대한 가이드이다.
참고 영상을 토대로 요약해본다.
영상
https://youtu.be/z_eH_55YgMs?si=mIIkt0QK6qAeu-_H
결론
- 정리의 필요성
메모리 절약, 버그 감소, 협업 때문이다.
- 파트별 계층구조
팀 이름을 반영한 계층 구조를 짠다.
예를 들어, VFX 파트는 VFX 폴더 별도로 만들어 책임 소재를 명확히 한다.
- VFX 폴더 내부 에셋 정리 규약
재사용성을 최우선으로 한다.
- 폴더 과용 금지
너무 많은 폴더는 오히려 비효율적이다.
폴더 이름과 에셋 이름이 중복될 경우, 예컨대 Debris 폴더 안에 T_Debris_Small으로 돼있다면 정보의 중복이 발생한다.
차라리 한 폴더에 두고, 검색 기능 사용을 권장한다.
- 에셋 네이밍 규약
1. T_ 또는 M_과 같은 접두사를 사용한다.
그래야 에러 메시지가 발생시 빠른 문제파악이 가능하다.
2. 가장 중요한 특징부터 나열한다.
접두사, 카테고리, 세부설명 순으로 이름 지정하면 알파벳순 정렬시 검색 효율이 증가한다.
예를 들면 'T_Noise_Contrast', 'T_Fire_Smoke_Wisps'와 같다.
형용사를 뒤에 붙여 표현한다고 생각하면 된다. (영어의 역순)
3. 불필요한 정보는 이름에서 제외한다.
예컨대 'tile'이라는 단어는 대부분의 텍스처에 적용되므로 이름에 포함할 필요가 없다.
또한 타일링 여부는 시각적으로 쉽게 판단이 가능하다.
마찬가지로 숫자 접미사보다는 'T_Gradient_Portal_Edge', 'T_Gradient_Portal_Center' ... 과 같이 의미를 담은 이름을 사용하여 에셋의 기능을 명확히 해야한다.
4. 두문자 이상의 접미사를 사용한다.
일반적인 텍스처의 경우 D(Diffuse)와 같은 접미사를 사용한다.
하지만 N (Normal)과 같은 단일 문자 접미사는 의도치 않은 탐지(false positive)를 유발할 수 있다.
따라서 NM (Normal Map)과 같은 두문자 이상의 접미사를 사용하여 검색의 정확도를 높일 것을 권장한다.


위 그림으로 _NM과 _N의 검색 정확도 차이를 비교할 수 있다.
타임라인별 상세 요약
[00:00:04 - 00:02:31] 도입 및 정리의 중요성
프로젝트 정리의 중요성을 강조합니다.
이는 단순한 최적화 문제가 아니라, 프로젝트의 성공 가능성을 높이는 핵심 요소라고 설명합니다.
예를 들어, 여러 개의 동일한 메시를 가져오는 것과 같은 불필요한 중복은 버그를 유발하고 개발 지연을 초래할 수 있습니다 [01:13]. 잘 정리된 프로젝트는 메모리 절약, 버그 감소, 그리고 팀원 간의 효율적인 협업에 필수적입니다 [01:54].
6개월 후에 다시 작업할 자료를 이해하는 데 걸리는 시간을 줄여주며, 레이아웃과 이름을 통해 필요한 정보를 빠르게 파악할 수 있도록 돕습니다 [02:04].
[00:02:31 - 00:03:14] 완벽한 해결책은 없지만, 좋은 구조는 존재한다
완벽한 폴더 구조나 명명 규칙은 없지만, 프로젝트의 규모, 팀 구성, 게임 유형에 따라 최적의 방법이 달라질 수 있다고 언급합니다 [02:38].
그러나 모든 에셋을 하나의 폴더에 넣거나, 모든 에셋마다 개별 폴더를 만드는 극단적인 방식은 비효율적임을 분명히 합니다 [02:53].
중요한 것은 프로젝트 초기에 구조를 계획하고 유지하는 것입니다 [03:27].
이는 프로젝트가 진행됨에 따라 자연스럽게 발생하는 혼란을 최소화하고, 안정적인 성장을 돕는 데 기여합니다 [03:31].
[00:03:14 - 00:06:21] 무질서한 프로젝트 예시
강사는 언리얼 엔진 5.4 버전의 새 프로젝트를 예시로 보여줍니다.
이 프로젝트에는 스타터 콘텐츠, 1인칭 템플릿, Paragon Greystone 캐릭터, Agora 및 Monolith 프롭스, 워터 머티리얼 팩이 추가되어 있습니다 [04:06].
하지만 이 모든 에셋들이 무작위로 배열되어 있어, 'First Person'과 'First Person Arms'처럼 중복되거나 의미 없는 폴더들이 많다고 지적합니다 [04:43].
특히 마켓플레이스 에셋의 경우 품질이 낮은 경우가 있을 수 있으므로, 별도의 폴더에 넣어 검토 및 정리하는 과정이 필요하다고 강조합니다 [05:08].
초기 프로젝트의 혼란스러운 상태를 시각적으로 보여주며, 잘 정리된 구조의 필요성을 다시 한번 각인시킵니다.
[00:06:21 - 00:09:17] 부서별 폴더 구조: 팀 계층 반영
프로젝트를 정리하는 첫 단계로 부서별 폴더 구조를 제시합니다 [06:41].
예를 들어, 리드 VFX 아티스트로서 모든 VFX 관련 에셋은 'VFX' 폴더 아래에 모아두어 책임 영역을 명확히 하고 쉽게 관리할 수 있도록 합니다 [06:49].
이는 새로운 효과를 만들 때 기존 자료를 쉽게 재활용하고, 에셋을 감사하며, 중복을 방지하는 데 도움이 됩니다 [07:03].
기존 프로젝트의 Greystone 캐릭터를 예로 들며, 캐릭터 폴더 안에 불필요하게 'Effects' 폴더가 포함되어 있고 [07:24],
그 안에 캐릭터와 관련 없는 일반적인 텍스처들(예: 에너지 플라즈마, 심플 플레어)이 섞여 있는 문제를 지적합니다 [07:34].
이러한 텍스처들은 캐릭터에 종속될 필요 없이 공유 라이브러리에 있어야 한다고 설명합니다 [08:05].
가장 좋은 방법은 팀 계층을 반영하는 폴더 구조를 만드는 것입니다 [08:16].
예를 들어, 'Characters', 'Environments', 'Gameplay', 'Levels', 'VFX', 'Weapons'와 같은 폴더는 각 부서의 책임 영역을 명확히 하고, 누가 어떤 작업을 담당하는지 쉽게 파악할 수 있도록 돕습니다 [08:26].
이는 에셋을 효율적으로 찾고 감사하는 데 큰 이점을 제공합니다 [08:50].
[00:09:17 - 00:14:51] 에셋 정리: 중복 방지 및 효과적인 명명 규칙
부서별 폴더 구조를 설정한 후에는 에셋 내부의 정리에 집중합니다 [09:21].
특히 VFX 작업에서는 최대한 많은 재활용을 목표로 합니다 [09:41]. 'Effects textures' 폴더 안에 있는 빔이나 그라디언트 같은 텍스처들은 매우 재활용성이 높다고 설명하며 [09:46], 모든 텍스처를 한 곳에 모아두고 필요할 때 검색 기능을 활용하여 찾는 것이 더 효율적이라고 주장합니다 [10:00].
중요한 문제 중 하나는 에셋 중복입니다. 강사는 Paragon 에셋에서 동일한 'Tile Geometric' 텍스처가 두 개의 다른 폴더에 중복으로 존재하는 것을 보여줍니다 [10:23]. 이러한 중복은 리소스 낭비와 오류 발생 가능성을 높입니다. 예를 들어, 한 텍스처의 크기를 변경했을 때 다른 중복된 텍스처에는 적용되지 않아 예상치 못한 문제를 일으킬 수 있습니다 [11:22].
폴더 구조를 너무 세분화하는 것도 비효율적일 수 있습니다 [12:33]. 예를 들어, 'Debris' 폴더 안에 'Debris'라는 이름의 텍스처가 있다면, 이는 폴더 이름과 에셋 이름에서 정보의 중복이 발생합니다 [12:46].
차라리 모든 텍스처를 하나의 라이브러리 폴더에 모아두고, 검색 필터를 사용하여 'debris'라는 단어가 포함된 텍스처를 찾는 것이 훨씬 강력하고 효율적입니다 [13:01]. 또한, 'Miscellaneous' 폴더에 단 하나의 텍스처만 있는 경우와 같이 너무 많은 하위 폴더는 관리만 복잡하게 만들 뿐 실질적인 이점이 없다고 지적합니다 [14:03].
[00:14:51 - 00:26:54] 명명 규칙의 중요성 및 콘텐츠 브라우저 활용법 명명 규칙
에셋을 효과적으로 찾고 관리하는 데 매우 중요합니다. 강사는 접두사가 없는 텍스처 이름('atmospheric cloud noise')을 문제점으로 제시하며 [14:38], 'T_' (텍스처), 'M_' (머티리얼)와 같은 접두사를 사용하여 에셋 유형을 명확히 해야 한다고 강조합니다 [14:46]. 이는 에러 메시지가 발생했을 때 문제가 발생한 에셋의 유형을 빠르게 파악하는 데 도움을 줍니다 [14:54].
텍스처 이름을 지정할 때는 가장 중요한 특징부터 나열하는 것이 좋습니다 [17:28]. 예를 들어, 'T_Noise_Contrast', 'T_Fire_Smoke_Wisps'와 같이 접두사('T_'), 주요 유형('Noise', 'Fire'), 그리고 세부 설명('Contrast', 'Smoke_Wisps') 순으로 이름을 지정하면, 알파벳순 정렬 시 관련 에셋들이 함께 나타나 검색 효율을 높일 수 있습니다 [17:34]. 이는 형용사를 뒤에 붙여 표현한다고 생각하면 된다. (영어의 역순) [18:08].
강사는 또한 불필요한 정보는 이름에서 제외해야 한다고 말합니다. 예를 들어, 'tile'이라는 단어는 대부분의 텍스처에 적용되므로 텍스처 이름에 포함할 필요가 없으며 [18:43], 텍스처가 타일링되는지 여부는 시각적으로 쉽게 판단할 수 있습니다 [18:53]. 마찬가지로 'gradient portal 01'과 같은 숫자 접미사보다는 'T_Gradient_Portal_Edge', 'T_Gradient_Portal_Center', 'T_Gradient_Portal_Highlight'와 같이 의미를 담은 이름을 사용하여 에셋의 기능을 명확히 해야 한다고 제안합니다 [19:22].
환경 텍스처의 경우 'D' (Diffuse color)와 같은 접미사를 사용하는 것이 일반적이지만 [20:44], VFX에서는 'N' (Normal)과 같은 단일 문자 접미사는 'dino nest'와 같은 단어에서 **오탐(false positive)**을 유발할 수 있다고 경고합니다 [21:20].
대신 **'_NM' (Normal Map)**과 같은 명확한 접미사를 사용하여 검색의 정확도를 높일 것을 권장합니다 [22:20].
콘텐츠 브라우저의 강력한 검색 기능도 상세히 설명합니다 [23:28].
- 유형별 검색: type=Texture [20:37]
- 압축 설정별 검색: CompressionSettings=Normal을 통해 모든 노멀 맵을 찾을 수 있습니다 [23:12].
- 논리 연산자 사용:
[00:26:54 - 00:34:06] 특정 폴더 예외 및 에셋 중복 해결
강사는 일반적으로 폴더 이름을 사용하지 않고 에셋 이름으로 검색하는 것을 선호하지만 [27:04], 'Flipbooks' 폴더와 'Combustion' 폴더는 예외로 둡니다 [27:31].
- Flipbooks: 플립북은 시각적으로 쉽게 구별되므로 에셋 이름에 'flip'이라는 단어를 넣을 필요가 없다고 설명합니다 [27:38]. 대신 모든 플립북은 전용 'Flipbooks' 폴더에 넣어두고, 폴더 이름으로 검색하여 찾아냅니다 [28:31].
- Combustion: 불, 연기, 폭발과 같이 연관성이 높은 에셋들은 'Combustion' 폴더 아래에 묶어두면, 'combustion'으로 검색했을 때 관련 에셋들을 한 번에 찾을 수 있어 효율적입니다 [29:04].
[00:34:06 - 00:43:08] 콘텐츠 브라우저의 고급 기능: 컬렉션, 레퍼런스 뷰어, 색상 코딩, 즐겨찾기 콘텐츠 브라우저의 추가적인 강력한 기능들을 소개합니다.
- 컬렉션 (Collections): 가상 폴더 역할을 하는 컬렉션을 사용하여 다양한 폴더에 흩어져 있는 에셋들을 논리적으로 그룹화할 수 있습니다 [34:26].
- 로컬 컬렉션 (Local Collection): 개인 작업용으로, 소스 컨트롤에 저장되지 않습니다 [35:12]. 강사는 항상 'Working'이라는 로컬 컬렉션을 만들어 현재 작업 중인 에셋들을 빠르게 접근하는 데 사용한다고 설명합니다 [35:18].
- 프라이빗 컬렉션 (Private Collection): 개인 작업용이지만, 소스 컨트롤 서버에 저장되어 백업됩니다 [34:55].
- 공유 컬렉션 (Shared Collection): 팀원들과 공유되어, 변경 사항이 자동으로 모든 팀원에게 배포됩니다. 팀 프로젝트에서 매우 유용합니다 [35:00].
- 컬렉션은 **비파괴적(non-destructive)**이며 성능에 영향을 주지 않아, 자유롭게 에셋을 추가하거나 제거할 수 있습니다 [36:14]. 예를 들어, 'Greystone' 컬렉션을 만들어 해당 캐릭터와 관련된 모든 에셋(머티리얼, 텍스처, 메시 등)을 한데 모아 관리할 수 있습니다 [36:37].
- 레퍼런스 뷰어 (Reference Viewer): 특정 에셋이 프로젝트 내에서 어떻게 사용되고 있는지 연결 관계를 시각적으로 확인할 수 있는 강력한 도구입니다 [38:21]. 텍스처가 어떤 머티리얼에서 사용되고, 그 머티리얼이 어떤 파티클 시스템이나 스태틱 메시에서 사용되는지 등을 깊이 있게 파악할 수 있습니다 [38:50]. 레퍼런스 뷰어에서 바로 종속성을 기반으로 컬렉션을 생성할 수도 있어, 특정 에셋과 관련된 모든 요소를 쉽게 모을 수 있습니다 [39:31].
- 색상 코딩 (Color Coding): 폴더에 색상을 지정하여 시각적으로 중요한 폴더를 강조할 수 있습니다 [40:30]. 이는 개인의 작업 흐름에 맞춰 자주 사용하는 폴더를 쉽게 식별하는 데 유용합니다 [40:57]. 이 설정은 로컬에 저장되므로, 팀원별로 다르게 설정할 수 있습니다 [41:45].
- 즐겨찾기 (Favorites): 자주 접근하는 폴더나 에셋을 즐겨찾기에 추가하여 빠른 접근성을 확보할 수 있습니다 [42:05]. 이는 콘텐츠 브라우저 전체를 탐색하는 시간을 줄이고, 작업에 필요한 특정 라이브러리나 작업 디렉토리에 집중할 수 있도록 돕습니다 [42:36].
'이펙트 (FX) > 이펙트 팁 : Unreal' 카테고리의 다른 글
| [Unreal/Houdini] Sprite VAT 사용법 (Vertex Animation Texture, Particle) (0) | 2025.11.18 |
|---|---|
| [Unreal] 이펙트 에셋 표준화 가이드 (Guide) (0) | 2025.10.29 |
| [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 |
댓글