게임이 플레이어와 커뮤니케이션하고 인터랙션하는 방식은 매우 중요합니다. 유저 인터페이스(User Interface, UI)와 헤드업 디스플레이(Heads-up Displays, HUD)는 게임 정보를 플레이어에게 제공하며, 경우에 따라 플레이어가 게임과 인터랙션할 수 있도록 지원합니다.
언리얼 엔진에서는 다양한 방법을 통해 UI 및 HUD를 제작할 수 있습니다. Canvas
클래스를 사용하면 로우 레벨에서 화면에 직접 그려서 월드 위에 오버레이할 수 있습니다.
게임 인터페이스는 플레이어에게 정보를 전달하고 사용자에게 지시된 입력을 제시할 수 있게 해줍니다. 게임 인터페이스는 보통 두 가지 주요 엘리먼트인 HUD와 메뉴 또는 UI로 구성됩니다.
HUD는 게임플레이 도중 화면에 오버레이되는 상태와 정보를 가리킵니다. HUD의 목적은 플레이어에게 점수, 자신의 체력, 남은 시간 등 게임의 현재 상태를 알리는 것입니다. 일반적으로 HUD는 인터랙티브하지 않으며 플레이어가 HUD 엘리먼트를 클릭할 수 없습니다. 하지만 HUD와 UI를 구분하기 어려운 일부 게임 타입에서는 이러한 경계가 흐려집니다.
유저 인터페이스 는 메뉴와 기타 인터랙티브한 엘리먼트를 가리킵니다. 일반적으로 이러한 엘리먼트는 HUD처럼 화면 위에 오버레이되지만 특정 상황에서는 게임 월드 자체의 일부가 되어 월드 표면 위에 렌더링되기도 합니다. UI의 대표적인 예시는 게임 스타트업 시 표시되는 메인 메뉴나 플레이어가 게임을 일시정지할 때 표시되는 일시정지 메뉴입니다. 하지만 플레이 도중 다른 UI도 표시될 수 있습니다. 이들은 게임에서 캐릭터 간 대화를 표시하는 데 사용될 수 있으며 RTS, RPG 같이 보다 복잡한 상황에서는 플레이어가 무기, 방어구, 빌드할 유닛 등을 선택하도록 허용하면서 게임 플레이에 보다 필수적인 부분이 되기도 합니다.
HUD
HUD 는 화면에 오버레이된 엘리먼트를 표시하기 위한 베이스 오브젝트입니다. 게임에서 사람이 제어하는 모든 플레이어는
개별 뷰포트에 표시되는 AHUD
클래스의 고유한 인스턴스가 부여됩니다. 분할 화면 멀티플레이어 게임의 경우에는
여러 뷰포트가 동일한 화면을 공유하지만 각 HUD는 여전히 자신의 뷰포트에 표시됩니다. 이러한 HUD
타입이나 클래스는 사용 중인 게임 타입에 따라 지정됩니다.
캔버스
캔버스(Canvas) 는 HUD의 렌더 루프 도중에 엘리먼트를 화면에 그리는 데 사용할 수 있는 오브젝트입니다. 텍스트, 텍스처, 머티리얼 타일, 임의의 트라이앵글, 단순 프리미티브 셰이프 등을 그릴 수 있습니다. 특별한 대안을 사용하지 않는 한 언리얼 엔진으로 제작하는 게임에서는 HUD 및 UI를 생성할 때 캔버스를 통해 그리는 방법을 사용합니다.
슬레이트
슬레이트(Slate) 는 언리얼 에디터와 같은 애플리케이션 및 툴의 유저 인터페이스 또는 인게임 유저 인터페이스를 빌드하는 작업을 흥미롭고 효율적으로 만들기 위해 디자인된 플랫폼에 구애받지 않는 커스텀 유저 인터페이스 프레임워크입니다. 이것은 선언형 구문을 간편한 디자인, 레이아웃 및 스타일 컴포넌트 기능과 결합하여 UI를 제작하고 반복작업할 수 있게 해줍니다.
추가 문서는 슬레이트 UI 프레임워크를 참고하세요.