언리얼엔진(UE)

[UE] 언리얼 엔진 C++ 개발 환경 셋업

2h1824 2025. 1. 22. 21:41

1. 언리얼 엔진 셋업

  1. 언리얼 엔진 5 설치 및 버전 확인
  2. 5.5.x 버전 C++ 빌드 에러 예방
    • 2024년 12월 기준 발생하는 에러 ㅡ> 엔진이 설치된 폴더(ex: C:\Program Files\Epic Games\UE_5.5)의 "읽기 전용" 속성 해제
      ㅡ> 엔진 빌드 과정에서 엔진 내부 파일을 임시로 수정하거나 접근할 수 있기 때문에 "읽기 전용"을 해제

2. Visual Studio 셋업

  1. Visual Studio Installer 실행
  2. 설치된 Visual Studio 목록에 Visual Studio 2022 Community 유무 확인
    ㅡ> 없다면 설치 (https://visualstudio.microsoft.com/)
  3. 버전 17.8 이상으로 맞추기
  4. 워크로드 확인 및 추가 설치
    • Visual Studio Community 2022에서 수정 버튼 클릭
    • C++을 사용한 데스크톱 개발, C++을 사용한 게임 개발 두가지 모두 설치

3. 프로젝트 기본 설정

  1. Epic Games Launcher ㅡ> 언리얼 엔진"탭 ㅡ> 라이브러리 ㅡ> 5.5 버전의 실행 버튼 클릭
  2. 아래 화면에서 GAMES 선택 ㅡ> 원하는 템플릿 선택 ㅡ> C++ 선택 ㅡ> 원하는 이름으로 프로젝트 생성
    * 프로젝트 경로에 한글, 특수문자, 공백이 들어가지 않게 주의 ㅡ> 에러 유발

4. C++ 프로젝트와 Visual Studio 연동

프로젝트 설정

  1. 상단 메뉴 Edit ㅡ> Editor Preferences 
  2. General ㅡ> Source Code ㅡ> Source Code EditorVisual Studio 2022로 설정
  3. 에디터 재시작
  4. 상단 메뉴 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) 파일 포함

* 빌드 과정에서 문제 발생 시 해결 방법

  1. 언리얼 에디터Visual Studio 종료
  2.  프로젝트 폴더에서 빌드 캐시, 임시 데이터를 담고 있는 폴더들인 IntermediateDerivedDataCache, Saved 를 삭제
    ㅡ> 해당 폴더들 삭제 후 다시 빌드할 경우 폴더들이 새로 생성 ㅡ> 잘못된 캐시로 인한 오류 해결 가능
  3. .uproject 파일 우클릭 ㅡ> Generate Visual Studio project files ㅡ> 솔루션 파일과 프로젝트 설정 재생성 ㅡ> 누락되었거나 꼬인 구성 복구
  4. 새로 생성된 솔루션 열기 ㅡ> Build Clean Solution 으로 기존 빌드 산출물 정리 ㅡ> Build  Build Solution 으로 프로젝트 재빌드 ㅡ> 에러 발생 시 Output, Error List 확인 후 수정
  5. 언리얼 에디터 재실행
  6. 문제가 여전하다면 Saved/Logs 폴더의 로그를 확인해 구체적인 에러 탐색 or 엔진 버전이나 프로젝트 설정 점검

참고자료

https://dev.epicgames.com/documentation/ko-kr/unreal-engine/unreal-engine-directory-structure

https://rightnowhj.tistory.com/12