언리얼엔진(UE)
[UE] 언리얼 엔진 C++ 개발 환경 셋업
2h1824
2025. 1. 22. 21:41
1. 언리얼 엔진 셋업
- 언리얼 엔진 5 설치 및 버전 확인
- 5.5.x 버전 C++ 빌드 에러 예방
- 2024년 12월 기준 발생하는 에러 ㅡ> 엔진이 설치된 폴더(ex: C:\Program Files\Epic Games\UE_5.5)의 "읽기 전용" 속성 해제
ㅡ> 엔진 빌드 과정에서 엔진 내부 파일을 임시로 수정하거나 접근할 수 있기 때문에 "읽기 전용"을 해제
- 2024년 12월 기준 발생하는 에러 ㅡ> 엔진이 설치된 폴더(ex: C:\Program Files\Epic Games\UE_5.5)의 "읽기 전용" 속성 해제
2. Visual Studio 셋업
- Visual Studio Installer 실행
- 설치된 Visual Studio 목록에 Visual Studio 2022 Community 유무 확인
ㅡ> 없다면 설치 (https://visualstudio.microsoft.com/) - 버전 17.8 이상으로 맞추기
- 워크로드 확인 및 추가 설치
- Visual Studio Community 2022에서 수정 버튼 클릭
- C++을 사용한 데스크톱 개발, C++을 사용한 게임 개발 두가지 모두 설치
3. 프로젝트 기본 설정
- Epic Games Launcher ㅡ> 언리얼 엔진"탭 ㅡ> 라이브러리 ㅡ> 5.5 버전의 실행 버튼 클릭
- 아래 화면에서 GAMES 선택 ㅡ> 원하는 템플릿 선택 ㅡ> C++ 선택 ㅡ> 원하는 이름으로 프로젝트 생성
* 프로젝트 경로에 한글, 특수문자, 공백이 들어가지 않게 주의 ㅡ> 에러 유발
4. C++ 프로젝트와 Visual Studio 연동
프로젝트 설정
- 상단 메뉴 Edit ㅡ> Editor Preferences
- General ㅡ> Source Code ㅡ> Source Code Editor를 Visual Studio 2022로 설정
- 에디터 재시작
- 상단 메뉴 Tools ㅡ> Open Visual Studio 2022 클릭해서 열기
5. 프로젝트 폴더 구조
Epic Games Launcher ㅡ> "라이브러리" ㅡ> "내 프로젝트" 목록에서 만든 프로젝트를 오른쪽 버튼 클릭
ㅡ> "폴더 보기" 선택
1. 프로젝트 폴더 내 주요 파일
- "hello.sln" (Visual Studio 솔루션 파일)
- C++ 소스 코드와 빌드 설정이 연결된 핵심 파일
- 더블 클릭해서 Visual Studio 에서 .cpp, .h 파일 수정 가능
- hello.uproject
- 언리얼 에디터가 프로젝트 설정 (콘텐츠, 맵, 플러그인 등)을 불러올 때 사용하는 파일
- 더블 클릭해서 언리얼 에디터에서 프로젝트를 열 수 있음
- .vsconfig
- Visual Studio Configuration 파일, Visual Studio 프로젝트에서 사용되는 특정 설정 및 구성 요소, 설치 요구 사항을 정의
- 프로젝트를 열 때 Visual Studio가 필요한 워크로드와 구성 요소를 자동으로 감지
2. 프로젝트 폴더 내 주요 폴더
- .vs
- Visual Studio가 자동 생성하는 폴더, 디버깅 및 솔루션 설정 관련 파일들이 존재
- 직접 수정할 일은 거의 없음
- Binaries
- 컴파일 도중 생성되는 실행 파일(.exe, .dll 등)이나 기타 파일 포함
- 해당 폴더를 지우고 빌드를 하면 처음부터 빌드를 다시 수행해야 하므로 시간이 더 걸릴 수 있음
- Config
- 게임의 기본 프로젝트 세팅 ㅡ> 게임플레이, 렌더링, 입력 등의 설정을 담은 .ini 파일이 모여 있음
- 에디터나 코드로 특정 설정 수정 시, 이 폴더 내 .ini 파일들이 종종 수정됨
- Content
- 엔진이나 게임의 콘텐츠를 비롯해 에셋 패키지, 맵까지 존재
- 언리얼 에디터의 Content Browser와 연결되어 있는 폴더, 게임 내 모든 에셋(모델, 머티리얼, 사운드 등)이 존재
- 에디터에서 새 에셋을 만들거나 다른 에셋을 불러오면 (import) 폴더 안에 파일 생성
- DerivedDataCache
- 에셋,쉐이더 등을 빠르게 처리하기 위한 캐시 파일이 저장되는 폴더
- Intermediate
- C++을 컴파일할 때 생성되는 임시 파일들이 저장되는 폴더 ㅡ> 지우고 재생성 가능
- Visual Studio 프로젝트 파일처럼 UnrealBuildTool이 생성하는 파일이 포함
- Saved
- 컨픽 파일, 자동 저장 파일, 로그(.log), 크래시 덤프 등이 존재 ㅡ> 지우고 재생성 가능
- 게임 및 에디터가 비정상 종료되었을 시, 해당 폴더의 로그 파일을 확인해 문제 진단 가능
- Source : C++ 소스 코드 (.ccp, .h)가 들어 있는 핵심 폴더, 실제 게임 로직을 작성하는 폴더
- Classes : 모든 게임플레이 클래스 헤더(.h) 파일 존재
- Private : 모든 .cpp 파일과 게임플레이 클래스 구현 파일, 모듈 구현 파일 포함
- Public : 모듈 헤더 파일 존재
- External dependencies
- (Visual Studio 에서만 보임) 공용 Rocket 엔진 헤더 파일 표시
- Config
- 게임의 기본 프로젝트 세팅
6. 루트 디렉토리, 공통 디렉토리, Engine 전용 디렉토리 구조
루트 디렉토리
- Engine : 엔진을 이루는 모든 소스 코드, 콘텐츠 포함
- Templates : 새 프로젝트 생성 시 사용 가능한 프로젝트 템플릿 모음
공통 디렉토리
- Binaries : 컴파일 도중 생성되는 실행 파일, 기타 파일 포함
- Build : 엔진이나 게임을 빌드하는데 필요한 파일 및 플랫폼별 빌드를 만드는데 필요한 파일 포함
- Config : 엔진 행위를 제어하는 값 설정용 환경설정 파일
ㅡ> 게임 프로젝트 Config 파일에 설정된 값은 해당 파일의 값을 덮어쓰는 형식 - Content : 엔진이나 게임에 대한 콘텐츠, 에셋 패키지와 맵 존재
- DerivedDataCache : 참조된 콘텐츠에 대해 로드시 생성된 파생 데이터 파일 존재
ㅡ> 참조된 콘텐츠에 대해 캐시 파일이 존재하지 않을 시 로드 시간이 길어질 수 있음 - Intermediate : 엔진이나 게임 빌드 도중 생성된 임시 파일 존재
ㅡ> 게임 디렉토리에서 셰이더는 Intermediate 디렉토리에 저장 - Saved : 자동저장, 환경설정 (.ini), 로그 파일 및 추가적으로 크래시 로그, 하드웨어 정보, 스웜 옵션 및 데이터 포함
- Source : 엔진이나 게임은 물론 엔진 소스 콛, 툴, 게임플레이 클래스 등에 대한 모든 소스 파일 포함
- Developer : 에디터와 엔진 둘 다 쓰는 파일
- Editor : 에디터만 쓰는 파일
- Programs : 엔진이나 에디터에 쓰이는 외부 툴
- Runtime : 엔진에만 쓰는 파일
Engine 전용 디렉토리
- Documentation : 엔진 문서 소스와 퍼블리시된 파일 포함
- HTML : 퍼블리시된 HTML 문서 파일
- Source :소스 마크다운 문서 파일
- Extras : 부가 헬퍼, 유틸리티 파일
- Plugins : 엔진에 사용되는 폴러그인 파일 포함
- Programs : 저장된 프로젝트와 UnrealFrontend, UnrealHeaderTool 등의 기타 언리얼 프로그램용 환경설정 파일 및 로그 파일 포함
- Shaders : 엔진에 대한 셰이더 소스(.usf) 파일 포함
* 빌드 과정에서 문제 발생 시 해결 방법
- 언리얼 에디터와 Visual Studio 종료
- 프로젝트 폴더에서 빌드 캐시, 임시 데이터를 담고 있는 폴더들인 Intermediate, DerivedDataCache, Saved 를 삭제
ㅡ> 해당 폴더들 삭제 후 다시 빌드할 경우 폴더들이 새로 생성 ㅡ> 잘못된 캐시로 인한 오류 해결 가능 - .uproject 파일 우클릭 ㅡ> Generate Visual Studio project files ㅡ> 솔루션 파일과 프로젝트 설정 재생성 ㅡ> 누락되었거나 꼬인 구성 복구
- 새로 생성된 솔루션 열기 ㅡ> Build → Clean Solution 으로 기존 빌드 산출물 정리 ㅡ> Build → Build Solution 으로 프로젝트 재빌드 ㅡ> 에러 발생 시 Output, Error List 확인 후 수정
- 언리얼 에디터 재실행
- 문제가 여전하다면 Saved/Logs 폴더의 로그를 확인해 구체적인 에러 탐색 or 엔진 버전이나 프로젝트 설정 점검
참고자료
https://dev.epicgames.com/documentation/ko-kr/unreal-engine/unreal-engine-directory-structure