🎮언리얼 엔진 용어

⚙️프로젝트

프로젝트는 게임의 모든 것을 담고 있다. 프로젝트 안의 폴더는 원하는 대로 이름을 변경하고 정리할 수 있다. 언리얼 에디터의 컨텐츠 브라우저 패널은 하드디스크의 프로젝트 폴더와 동일한 디렉터리 구조를 보여준다.

모든 프로젝트에는 연관된 .uproject 파일이 있다.



⚙️블루프린트

블루프린트 비주얼 스크립팅 시스템은 노드 기반의 인터페이스를 사용하여 언리얼 에디터 내의 게임플레이 엘리먼트를 생성하는 게임플레이 스크립팅 시스템이다.



⚙️오브젝트

오브젝트는 언리얼 엔진에서 가장 기본적인 클래스이다. 오브젝트는 구성단위 역할을 하고 에셋에 필수적인 기능을 포함하고 있다. 언리얼 엔진에서 거의 모든 것이 오브젝트로부터 상속받거나 함수 기능을 사용한다.

C++에서 UObject는 모든 오브젝트의 베이스 클래스이다.



⚙️클래스

클래스는 언리얼 엔진에서 특정 액터나 오브젝트의 행동과 프로퍼티를 정의한다. 정보를 부모 클래스로부터 상속받고 자손 클래스에게 다시 상속한다.



⚙️액터

액터는 카메라, 스태택 메시, 플레이어 스타트 위치 등 레벨에 배치할 수 있는 모든 오브젝트를 의미한다. 액터는 이동, 회전, 스케일링 등의 3D 트랜스폼을 지원한다. 그리고 게임플레이 코드를 통해 생성 및 소멸될 수 있다.



⚙️형변환

형변환은 특정 클래스의 액터를 다른 클래스인 것처럼 간주하려고 시도하는 작업이다. 형변환은 성공할 수도 있고 실패할 수 있다. 성공하면 형변환한 액터의 클래스 전용 기능에 액세스할 수 있다.



⚙️컴포넌트

컴포넌트 는 액터에 추가할 수 있는 기능 조각이다. 액터에 컴포넌트를 추가하면, 액터는 해당 컴포넌트가 제공하는 기능을 사용할 수 있다. 컴포넌트는 액터에 추가되어야 하며, 단독으로는 존재할 수 없다.

  • 스포트 라이트 컴포넌트는 액터가 스포트 라이트처럼 빛을 내게 함
  • 로테이팅 무브번트 컴포넌트는 액터가 회전하게 함
  • 오디오 컴포넌트는 액터가 사운드를 재생하게 함



⚙️폰

폰은 액터의 서브클래스이고 인게임 아바타 또는 페르소나의 역할을 한다. 폰은 플레이어 또는 게임 AI로 제어되는 NPC 등이 있다.



⚙️캐릭터

캐릭터 는 플레이어 캐릭터로 사용하기 위한 폰 액터의 서브클래스이다. 캐릭터 클래스에는 콜리전 설정, 바이페드(Biped) 움직임을 위한 입력 바인딩, 플레이어가 제어하는 움직임을 위한 추가 코드 등이 포함된다.



⚙️플레이어 컨트롤러

플레이어 컨트롤러 는 플레이어의 입력을 게임 안의 상호작용으로 변환한다. 모든 게임에는 최소 하나의 플레이어 컨트롤러가 있다. 플레이어 컨트롤러는 게임 안에서 플레이어를 나타내는 폰이나 캐릭터에 빙의할 때가 많다.

  • C++ 클래스: APlayerController



⚙️AI 컨트롤러

플레이어 컨트롤러가 게임 안에 플레이어를 나타내는 폰을 소유하듯이, AI 컨트롤러도 게임 안에 NPC를 나타내는 폰을 소유한다. 폰과 캐릭터는 특정 플레이어 컨트롤러가 빙의했거나 스스로 AI 컨트롤러를 생성하지 말라는 명령을 받지 않았다면 기본적으로 베이스 AI 컨트롤러에 빙의된다.

  • C++ 클래스: AAIController



⚙️플레이어 스테이트

플레이어 스테이트는 게임 참여자의 스테이트를 의미한다. 게임 월드의 일부로 존재하는 논플레이어 AI는 플레이어 스테이트가 없다.

  • 이름
  • 현재 레벨
  • 체력
  • 점수

등이 플레이어 스테이트에 포함될 수 있다. 멀티플레이어 게임의 경우 모든 컴퓨터에 모든 플레이어의 플레이어 스테이트가 존재하며, 동기화를 유지하기 위해 서버에서 클라이언트로 데이터를 리플리케이트할 수 있다. 이는 특정 플레이어 컨트롤러가 나타내는 플레이어의 컴퓨터에만 존재하는 플레이어 컨트롤러와는 다르다.

  • C++ 클래스: APlayerState



⚙️게임 모드

게임 모드는 플레이 중인 게임의 규칙을 설정한다.

  • 플레이어가 게임에 참여하는 방법
  • 게임의 일시 정지 가능 여부
  • 승리 조건, 패배 조건

등이 게임 규칙에 포함될 수 있다. 프로젝트 세팅에서 디폴트 게임 모드를 설정하고 레벨별로 오버라이드할 수 있다. 어떤 방법으로 구현하든, 한 레벨에는 하나의 게임 모드만 존재할 수 있다.

멀티플레이어 게임의 경우 게임 모드는 서버에만 존재하며, 연결된 각 클라이언트에 규칙이 복제(전송)된다.

  • C++ 클래스: AGameMode



⚙️게임 스테이트

게임 스테이트는 게임 내의 모든 클라이언트에 복제할 정보가 들어있는 컨테이너이다.

  • 게임 점수에 대한 정보
  • 대결이 시작됐는지 여부
  • 월드에 있는 플레이어 수를 기준으로 스폰할 AI 캐릭터 수

등이 게임 스테이트의 예이다.

  • C++ 클래스: AGameState



⚙️브러시

브러시는 큐브, 구체와 같은 3D 셰이프를 묘사하는 액터이다. 레벨에 브러시를 배치하여 레벨 지오메트리를 정의할 수 있다. 이는 레벨의 윤곽 작업을 빠르게 하고 싶은 경우 등에 유용하다.



⚙️볼륨

볼륨은 연결된 효과에 따라 용도가 달라지는 바운드된 3D 공간이다.

  • Blocking Volumes: 보이지 않고 액터가 통과하지 못하게 막는 공간
  • Pain Causing Volumes: 오버랩되는 액터에 시간이 지남에 따라 대미지를 주는 공간
  • Trigger Volumes: 액터가 들어오거나 나갈 때 이벤트를 유발하도록 프로그래밍된 공간



⚙️레벨

레벨은 게임플레이 영역이다. 지오메트리, 폰, 액터 등과 같이 플레이어가 상호작용할 수 있는 모든 것이 포함된다. 언리얼 엔진은 레벨을 맵이라고도 불리고 각 레벨은 .umap 파일로 저장한다.



⚙️월드

월드는 게임을 구성하는 모든 레벨이 담겨있는 컨테이너이다. 레벨의 스트리밍과 다이내믹 스폰을 생성한다.



Leave a comment