언리얼 엔진/개념 정리

개념 정리 - 개발 요소

journey46110 2026. 6. 12. 11:54

I. 게임 프레임워크(Game Framework)

- 언리얼 엔진에서 게임을 구성하는 핵심 시스템

- 여러 구성 요소가 서로 협력하여 게임을 동작시킴

- 플레이어 입력, 게임 규칙, 캐릭터, UI 등을 관리함

Game Framework

핵심 요소

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 설정
→ 액터 배색
→ 레벨 컬러

- 레벨별로 다른 색상을 적용하여 표시 가능

- 어떤 액터가 어느 레벨에 속하는지 쉽게 확인할 수 있음

 

예시)

SubLevel을 초록색으로 표시

 

 

3) 레벨 스트리밍

- 필요한 시점에만 레벨을 불러오고(Load), 필요 없어지면 제거(Unload)하는 기능

- 메모리 사용량을 줄이고 게임 성능을 향상시키기 위해 사용

- 대규모 맵(Open World)이나 여러 지역으로 구성된 게임에서 자주 사용

 

스트리밍 방법 변경

레벨 패널
→ 서브 레벨 우클릭
→ 스트리밍 방법 변경
→ 블루프린팅/항상 로드됨 중에서 선택

 

항상 로드됨

- 게임 시작 시 해당 레벨을 항상 불러옴

- 게임이 종료될 때까지 계속 유지됨

- 자주 사용하는 레벨에 적합

- 메인 맵, 기본 조명, 공통 배경 등에 사용

 

Blueprint

- 필요한 시점에만 레벨을 불러오거나 제거

- 블루프린트로 직접 제어 가능

- 메모리 사용량을 효율적으로 관리할 수 있음

 

예시)

플레이어가 던전 입구 진입
↓
던전 레벨 Load

던전 탈출
↓
던전 레벨 Unload

Load Stream Level()

- 지정한 레벨을 메모리에 불러오는 함수

Load Stream Level() 함수

 

 

 

4) 레벨 전환

- 현재 레벨에서 다른 레벨로 이동하는 기능

- 게임 진행에 따라 새로운 맵이나 스테이지를 불러올 때 사용

 

예시)

Stage 1 클리어
↓
Stage 2 전환

 

 

Open Level()

- 현재 레벨을 종료하고 새로운 레벨을 불러옴

- 가장 기본적인 레벨 전환 방식

Open Level() 함수 사용
012
3초 후 다른 맵으로 이동하는 장면

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

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

Lifecycle

 

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 이벤트가 발생
↓
문 열기 함수를 실행
↓
문이 열리는 애니메이션이 재생