I. 게임 프레임워크(Game Framework)
- 언리얼 엔진에서 게임을 구성하는 핵심 시스템
- 여러 구성 요소가 서로 협력하여 게임을 동작시킴
- 플레이어 입력, 게임 규칙, 캐릭터, UI 등을 관리함

핵심 요소
1) GameMode
- 현재 게임의 규칙을 정의
- 플레이어가 어떻게 시작하는지 결정
- 승리/패배 조건 관리
- 사용할 Pawn, PlayerController 등을 지정
예시)
플레이어 체력 0 → 게임 오버
제한 시간 종료 → 게임 종료
2) PlayerController
- 플레이어의 입력을 받아 처리
- 입력을 Pawn 또는 Character에게 전달
- 플레이어와 게임 세계를 연결하는 역할
예시)
W 입력
↓
PlayerController
↓
Character 이동
3) Pawn/Character
Pawn
- 플레이어 또는 AI가 조종할 수 있는 Actor
- 게임 내에서 움직이는 객체의 기본 형태
Character
- Pawn을 상속받은 특수한 클래스
- 이동(Movement), 점프(Jump) 등의 기능이 기본 제공됨
예시)
플레이어 캐릭터
NPC
몬스터
4) UI (User Interface)
- 플레이어에게 정보를 표시하는 화면 요소
- 언리얼에서는 주로 Widget Blueprint를 사용
예시)
체력 바
마나 바
인벤토리
미니맵
게임 메뉴
전체 구조
GameMode
├─ 게임 규칙 관리
│
├─ PlayerController
│ ↓
│ 플레이어 입력 처리
│
├─ Character
│ ↓
│ 이동 및 행동 수행
│
└─ UI
↓
결과 표시
II. 레벨(Level)
1) 레벨이란?
- 게임이 진행되는 맵(Map), 장면(Scene), 무대(Stage)
- 게임 월드의 공간과 오브젝트를 구성하는 단위
- 지형, 액터, 조명 등의 요소를 포함함
2) 메인 레벨과 서브 레벨
메인 레벨 (MainLevel)
- 게임의 중심이 되는 레벨
- 플레이어가 실제로 플레이하는 기본 공간
서브 레벨 (SubLevel)
- 메인 레벨에 추가로 포함되는 레벨
- 여러 레벨을 레이어처럼 분리하여 관리 가능
- 작업 분담 및 관리 효율 향상
활용 예시)
- 지형
- 조명
- 건물 및 인테리어
- 이펙트(VFX)
- NPC 배치
새 레벨 생성 방법
메뉴바
→ 파일
→ 새 레벨
레벨 패널 생성 방법
메뉴바
→ 창
→ 레벨

서브 레벨 생성 방법
레벨
→ 새로 생성
→ 빈 레벨
현재 레벨에 대한 정보
- Viewport 우측 하단에서 확인 가능

레벨 표시 여부 설정
- 레벨 패널의 눈(Eye) 아이콘으로 표시 여부를 전환할 수 있음
- 레벨을 삭제하지 않고 화면에서만 숨길 수 있음
레벨 별 색상 구분 방법
Viewport 설정
→ 액터 배색
→ 레벨 컬러
- 레벨별로 다른 색상을 적용하여 표시 가능
- 어떤 액터가 어느 레벨에 속하는지 쉽게 확인할 수 있음
예시)

3) 레벨 스트리밍
- 필요한 시점에만 레벨을 불러오고(Load), 필요 없어지면 제거(Unload)하는 기능
- 메모리 사용량을 줄이고 게임 성능을 향상시키기 위해 사용
- 대규모 맵(Open World)이나 여러 지역으로 구성된 게임에서 자주 사용
스트리밍 방법 변경
레벨 패널
→ 서브 레벨 우클릭
→ 스트리밍 방법 변경
→ 블루프린팅/항상 로드됨 중에서 선택
항상 로드됨
- 게임 시작 시 해당 레벨을 항상 불러옴
- 게임이 종료될 때까지 계속 유지됨
- 자주 사용하는 레벨에 적합
- 메인 맵, 기본 조명, 공통 배경 등에 사용
Blueprint
- 필요한 시점에만 레벨을 불러오거나 제거
- 블루프린트로 직접 제어 가능
- 메모리 사용량을 효율적으로 관리할 수 있음
예시)
플레이어가 던전 입구 진입
↓
던전 레벨 Load
던전 탈출
↓
던전 레벨 Unload
Load Stream Level()
- 지정한 레벨을 메모리에 불러오는 함수

4) 레벨 전환
- 현재 레벨에서 다른 레벨로 이동하는 기능
- 게임 진행에 따라 새로운 맵이나 스테이지를 불러올 때 사용
예시)
Stage 1 클리어
↓
Stage 2 전환
Open Level()
- 현재 레벨을 종료하고 새로운 레벨을 불러옴
- 가장 기본적인 레벨 전환 방식




Open Level
- 기존 레벨이 사라짐
- 완전히 새로운 맵으로 이동
현재 레벨 종료
↓
새 레벨 로드
Level Streaming
- 기존 레벨 유지 가능
- 필요한 영역만 추가로 불러옴
현재 레벨 유지
↓
추가 레벨 로드
III. 컨트롤러(Controller)
1) 플레이어 컨트롤러(PlayerController)
- 플레이어의 입력을 받아 처리하는 객체
- 키보드, 마우스, 게임패드 등의 입력 신호를 게임 내 행동으로 연결
- 플레이어와 Pawn/Character 사이를 연결하는 역할
- 플레이어 시점(Camera) 및 UI 조작에도 중요한 역할을 담당
- 일반적으로 하나의 플레이어는 하나의 PlayerController를 가짐
예시)
W 키 입력
↓
PlayerController
↓
Character 앞으로 이동
2) 컨트롤러와 폰(Pawn)의 관계
- Controller는 Pawn을 Possess(소유) 하여 제어할 수 있음
- Possess된 Pawn만 입력이나 AI 명령을 받을 수 있음
- 일반적으로 플레이어는 PlayerController를 통해 Character를 조종함
- Controller가 다른 Pawn을 Possess하면 조종 대상이 변경됨
예시)
PlayerController
↓
전사 캐릭터 조종
↓
탑승 버튼 입력
↓
PlayerController
↓
자동차 Pawn 조종
3) AI 컨트롤러(AIController)
- NPC나 적 캐릭터를 제어하는 Controller
- 플레이어 입력 대신 AI 로직에 따라 Pawn이나 Character를 조종함
- AI 전용 Blueprint 또는 C++ 클래스로 구현 가능
- 주로 Behavior Tree와 함께 사용하여 의사결정 과정을 구성함

Behavior Tree
- AI의 의사결정 과정을 시각적으로 구성하는 도구
- 조건에 따라 어떤 행동을 수행할지 결정
예시)
플레이어 발견?
├─ 예 → 추적
│ └─ 공격 범위 진입?
│ ├─ 예 → 공격
│ └─ 아니오 → 계속 추적
└─ 아니오 → 순찰
IV. UI(User Interface) 시스템
UMG(Unreal Motion Graphics)
- 언리얼 엔진에서 UI를 제작하기 위한 전용 툴 및 프레임워크
- Widget Blueprint를 사용하여 UI를 제작
- 블루프린트 기반으로 UI를 시각적으로 설계할 수 있음
- 게임 화면에 표시되는 각종 인터페이스를 구현할 때 사용
- Text, Button, Image, Slider, Progress Bar 등이 있음
예시)
플레이어 피격
↓
체력 감소
↓
UI 체력 바 업데이트
V. 액터(Actor)와 게임 세계 구성
1) 액터의 기본 구조와 생명주기(Lifecycle)
- Actor는 언리얼 월드(World)에 배치될 수 있는 모든 오브젝트의 기본 클래스
- 플레이어, NPC, 카메라, 조명, 트리거 등 대부분의 게임 오브젝트가 Actor를 기반으로 만들어짐
- 생성부터 제거까지 일정한 생명주기를 가짐
생명주기(Lifecycle)
생성(Spawn)
↓
초기화(Initialize)
↓
Begin Play
↓
Tick (반복 실행)
↓
Destroy

2) Pawn, Character, 컴포넌트(Component)
Pawn - 누군가가 조종할 수 있는 Actor
Character - 사람처럼 걷고 점프하는 기능이 기본 내장된 Pawn
컴포넌트 - Actor에 기능을 추가하는 구성 요소, 하나의 Actor가 여러 개의 컴포넌트를 가질 수 있음
예시)
- Static Mesh Component
- Camera Component
- Collision Component
- Character Movement Component
3) 이벤트(Event)
- 액터는 블루프린트 이벤트를 통해 특정 상황에서 자동으로 실행되는 로직을 구현할 수 있다.
- 이벤트는 게임 진행 중 발생하는 상황(시작, 충돌, 입력 등)을 감지하여 필요한 동작을 수행한다.
BeginPlay
- 액터가 게임에 생성되거나 플레이가 시작될 때 한 번 실행
- 초기 설정, 변수 초기화 등에 사용
Tick
- 매 프레임마다 반복 실행
- 캐릭터 추적, 실시간 위치 계산 등에 사용
- 과도하게 사용하면 성능에 영향을 줄 수 있음
Overlap
- 두 액터의 충돌 영역이 겹쳤을 때 실행
- 아이템 획득, 문 열기, 트리거 이벤트 등에 사용
예시
캐릭터가 문(Actor)의 트리거 영역에 진입
↓
Overlap 이벤트가 발생
↓
문 열기 함수를 실행
↓
문이 열리는 애니메이션이 재생
'언리얼 엔진 > 개념 정리' 카테고리의 다른 글
| 개념 정리 - 액터(Actor) (1) | 2026.06.12 |
|---|---|
| 개념 정리 - Fab(마켓 플레이스) (0) | 2026.06.12 |
| 개념 정리 - 프로젝트 생성과 인터페이스 (0) | 2026.06.11 |
| 개념 정리 - 게임 개발 과정 (0) | 2026.06.11 |
| 개념 정리 - 게임 엔진, 서버 및 클라이언트 (0) | 2026.06.11 |