Unreal 엔진

[UE] 언리얼 엔진 5 프로젝트 파일 구조 살펴보기

원소랑 2023. 7. 10. 17:12

언리얼 엔진 5 의 프로젝트 파일 구조를 살펴봅니다. 유니티 엔진은 파일 구조가 단순한데, 언리얼엔진은 기본 빈 프로젝트만 설치해도 생서오디는 폴더들이 좀 더 많았습니다.

 

살펴볼 프로젝트는 언리얼엔진 5 프로젝트 브라우저에서 게임 > 기본 템플릿을 선택했습니다. 프로젝트 디폴트 설정은 블루프린트 대신 C++로, 타깃 플랫폼 Mobile, 퀄리티 프리셋 Scalable 로 설정했습니다. 다음 기회에는 다른 셋팅으로도 파일 비교를 해보면 좋겠네요.

생성 후 프로젝트가 저절로 열리는 바람에 중간 파일이나 동적으로 생성된 파일이 있을 수 있겠는데, 일단 .vs 파일을 제외한 파일 크기는 2.11GB 정도. 폴더를 뒤져보니 Intermediate 폴더 하위에 PCH(Pre Compiled Header) 가 크게 자리잡고 있었습니다. Intermediate 폴더를 제외하면 50MB 도 되지 않는 용량.

 

살펴볼 폴더들은 아래와 같습니다.

Binaries

Config

Content

DerivedDataCache

Intermediate

Saved

Source

 

여기서 순수하게 게임 데이터 폴더만 분류하자면 이렇습니다.

Content, Source

 

그리고 나머지는 언리얼 엔진 구동에 필요하거나 자동 생성되거나 빌드 폴더들

Binaries, Config, DerviedDataCache, Intermediate, Saved

 

이 중에서 뎁스가 좀 있고 살펴볼만한 내용이 들어있는 폴더만 꼽아보자면

DerivedDataCache, Intermediate, Saved 정도.

 

그럼 하나하나 살펴봅니다.

 

/DerivedDataCache

이 폴더는 직역하면 "파생 데이터 캐시" 입니다. 언리얼 에디터가 자동으로 생성해주는 캐시 데이터들인데, 언리얼 프로젝트 작업을 하다 보면 이 폴더의 용량이 무지막지하게 늘어나기도 했던 것 같습니다. 작업 환경이나 맥락 등에 맞춰서 계속해서 파일을 생성하고 갱신하기 때문에 버전관리 하에 두면 안 되는 폴더이기도 합니다.

 

용량이 꽤 크기 때문에 많은 인원들이 공동작업을 하는 경우 DerivedDataCache 를 공유할 수 있도록 설정해둔다는데, 과거 큰 팀에서 언리얼 프로젝트를 진행할 때 설정했던 것 같은데 오래전 일이라 잘 기억이 안 나는군요. DDC 관련 내용은 추후에 다시 다룰 수 있을 것 같습니다. 어떤 식으로든 프로젝트가 커지면 문제가 생길 수 있는 부분.

 

자세한 설명은 아래 언리얼 엔진 공식 문서에서 확인할 수 있습니다.

https://docs.unrealengine.com/5.2/ko/derived-data-cache/

 

파생 데이터 캐시

Derived Data Cache 및 UE4 와 그 타깃 플랫폼에서 사용되는 포맷의 애셋 저장에 대한 개요입니다.

docs.unrealengine.com

 

/Intermediate

엔진이나 게임 빌드 도중 생성된 임시 파일이 들어 있습니다. 빌드 임시파일뿐 아니라 각종 Config 파일과 VisualStudio 프로젝트 파일도 하위 폴더에 생성됩니다. 자동으로 생성된 셰이더 코드도 Intermediate 폴더에저장됩니다.

 

/Saved

자동저장 파일, Collections? 는 잘 모르겠고, 크래시 리포트 파일과 각종 셋팅용 ini 파일들이 저장됩니다. 로그파일이 저장되는 폴더도 확인할 수 있습니다.

 

요정도.

 

그리고 실제 게임을 구성하는 폴더인 Content, Source 의 기본 모습을 보면,

Content 폴더는 Collections, Developers 폴더만 있고 내용은 비어있습니다.

언리얼 엔진 에디터를 구동했을 때 보이는 기본 레벨은 에디터가 제공하는 빈 레벨이기 때문에 저장을 하지 않았다면 Content 폴더는 비어있는 상태가 됩니다.

 

다음 Source 폴더는 뭔가 좀 내용이 있는데요,

C# 파일인 Empty_MobileScalable~.cs 파일들은 빌드 셋팅 파일. 어떤 모듈을 사용할지, 빌드 타겟 타입 등 빌드 스크립트 내용을 담습니다.

 

그리고 프로젝트명과 동일한 클래스의 헤더/구현부 파일 2개씩.

Empty_MobileScalable

Empty_MobileScalableGameModeBase

이렇게 구성돼있습니다. 비어있는 기본 프로젝트라 단촐합니다.

 

비어있는 기본 프로젝트를 생성했을 때 만들어지는 폴더 구조를 대략 알아봤습니다.

 

다음은 언리얼 엔진 5 의 샘플 게임 프로젝트인 라이라(Lyra) 프로젝트의 파일 구조를 파해쳐봅니다. 빈 프로젝트를 기준으로 추가되는 폴더와 파일 등의 데이터들은 대략 어떤 내용들이 있는지 훑어봅니다.

전체 구성파일은 총 4.72GB. 빈 프로젝트가 Intermediate 파일을 제외하면 50MB 수준이었는데, Lyra 샘플 프로젝트의 구성요소가 많다보니 중간파일들이 많이 생성되었나봅니다.

좀 살펴보니,

/DerivedDataCache 가 1.57GB 로 많았고

/Plugins 가 1.22GB 정도.

빈 프로젝트에서는 Plugins 폴더가 아예 존재하지 않았는데, Lyra 샘플 프로젝트는 요 구성만 해도 좀 큰 편입니다. 어떤 플러그인들이 있는지 폴더를 열어보니...

음. 이건 다음에 분석해보는 걸로 하고,

실제 게임을 구성하는데 필요한 데이터인

/Content 폴더는 1.74GB

/Source 폴더는 어차피 코드밖에 안 들어있기 때문에 의미없는 용량.

 

이런 구성이었습니다.

훑어보기는 여기까지 끝.

 

참조

Unreal Engine 디렉터리 구조

https://docs.unrealengine.com/5.2/ko/unreal-engine-directory-structure/

 

디렉터리 구조

엔진과 게임 프로젝트를 구성하는 디렉터리 구조에 대한 개요입니다.

docs.unrealengine.com

728x90
반응형