레벨, 컨트롤러, UI, 액터 등 개발의 요소
언리얼 엔진 게임 프레임워크

레벨(Level), 컨트롤러(Controller), UI, 액터(Actor) 는 게임 플레이의 뼈대를 이루는 핵심적인 요소이다.
- GameMode : 현재 게임이 어떤 규칙으로 돌아갈지 정의
- PlayerController : 플레이어의 입력을 받아 처리
- Pawn/Character : 플레이어 혹은 AI가 조종할 수 있는 오브젝트
- UI : 게임 화면에 표시되는 인터페이스
레벨(Level)의 개념과 구조
눈에 보이는 모든것들이 배치되어 있는 장소
언리얼엔진에서는 하나의 레벨을 Persistent Level(메인 레벨)로 두고, 필요한 경우 Sub-Level(서브 레벨)을 추가로 불러와서 사용한다.
- 지형, 조명, 인테리어 등 특정 기능적 구분을 위해 레벨을 여러 개로 나눌 수 있음
레벨 실습







컨트롤러
플레이어 컨트롤러(PlayerController)
플레이어가 입력한 키보드/마우스/패드 신호를 받아 게임 내 행동으로 연결합니다.
- 플레이어 뷰(화면 카메라), UI 조작에도 중요한 역할을 수행합니다.
- 하나의 플레이어는 일반적으로 하나의 PlayerController를 가집니다.

컨트롤러와 폰(Pawn)의 관계
컨트롤러는 폰(Pawn)을 ‘소유(possess)’ 하여 직접 제어할 수 있습니다.
- 플레이어 컨트롤러가 캐릭터(Characters)를 소유하면, 키보드 입력이 그 캐릭터의 움직임으로 이어집니다.
소유 상태가 바뀌면, 다른 폰을 조종하거나 새로운 캐릭터로 교체할 수도 있습니다.

AI 컨트롤러(AIController)
NPC나 적 캐릭터의 인공지능 로직을 담습니다.
AI 전용 블루프린트나 C++ 클래스를 만들어, Behavior Tree 등을 통해 의사결정 과정을 구현합니다.

UI(User Interface) 시스템
언리얼 엔진에서는 UMG라는 UI를 만드는 전용 툴(프레임워크)를 사용한다.
블루프린트로 UI 요소를 시각적으로 설계하고, 버튼, 텍스트, 슬라이더, 이미지 등을 배치할 수 있다.
드래그&드롭 기능이 직관적이라 UI 레이아웃을 쉽게 구상할 수 있다.
아트팀에서 주로 사용하는 기능이다.

액터
레벨에 배치할 수 있는 모든 오브젝트이다.
액터의 생명주기(Lifecycle)
초기화(맵 바깥에 생성) → 시작(맵에 생성) → Tick(프레임마다 업데이트) → 파괴(Destroy)
Pawn, Character, Component
개발하면서 가장 많이 쓰이게 될 액터는 Pawn과 Character 액터 이다.
Actor > Pawn > Character 의 순서로 이루어져 있다.
배치 될 기능 뿐인 Actor, 액터에 조종 가능한 특징을 더한 Pawn, 폰에 이동 로직을 더한 Character.
컴포넌트는 특수한 기능이 담겨 있는 액터이다.
Pawn
- 액터를 상속받아 “조종 가능한” 특징을 더한 클래스
Character
- Pawn을 상속받아 “걷기, 달리기, 점프” 등의 이동 로직이 포함된 클래스
컴포넌트
- 액터(Actors) 가 자기 자신에 서브 오브젝트로 어태치할 수 있는 특수한 타입의 오브젝트(Object) 입니다. 컴포넌트는 비주얼 표현 디스플레이 또는 사운드 재생 기능과 같은 일반적인 동작을 공유할 때 유용합니다. 또한 컴포넌트는 비히클이 입력을 인식하고 속도 및 방향을 변경하는 방식과 같은 프로젝트별 콘셉트를 표현할 수도 있습니다. 예를 들어, 사용자가 컨트롤 가능한 자동차, 항공기, 배가 있는 프로젝트의 경우, 비히클 액터가 사용하는 컴포넌트의 종류를 변경함으로써 비히클 컨트롤 및 무브먼트의 차이를 구현할 수 있습니다.
이벤트(Event)와 상호작용
액터는 블루프린트 이벤트(BeginPlay, Tick, Overlap 등)를 통해 상호작용 로직을 구현한다.
- BeginPlay : 레벨이 시작할 때
- Tick : 프레임 마다 발생되는 이벤트
- Overlap : 겹쳐질 때
- 캐릭터가 문(Actor)에 가까이 가면 자동으로 열리는 이벤트 처리 등
'Unreal 게임개발종합반 1주차' 카테고리의 다른 글
| 3일차 250716 (1-7강의) (0) | 2025.07.25 |
|---|---|
| 2일차 250715 (1-6강의) (0) | 2025.07.25 |
| 2일차 250715 (1-4강의) (0) | 2025.07.25 |
| 2일차 250715 (1-3강의) (0) | 2025.07.25 |
| 1일차 250714 (1-2강의) (0) | 2025.07.25 |