디렉터리 구조

최상위 레벨에는 Engine 디렉토리와 게임 프로젝트가 있습니다.

루트 디렉터리

Engine

엔진을 이루는 모든 소스 코드, 콘텐츠 등이 포함되어 있습니다.

Templates

새 프로젝트 생성 시 사용 가능한 프로젝트 템플릿 모음입니다.
프로젝트 템플릿은 아래와 같은 종류가 있습니다. 이미지는 게임의 템플릿입니다.

UnrealProjectTemplates

GenerateProjectFiles.bat

Visual Studio 에서 엔진과 게임 작업시 필요한 UE4 솔루션 및 프로젝트 파일 생성시 사용됩니다.

UE 루트 디렉터리에 있는 GenerateProjectFiles.bat 파일을 실행하게되면 프로젝트 생성기에서 모듈과 타깃 빌드 파일을 분석하고 새로운 프로젝트 파일을 생성합니다.

VS 개발자의 경우 동일한 디렉터리에 .sln 파일이 생성됩니다.
이 솔루션 파일을 사용해 게임 및 프로그램을 빌드하고 실행하게 됩니다.

기본적으로 SDK를 탐지한 모든 플랫폼에 대해 빌드 가능한 프로젝트를 생성하므로 콘솔 및 모바일 플랫폼도 빌드 및 디버그할 수 있습니다.

다음과 같은 상황에서는 GenerateProjectFiles.bat을 다시 실행해야 합니다.

  • 소스 컨트롤에서 새로운 코드 변경사항을 동기화한 후
  • 소스 파일을 추가하거나 제거하는 것 같이 모듈을 로컬로 변경한 경우

UE4Games.uprojectdirs

엔진이 하위 디렉터리의 프로젝트를 발견할 수 있도록 해주는 헬퍼 파일입니다.

공통 디렉터리

Engine과 게임 프로젝트 디렉터리 사이에 공통으로 쓰이는 서브디렉터리가 있습니다.

게임 프로젝트 디렉터리와 공통으로 쓰이는 디렉터리의 경우 해당 디렉터리 설명에서 보다 더 자세하게 적었습니다.

Binaries

컴파일 도중 생성되는 실행 파일이나 기타 파일이 포함됩니다.

Build

언리얼 프로젝트 패키징 과정을 거치면 생성되는 폴더입니다. 패키징하지 않으면 생기지 않습니다.
엔진이나 게임을 빌드하는 데 필요한 파일과 플랫폼별 빌드를 만드는 데 필요한 파일이 들어 있습니다.

Config

언리얼 엔진의 환경설정 값을 저장하는 파일입니다.

Content

Engine이나 게임에 대한 콘텐츠, 애셋 패키지와 맵이 들어갑니다.

DerivedDataCache

프로젝트에서 사용된 에셋을 셰이더 컴파일하는 과정에서 생성되는 캐시 데이터를 저장하는 폴더입니다.
전처리된 셰이더 파일, 컴파일된 머터리얼 등이 포함되어 있습니다.

사용된 에셋에 대해 캐시 파일이 존재하지 않으면 로드 시간이 엄청나게 길어질 수 있지만 최초의 쿠킹 이후에는 생성된 캐시를 이용해 로드하므로 로드 시간이 단축됩니다.

Intermediate

엔진이나 게임 빌드 도중 생성된 임시 파일이 들어 있습니다.

Saved

자동저장, 환경설정, 로그 파일이 들어있습니다.

Source

Engine이나 게임, 엔진 소스 코드, 툴 등에 대한 모든 소스 파일이 들어있습니다.

Engine 전용 디렉터리

Engine 디렉토리에는 엔진 자체와, 엔진에서 기본 제공하는 모든 툴이 포함되어 있습니다.

Documentation

엔진 문서 소스와 퍼블리시된 파일도 들어있습니다.

게임 프로젝트 디렉터리

Binaries

컴파일 과정을 거쳐 생성된 이진 파일이 저장되있는 폴더입니다.
실행파일(.exe)과 프로젝트를 빌드할 때 생성되는 동적 연결 라이브러리(.dll)이나 공유 객체 파일(.so) 등이 포함 되어있습니다.

이 폴더가 없을 경우 .uproject를 실행시켜 에디터가 열리면 Missing <프로젝트명> Modules 메시지 팝업을 띄웁니다. 이때 Yes를 누르면 컴파일 과정을 거쳐 폴더와 파일을 생성하고, 에디터가 실행됩니다.

MissingProjectModules

Config

프로젝트의 언리얼 환경설정 파일을 담고있는 폴더입니다.

아래 이미지에서 변경한 값들이 폴더의 파일들에 저장됩니다. 환경설정 파일에 설정된 값은 Engine\Config 디렉터리에 설정된 값을 덮어씁니다.

ProjectSettings

지워도 에디터 실행에는 문제가 되지 않지만 만약 프로젝트를 작업 중에 지웠다면 설정했던 값들은 없어지고, 언리얼 엔진 폴더의 Default 설정 파일들의 값이 사용됩니다.
Config 폴더가 다시 생기지 않고, Default 설정 파일들의 값이 사용되므로 절대 지우지 않아야합니다.

Content

Engine이나 게임에 대한 콘텐츠, 애셋 패키지와 맵 등 .uasset들을 담고있는 폴더입니다.
프로젝트에서 사용되는 모든 리소스를 포함하는 매우 중요한 폴더입니다.

External dependencies

비주얼 스튜디오에서만 보이는 공용 Rocket 엔진 헤더 파일을 표시해주는 파일이 들어있는 폴더입니다.

Intermediate

언리얼 엔진 라이브버리 및 프로젝트 소스 코드에 대한 빌드 도중 생성된 파일들이 들어있는 폴더입니다.
임시 파일들이므로 지워도 에디터 실행 시 자동으로 재생성 됩니다.

게임 디렉터리에서 셰이더는 Intermediate 디렉터리에 저장됩니다.

Saved

프로젝트 작업시 임의로 저장되는 파일들이 보관되는 폴더입니다. 자동저장, 환경설정(.ini), 로그, 스크린샷, 빌드 파일, 백업 임시 파일 등 엔진이 생성하는 파일이 들어가고 많은 정보가 축적되는 폴더입니다.

효율성을 높이거나 복구작업, 문제 확인 등의 활용에 사용이 가능하지만 용량이 크므로 일부 파일만 보관하고 필요 없는 파일은 삭제하기도 합니다.

Source

게임 모듈 오브젝트 클래스 파일이 들어가있고, 사용자가 작성한 C++ 코드가 담기는 폴더입니다.

C++ 프로젝트가 아니라면 생성되어 있지 않는 폴더입니다.

솔루션 디렉터리

Classes

게임 오브젝트 클래스 정의(.h) 파일이 들어갑니다.

Config

게임의 기본 프로젝트 세팅입니다.

External dependencies

비주얼 스튜디오에서만 보이는 공용 Rocket 엔진 헤더 파일을 표시해주는 파일이 들어있는 폴더입니다.

Private

개인 게임 오브젝트 클래스 구현(.cpp) 파일이 들어갑니다.

Public

공용 게임 오브젝트 클래스 구현(.cpp) 파일이 들어갑니다.

참고

디렉터리 구조

UE5 카테고리 내 다른 글 보러가기

댓글남기기