Notice
Recent Posts
Recent Comments
Link
«   2026/06   »
1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30
Tags
more
Archives
Today
Total
관리 메뉴

MOONSUN

[UE5] Unreal Engine 프로젝트 구조와 기본 개념 정리 본문

UE5

[UE5] Unreal Engine 프로젝트 구조와 기본 개념 정리

MoonSun_v 2026. 3. 9. 22:29

 

지금까지 주로 Unity를 사용해 왔지만, 최근 언리얼 엔진 공부를 시작하면서 조금씩 정리해 보고자 한다.


Unity를 사용하던 입장에서 언리얼을 처음 접하면 구조나 개념에서 차이를 느끼는 부분들이 꽤 많은 것 같기 때문에, 개인적으로 기억에 남거나 중요하다고 느낀 것들을 정리해 보려고 한다.

 

 

이번 글은 첫 번째 글이기 때문에 언리얼 프로젝트의 기본적인 구조와 몇가지 개념을 가볍게 짚어보는 내용으로 시작해 보려고 한다

 

 

언리얼 엔진으로 프로젝트를 처음 생성했을 때 여러 폴더가 자동으로 만들어지는데, 처음에는 다음과 같은 부분이 헷갈릴 수 있다.

  • 어떤 폴더가 실제로 중요한지
  • Git에는 어떤 파일을 올려야 하는지
  • 삭제해도 되는 폴더는 무엇인지

 

또한 Unity를 사용하던 입장에서 처음 접했을 때 알아두면 좋다고 느꼈던 것들, 예를 들어

  • Developers 폴더
  • Net Mode (네트워크 모드)
  • 언리얼 좌표계
  • 단위 시스템

아직은 기초적인 내용이지만, 언리얼 엔진을 처음 접할 때 전체 구조를 이해하는 데 도움이 되는 것들이라고 생각한다.

 

 


 

1-0. 언리얼 프로젝트 전체 구조

언리얼 프로젝트를 생성하면 기본적으로 다음과 같은 구조가 만들어진다. 

 

이 폴더들은 크게 3가지 종류로 나눌 수 있다

1. 프로젝트 설정
2. 게임 리소스
3. 빌드/캐시 파일

 

이 중에서 실제로 프로젝트를 유지하는데 꼭 필요한 것은 몇 개뿐이다. 

 

 

1-1. 반드시 필요한 폴더

실제로 프로젝트를 구성하는 핵심 요소는 다음 3가지

Config
Content
ProjectName.uproject

이 3개만 있으면 프로젝트를 다시 실행/복구할 수 있다. 

 

 

1-1-1. Config 폴더

Config 폴더에는 프로젝트 설정 파일이 들어 있다.

 

예를 들면

  • 입력 설정 (키보드 / 게임패드)
  • 렌더링 설정
  • GameMode 설정
  • 엔진 설정
DefaultEngine.ini
DefaultGame.ini
DefaultInput.ini

위 같은 예시 파일들에는

' Space = 점프 , W 키 = 앞으로 이동 ' 같은 설정이 저장된다. 

 

 

1-1-2. Content 폴더

Content 폴더에는 게임에서 사용하는 모든 리소스가 들어 있다.

 

예를 들면

  • 캐릭터 모델
  • 총 모델
  • 캐릭터 애니메이션
  • UI 이미지
  • 레벨 맵

같은 것들이 전부 여기에 저장된다. 

 

 

1-1-3. .uproject 파일

.uproject 파일은 언리얼 프로젝트의 시작 파일이다.

 

이 파일을 더블 클릭하면 프로젝트가 실행되고, 이 파일 안에는 다음 정보가 json형식으로 들어 있다. 

  • 사용하는 엔진 버전
  • 플러그인
  • 모듈
  • 프로젝트 이름

 

 

 

1-2. 삭제해도 되는 폴더

아래의 폴더들은 빌드 과정에서 자동 생성되는 폴더들이며, 즉 삭제해도 다시 살아나는 폴더들이다.

Binaries
Intermediate
Saved
DerivedDataCache

 

그래서 보통 캐시가 꼬이거나, 빌드 문제가 발생했을 때 삭제한 후 재실행 할 수 있다. 

 

특히, Git에서는 위 폴더들을 제외한다.

(현재 본인도 gitIgnore에 위 폴더들을 추가해서 사용중이다.)

 

 

 

2. Zip Project 기능

위 처럼 필요없는 파일들만 압축해주는 기능이 이미 언리얼 내에 제공되고 있다.

File → Zip Project

 

이 기능을 사용하면, 언리얼이 필요한 파일만 자동으로 압축해준다. 

 

 

 

 

3. Developers 폴더

Content 폴더 안에는 특별한 폴더가 존재한다. 

Developers

 

Developers 폴더는 기본적으로 "다른 사람에게 잘 보이지 않도록 필터링" 되는 특징이 있다. 

 

 

즉, Content Browser에서 Developers Content 옵션을 수동으로 활성화해야만 해당 폴더의 내용을 확인할 수 있다.

그래서 보통 Developers 폴더는 팀원들이 개인적으로 작업하거나 테스트를 진행하는 공간으로 사용된다.

 

 

예를 들면 다음과 같은 구조로 사용할 수 있다. 

Developers
 ┣ SeonMin
 ┣ Artist01
 ┣ Designer02

각 팀원들은 자신의 이름으로 된 폴더를 만들어 그 안에서 작업하고

그 안에서 실험용 맵, 임시 에셋 등을 자유롭게 만들어 볼 수 있다.

 

 

이런식으로 Developers 폴더를 활용해서 여러 사람이 동시에 작업할 때 파일 충돌을 줄이거나, 테스트용 에셋이 메인 프로젝트에 섞이는 오염을 방지할 수 있다고 한다. 

 

 

 

4. Map 

유니티의 Scene 처럼, 언리얼에서 맵은 Level이라고 부른다.

 

참고로 프로젝트 설정에서는 여러 종류의 맵을 지정할 수도 있는데, 

대표적으로 아래와 같이 있다.

Default Map
Server Default Map
Transition Map

 

  1. Default Map : 게임을 시작하면 처음 열리는 맵 
  2. Server Default Map : 멀티플레이 게임에서는 서버가 사용하는 맵을 따로 지정할 수 있다.
    • 클라이언트 <-> 서버 의 맵을 다르게 사용할 수 있다. 
  3. Transition Map : 맵 이동 중 잠깐 사용하는 맵
    • 예를 들면 Lobby →Transition → GameMap 
    • 이 맵은 보통 로딩 화면 or 검은 화면 같은 용도로 사용된다. 

 

 

 

5. Net Mode (네트워크 모드)

언리얼 엔진은 멀티플레이를 기본적으로 지원하도록 설계된 엔진이다. 

 

그래서 유니티와 다르게 네트워크 관련 기능들이 엔진 내부에 이미 포함되어 있으며,

별도의 라이브러리를 추가하지 않아도 에디터에서 바로 멀티플레이 환경을 구현하고 테스트할 수 있다는 장점이 있다. 

 

 

  1. Play Standalone : 네트워크 기능을 사용하지 않는, 완전히 싱글 플레이 모드 
  2. Play As Client : 클라이언트로 실행 (서버에 접속하는 플레이어 역할) 
  3. Play As Listen Server : 한 플레이어가 동시에 (서버 + 클라이언트 역할) → 멀티플레이 테스트에서 가장 많이 사용

에디터에서 Play As Listen Server 실행 화면

 

 

 

6. 언리얼 좌표계

언리얼은 유니티와 좌표계가 다른 점들이 있다. 

 

6-1. 좌표계 축 방향 

언리얼은 유니티와 같이 왼손 좌표계를 사용하지만, 축 방향이 다르다.

 

유니티 좌표계는 아래와 같지만 

X : 오른쪽
Y : 위
Z : 앞

 

언리얼 좌표계는 

X : 앞
Y : 오른쪽
Z : 위

 

즉, 유니티 에서는 Y축이 윗 방향이지만 언리얼에서는 Z축이 윗방향이다. 

엔진
Unity Z Y
Unreal X Z

 

 

 

결국 Unity와 Unreal은 서로 앞 방향이 다르기 때문에 아래와 같은 상황을 조심해야한다. 

 

유니티 에서

transform.forward 는 Z방향

 

언리얼 에서는 

GetActorForwardVector() 는 X방향 벡터

 

 

6-2. Location / Rotation 

6-2-1. Location 

언리얼에서는 위치를 Position이 아니라 Location 이라고 부른다. 

SetActorLocation()

 

 

6-2-2. Rotation 

언리얼에서는 회전을 다음 3가지로 표현한다.

Roll
Pitch
Yaw

이름 기준 축  의미   
Roll X 좌우로 기울기 옆돌기
Pitch Y 위 아래 보기 인사 
Yaw 좌우 방향 돌리기 제자리 회전

 

FPS 게임에서
마우스 좌우 이동 = Yaw 
마우스 위 아래 = Pitch 

 

 

 

7. 언리얼 단위

엔진마다 기본 단위는 다르다. 

엔진  1 Unit 
Unity 1 M
Unreal 1 cm 

 

즉, 캐릭터의 키가 180cm 이라면
1.8  Unity Units
180 Unreal Units

 

 

 

8. Unreal Container

C++에는 STL이 있지만, 언리얼에서는 STL을 사용하지 않고, 자체 컨테이너를 사용한다.

 

즉 아래와 같은 STL을 사용하지 않고

std::vector
std::map

 

아래와 같은 자체 컨테이너를 사용한다.

TArray
TMap
TSet

 

언리얼의 자체 컨테이너들에 대해서는 다음에 자세히 알아보도록 하고,

 

 

일단 STL이 아니라, 자체 컨테이너를 사용하는 이유는

 

  • 메모리 관리
  • Garbage Collection
  • 엔진 내부 시스템과 호환 

때문이라고 한다. 

 

 

 


 

이번 글에서는 언리얼 엔진을 처음 접하면서 알아두면 좋을 것 같은 기본적인 개념들과 프로젝트 구조를 중심으로 정리해 보았다.

 

하지만 위에서 언급한 내용 말고도 

언리얼의 컴포넌트 구조나 종류, Actor vs Pawn vs Character 차이, GamePlayFramework 등... 알아야 할 기본 개념들이 아직 많이 남아있다. 

 

앞으로도 언리얼 엔진을 공부하면서 헷갈렸던 개념이나 중요하다고 느낀 내용들을 차근차근 정리해 볼 예정이다..!