Unreal 기본 용어

Taegang Yun·2023년 7월 26일
0

UE5 Documentation

목록 보기
2/5

Blueprint

블루 프린트 비주얼 스크립팅 시스템은 노드 기반 인터페이스를 사용하여 언리얼 에디터 내에서 게임플레이 요소를 생성하는 완전한 게임플레이 스크립팅 시스템이다. 많은 일반적인 스크립팅 언어와 마찬가지로 엔진에서 개체 지향(OO) 클래스 또는 개체를 정의하는 데 사용된다. 언리얼 엔진을 사용하다 보면 블루프린트를 사용하여 정의된 오브젝트를 구어체로 "블루프린트"라고 부르는 경우가 종종 있다.

Object

Object는 언리얼 엔진에서 가장 기본적인 클래스이다. 즉, 빌딩 블록처럼 작동하며 애셋의 필수 기능이 많이 포함되어 있다. 언리얼 엔진의 거의 모든 것은 오브젝트에서 상속(또는 일부 기능을 가져옴) 됩니다.

C++에서 UObject는 모든 개체의 기본 클래스이다. 가비지 수집, Unreal Editor에 변수를 노출하기 위한 메타데이터(UProperty) 지원, 로드 및 저장을 위한 직렬화와 같은 기능을 구현한다.

Class

Class는 언리얼 엔진에서 특정 Actor나 Object의 동작과 속성을 정의한다. Class는 계층적이다. 즉, Class는 부모 Class(즉, Class가 파생되었거나 "하위 클래스"가 된 클래스)에서 정보를 상속하고 해당 정보를 자식에게 전달한다. 클래스는 C++ 코드 또는 Blueprint로 생성할 수 있다.

Actor

Actor는 카메라, 스태틱 메시 또는 플레이어 시작 위치와 같이 레벨에 배치할 수 있는 모든 오브젝트이다. 액터는 변환, 회전 및 크기 조정과 같은 3D 변환을 지원합니다. 게임플레이 코드(C++ 또는 블루프린트)를 통해 생성(스폰) 및 파괴할 수 있다.

C++에서는 AActor가 모든 액터의 기본 클래스이다.

Casting

Casting은 특정 클래스의 액터를 취하여 다른 클래스인 것처럼 취급하려고 시도하는 작업이다. 캐스팅은 성공하거나 실패할 수 있다. 캐스팅에 성공하면 캐스팅 대상 액터의 클래스별 기능에 액세스할 수 있다.

예를 들어, 플레이어 캐릭터에 다양한 방식으로 영향을 줄 수 있는 여러 유형의 볼륨이 있는 게임을 만들고 있다고 가정해보자. 이러한 볼륨 중 하나는 시간이 지남에 따라 플레이어의 HP를 감소시키는 Fire이다. 플레이어가 레벨의 볼륨과 겹치면 해당 볼륨을 Fire에 캐스트 하여 "플레이어 HP 감소" 기능에 액세스하려고 시도할 수 있다.

  • 캐스트가 성공하면, 즉 플레이어가 불 속에 서 있으면 플레이어의 HP는 감소한다.
  • 캐스트가 실패하면, 즉 플레이어가 다른 종류의 볼륨에 서 있으면 플레이어의 HP는 감소하지 않는다.

Component

Component는 액터에 추가할 수 있는 기능의 일부이다.
액터에 Component를 추가하면 액터는 Component가 제공하는 기능을 사용할 수 있다.
예를 들어서

  • A Spot Light Component 는 Actor 가 spotlight처럼 빛을 내도록 한다.
  • A Rotating Movement는 Actor를 회전하게 한다.
  • An Audio Component는 Actor에게 사운드를 재생할 수 있는 능력을 부여한다.

Component는 Actor에 연결되어야 하며 자체적으로 존재할 수 없다.

Pawn

Pawn은 Actor의 하위 클래스이며 게임 내 아바타 또는 페르소나(예: 게임의 캐릭터) 역할을 한다. Pawn은 플레이어 또는 게임의 AI가 NPC로 제어할 수 있다.
Pawn이 인간 또는 AI 플레이어에 의해 제어되는 경우 Possessed(빙의) 된 것으로 간주한다. 반대로 Pawn이 인간이나 AI 플레이어에 의해 제어되지 않는 경우 Unpossessed로 간주된다.

Character

Character는 플레이어 캐릭터로 사용하기 위한 Pawn actor의 하위 클래스이다. Character 하위 클래스에는 충돌 설정, 이동을 위한 입력 바인딩, 플레이어 제어 이동을 위한 추가 코드가 포함되있다.

PlayerController

PlayerController는 플레이어 입력을 받아 게임의 상호 작용으로 변환한다. 모든 게임에는 적어도 하나의 PlayerController가 있다. 플레이어 컨트롤러는 종종 게임에서 플레이어를 나타내는 폰이나 캐릭터를 소유한다.

PlayerController는 멀티플레이어 게임의 기본 네트워크 상호 작용 지점이기도 하다. 멀티플레이어 플레이 중에 서버는 각 플레이어에게 네트워크 기능 호출을 할 수 있어야 하므로 게임의 모든 플레이어에 대해 하나의 플레이어 컨트롤러 인스턴스를 가진다. 각 클라이언트에는 해당 플레이어에 해당하는 PlayerController만 있으며 PlayerController를 사용하여 서버와 통신한다.

PlayerState

PlayerState 는 인간 플레이어 또는 플레이어를 시뮬레이트하는 봇과 같은 게임 참가자의 상태이다. 게임 세계의 일부로 존재하는 비플레이어 AI에는 플레이어 상태가 없다.

플레이어 상태에 포함될 수 있는 플레이어 정보의 몇 가지 예는 다음과 같다.

  • 이름
  • 현재 레벨
  • HP
  • 점수
  • 깃발 뺏기 게임에서 현재 깃발을 들고 있는지 여부.

멀티플레이어 게임의 경우 모든 플레이어의 플레이어 상태가 모든 시스템에 존재하며 동기화 상태를 유지하기 위해 서버에서 클라이언트로 데이터를 복제할 수 있다. 이는 자신이 나타내는 플레이어의 컴퓨터에만 존재하는 플레이어 컨트롤러와는 다르다.

GameMode

GameMode는 진행 중인 게임의 규칙을 설정한다. 이러한 규칙에는 다음이 포함될 수 있다.

  • 플레이어가 게임에 참여하는 방법
  • 게임을 일시 중지할 수 있는지 여부
  • 승리 조건과 같은 모든 게임 관련 동작

구현 방법에 관계없이 각 레벨에 대해 하나의 게임 모드만 가질 수 있다.
멀티플레이어 게임에서 게임 모드는 서버에만 존재하며, 규칙은 연결된 각 클라이언트에 replicate 된다.

GameState

GameState는 게임의 모든 클라이언트에 복제하려는 정보를 보관하는 컨테이너이다. 간단히 말해서 연결된 모든 사람을 위한 'The State of the Game'이다.

Volume

Volume은 연결된 효과에 따라 용도가 다른 제한된 3D 공간이다.

  • Blocking Volume : 보이지 않으며 액터가 볼륨을 통과하지 못하도록 방지하는 데 사용된다.
  • Pain Causing Volumes : 겹치는 액터에 시간이 지남에 따라 데미지를 입힌다.
  • Trigger Volume : 액터가 들어가거나 나올 때 이벤트를 일으키도록 프로그램되어 있다.

Level

Level은 사용자가 정의하는 게임 플레이 영역이다

profile
언젠간 전문가가 되겠지

0개의 댓글