언리얼 엔진 4 용어

언리얼 엔진 4 작업시 자주 사용되는 용어 대부분을 다룹니다.

Windows
MacOS
Linux

이 문서는 언리얼 엔진 4 작업시 흔히 사용되는 용어에 대한 설명을 위한 문서입니다. 예를 들어 "액터(Actor)는 뭐지", "컴포넌트(Component) 는 뭐고", "폰(Pawn)은 뭘까" 하는 질문에 대한 일반적인 답변을 확인할 수 있습니다. 각 용어의 뜻을 파악한 이후에는, 상세 문서 및 안내서 링크를 통해 더욱 자세히 배울 수 있습니다.

NewProject.png

Project 프로젝트

Project, 프로젝트란 각각의 게임을 이루는 콘텐츠와 코드 전부가 들어있는 독립적인 유닛으로, 디스크상의 디렉터리 세트와 일치합니다. 예를 들어 아래 그림에서 콘텐츠 브라우저 의 계층구조 트리에는 디스크의 Project 폴더 안에서 찾을 수 있는 동일한 디렉터리 구조가 들어있습니다.

이미지를 클릭하면 원본을 확인합니다.

Project 종종 그 파일에 관련된 .uproject 파일을 가리키기도 하지만, 서로와 공존하는 별개의 파일이 두 개 있습니다. .uproject 는 파일을 생성하고 열고 저장하는 데 사용되는 레퍼런스 파일인 반면, Project 에는 프로젝트에 관련된 모든 파일과 폴더가 들어있습니다.

프로젝트는 동시에 몇 개를 만들어 유지하면서 개발할 수 있습니다. 엔진(과 에디터) 둘 다 쉽게 전환이 가능하여, 주요 게임 프로젝트에 추가로 한 번에 다수의 게임 작업을 할 수 있습니다.

상세 정보: 언리얼 게임 프로젝트

objects_topic.png

Objects 오브젝트

언리얼 엔진의 기본 구성 요소를 Object, 오브젝트라 하며, 거기에는 게임 애셋에 대한 본질적인 "내부적" 함수성이 다수 포함됩니다. 언리얼 엔진 4 의 모든 것이 오브젝트를 상속합(, 다른 말로 함수성을 이어받습)니다. C++ 에서 UObject 는 모든 오브젝트의 베이스 클래스이며, 가비지 컬렉션, 언리얼 에디터로의 변수 노출을 위한 (UProperty) 메타데이터 지원, 로드 & 저장을 위한 시리얼라이제이션 등의 기능을 구현합니다.

상세 정보: 언리얼 프로젝트와 게임플레이, 언리얼 아키텍처

Both_topic.png

Classes 클래스

Class (클래스)란 언리얼 엔진 게임 제작에 사용되는 특정 액터 또는 오브젝트의 작동방식 및 프로퍼티를 정의합니다. 클래스는 계층구조식으로 되어있어, 부모 클래스를 상속받은( 또는 파생된) 클래스(, 즉 서브클래스)는 그 정보를 자손에게 물려줄 수 있습니다. 클래스는 C++ 코드 또는 블루프린트에서 생성할 수 있습니다.

상세 정보: 블루프린트 클래스, 게임플레이 클래스, 클래스 생성 기초

actors_topic.png

Actors 액터

Actor, 액터란 레벨에 배치할 수 있는 오브젝트를 말합니다. 액터는 이동, 회전, 스케일과 같은 3D 트랜스폼을 지원하는 범용 클래스입니다. 액터는 게임플레이 코드(C++ 또는 블루프린트)를 통해 생성(스폰) 및 소멸 가능합니다. C++ 에서 AActor 는 모든 액터의 베이스 클래스입니다.

액터에는 여러가지 유형이 있으며, 몇 가지 예를 들면 다음과 같습니다: StaticMeshActor, CameraActor, PlayerStartActor.

상세 정보: 액터 & 지오메트리

components_topic.png

Components 컴포넌트

Component, 컴포넌트는 액터에 추가시킬 수 있는 함수성 조각으로, 컴포넌트는 독립적으로 존재할 수는 없지만, 액터에 추가시키면 자립적인 함수성 조각으로, 액터에 포함시켜야 하며, 그 자체로 존재할 수는 없습니다.

예를 들어 스포트 라이트 컴포넌트는 액터가 스포트 라이트처럼 빛을 내도록, 로테이팅 무브먼트 컴포넌트는 액터가 회전하도록, 오디오 컴포넌트는 액터가 사운드를 재생하도록 해 줍니다.

상세 정보: 컴포넌트, 컴포넌트 창, 컴포넌트 코드

pawn_topic.png

Pawns

Pawn, 폰이란 Actor 의 서브클래스로, 게임내 아바타 또는 페르소나 역할을 하며, 게임에서의 캐릭터를 예로 들 수 있습니다. 폰은 플레이어 또는 플레이 불가능한 캐릭터(NPC) 형태로 게임의 AI 제어를 받을 수 있습니다.

폰이 사람 또는 AI 플레이어의 제어를 받을 때는, Possess 빙의된 것으로 간주합니다. 역으로 폰이 사람 또는 AI 플레이어의 제어를 받지 않는 경우, Unpossess 빙의되지 않은 것으로 간주합니다.

상세 정보: , 폰 빙의

character_topic.png

Characters 캐릭터

Character (캐릭터)는 Pawn (폰) 액터의 서브클래스로, 플레이어의 캐릭터에 쓰입니다. 캐릭터 서브클래스에는 콜리전 셋업, 이족 보행을 위한 입력키 바인딩, 플레이어가 제어하는 이동에 대한 부가 코드 등이 포함됩니다.

상세 정보: 캐릭터, 캐릭터 셋업 개요, 블루프린트로 캐릭터 무브먼트 셋업

ArtAssets.png

PlayerController 플레이어 컨트롤러

PlayerController, 플레이어 컨트롤러는 플레이어 입력을 받아 게임 내 상호작용으로 변환하는 데 사용되는 베이스 클래스이며, 모든 게임에는 최소 하나의 플레이어 컨트롤러가 있습니다. 플레이어 컨트롤러는 종종 게임 내 플레이어의 표상으로 폰 또는 캐릭터를 빙의합니다.

멀티플레이어 게임의 경우 PlayerController 가 주요 네트워크 상호작용 지점이 되기도 합니다. 멀티플레이어 플레이 도중, 서버는 멀티플레이어 게임 내 모든 플레이어에 대해 하나의 플레이어 컨트롤러 인스턴스를 갖는데, 이는 각 플레이어로의 네트워크 함수 호출이 가능해야 하기 때문이며, 각 클라이언트는 자기 플레이어에 해당하는 플레이어 컨트롤러만 갖으며, 이를 통해서만 서버와 통신할 수 있습니다.

상세 정보: 플레이어 컨트롤러

fullTree.png

AIController AI 컨트롤러

PlayerController 가 게임 내 플레이어의 표상으로 Pawn 을 빙의하듯이, AIController, AI 컨트롤러는 게임내 NPC (플레이 가능하지 않은 캐릭터)의 표상으로 Pawn 을 빙의합니다. 기본적으로 Pawn 과 Character 는 구체적인 PlayerController 에 빙의되거나 별도의 AIController 를 만들어주지 않는 한, 기본 AIController 를 갖게 됩니다.

상세 정보: AI 컨트롤러

geometry_brush.png

Brushes 브러시

Brush 브러시는 레벨 지오메트리(다른말로 BSP) 및 게임플레이 볼륨을 정의하기 위해 레벨에 배치하는 3D 볼륨을 말합니다. 전형적으로 BSP 브러시를 사용하여 게임플레이 테스트용 레벨 프로토타입 또는 기본적인 윤곽 작업을 하게 됩니다.

반면 볼륨에는 거기 붙는 이펙트에 따라 여러가지 용도가 있습니다: (보이지는 않지만 액터의 통과를 막는 데 사용되는) 블로킹 볼륨, (겹치는 액터에게 시간에 따라 서서히 대미지를 입히는) 페인 코징 볼륨, (액터가 드나들 때 이벤트 유발용으로 사용되는) 트리거 볼륨 등이 있습니다.

상세 정보: 지오메트리 브러시 액터, 지오메트리 편집 콘텐츠 예제

levels_topic.png

Levels 레벨

Level, 레벨은 게임플레이에 사용자 정의된 영역입니다. 주로 레벨 안에 액터를 배치하고 트랜스폼을 적용한 뒤 프로퍼티를 편집하는 것으로, 레벨을 생성하고 확인하며 변경합니다. 언리얼 에디터에서, 각 레벨은 별도의 .umap 파일로 저장되기에, 가끔은 맵이라 일컬어지기도 합니다.

상세 정보: 레벨, 레벨 에디터, 레벨 디자인 콘텐츠 예제

LevelsWindow.png

World 월드

World, 월드에는 로드된 레벨 목록이 들어있습니다. 레벨 스트리밍 및 동적인 액터 스폰(생성)을 처리합니다.

월드와의 직접 상호작용이 필수는 아니지만, 게임 구조 내 구체적인 언급 지점을 제공하는 데는 도움이 됩니다 (즉, 월드를 직접 언급한다고 레벨이나 맵이나 게임에 대해 말하는 것은 아닙니다).

상세 정보: 월드 컴포지션 사용 안내서

gamemode_lander.png

GameModes 게임 모드

GameMode, 게임 모드 클래스는 플레이중인 게임의 규칙 설정을 담당합니다. 규칙에는 플레이어의 게임 참가 방식, 게임 일시정지 가능 여부, 레벨 전환, 승리 조건과 같은 게임 전용 작동방식이 포함될 수 있습니다.

프로젝트 세팅 에서 기본 게임 모드 설정이 가능하지만, 레벨 단위로 덮어쓸 수 있습니다. 게임 모드 구현을 어떻게 하기로 했는지와 무관하게, 레벨당 항상 단 하나의 게임모드가 존재합니다. 멀티플레이어 게임에서 게임 모드는 서버에서만 존재하며, 규칙은 리플리케이션을 통해 접속된 각 클라이언트에 전송됩니다.

상세 정보: 게임 모드와 게임 스테이트, 블루프린트로 게임 모드 구성

gamestate_topic.png

GameStates 게임 스테이트

GameState, 게임 스테이트에는 게임의 모든 클라이언트에게 리플리케이트하고자 하는 정보가 들어있으며, 좀 더 간단히 접속된 모두에 대한 '게임의 상태'를 말합니다.

종종 게임 점수, 경기 시작 여부, 월드의 플레이어 수에 따라 스폰시킬 AI 수, 기타 게임 관련 정보가 포함됩니다.

멀티플레이어 게임의 경우, 각 플레이어의 머신마다 GameState 인스턴스가 하나 있으며, 서버의 인스턴스가 오소리티가 됩니다 (또는 나머지 클라이언트는 여기에서 업데이트를 받습니다).

상세 정보: 게임 모드와 게임 스테이트

playerstate_topic.png

PlayerStates 플레이어 스테이트

PlayerState, 플레이어 스테이트는 사람 플레이어 또는 플레이어를 흉내내는 봇과 같은 게임내 참여자의 상태를 나타냅니다. 게임 월드의 일부로 존재하는 플레이어가 아닌 AI 의 경우 PlayerState 가 없을 것입니다.

PlayerState 에 포함시키기 적합한 예제 데이터라면, 플레이어 이름 또는 점수, 그 현재 레벨 또는 생명력, 깃발뺏기 게임에서 현재 깃발 운반 여부 등입니다.

멀티플레이어 게임의 경우, 모든 플레이어에 대한 PlayerState 는 (PlayerController 와는 달리) 모든 머신에 존재하며, 서버에서 클라이언트로 프로퍼티를 리플리케이트하여 동기화 상태 유지가 가능합니다.

상세 정보: 게임플레이 프레임워크 간단 레퍼런스

Select Skin
Light
Dark

새로운 언리얼 엔진 4 문서 사이트에 오신 것을 환영합니다!

문서 사이트에 대한 의견을 모을 수 있는 피드백 시스템을 포함해서 여러가지 새로운 기능을 준비하고 있습니다. 아래 Documentation Feedback 포럼(영문) 또는 언리얼 엔진 네이버 공식 카페(한글) 중 편하신 곳에 의견이나 문제점을 알려 주세요.

새 시스템이 준비되면 알려 드리겠습니다.

네이버 카페
공식 포럼