Slate & UMG in Unreal
언리얼 엔진은 Slate라는 자체 UI 프로그래밍 프레임워크를 사용합니다.
Slate는 게임 및 비게임 애플리케이션 모두에서 Slate 위젯을 사용하여 UI를 구성합니다.
예시:
- 언리얼 에디터는 전적으로 Slate로 만들어졌습니다.
- (Nick Darnell의 설명에 따르면) Epic Games Launcher는 Slate를 프레임으로 사용하고, 그 안에 chromium 앱을 띄웁니다.
- Halo Master Chief Collection은 UI에 UMG/Slate(TBD)를 사용합니다(공개 발표를 기반으로 하며 내부 정보는 아님).
Slate는 오직 C++에서 선언적 문법으로만 사용되며, UObject 계층에서 파생되지 않습니다.
Slate의 장점:
- C++ 기반으로 인한 높은 성능
- 범용 애플리케이션 개발에 사용 가능 (Epic Games Launcher, 언리얼 에디터 등)
- 에디터 확장에 용이 (에디터 자체가 Slate로 만들어졌기 때문)
- 언리얼의 가비지 컬렉션 시스템을 사용하지 않음
Slate의 단점:
- C++에서만 사용 가능 (비주얼 디자이너 없음, UMG 디자이너가 이를 보완)
- 시퀀서 애니메이션 사용 불가 (모든 동작을 코드로 작성해야 하므로 반복 작업이 많아짐)
- 상용 수준의 사용을 위해서는 깊은 이해 필요
- 블루프린트에서 사용 불가
- 언리얼의 리플렉션 시스템 및 가비지 컬렉션과 연동되지 않음
Slate Test Suite (UE5에서는 Starship Gallery로 명칭 변경)
UMG(Unreal Motion Graphics)는 UObject 계층에서 파생되었지만 Actor는 아니며,
Slate 위젯을 생성 및 표시하는 역할을 합니다(즉, Slate를 블루프린트와 연동할 수 있도록 래핑한 Unreal Engine 친화적 시스템).
UMG의 장점:
- 블루프린트와 C++ 모두에서 사용 가능
- 아티스트 주도의 애니메이션 제작 가능
- 비주얼 디자이너 제공
- 언리얼의 리플렉션 및 가비지 컬렉션 시스템과 연동
- 에디터 확장 가능 (Unreal Engine 4.23+부터 Editor Utility Widget 지원)
UMG의 단점:
- 언리얼 엔진 전용 (일반 OS 애플리케이션에서는 사용 불가)
- 쉬운 사용성으로 인해 기술적 부채 및 UI 구조가 복잡해질 수 있음
