UMG (Unreal Motion Graphic)
UMG는 UWidget으로부터 파생되며, UWidget은 엄밀히 말하자면, Slate 모듈을 Unreal 환경에 맞게 래핑(Wrapping)한 것.
UWidget에 대한 API를 보시면 멤버 변수로 TWeakPtr을 가지고 있음을 알 수 있다. 즉, 내부적으로는 Slate 모듈의 기능들을 사용한다. Slate는 SWidget으로부터 파생되며, Slate 관련 항목에 사용.
HUD (Head Up Display)
컨트롤러의 일부로, 모니터에 보여진다. 매 프레임마다 Receive Draw HUD라는 이벤트를 호출하는 특징을 갖고있다. 이 이벤트를 통해서 HUD를 제어할 수 있다. Tick 함수와는 별개로 호출되는 함수이며, Tick과 마찬가지로 호출 여부를 제어할 수 있다(SetShowHUD).
ReceiveDrawHUD
HitBoxBeginCursor
HitBoxEndCursor
HitBoxClicked
HitBoxReleased
HUD는 HUD를 위한 가장 기본적인수단이다. "Add to Viewport"를 호출하는 즉시 플레이어 컨트롤러가 연결된 HUD의 일부가 위젯된다. 그러면 위젯이 HUD의 하위 구성요소가 됩니다. 하지만, 기술적인(코드의 구성 차이에 따른) 측면에서 보았을 때, 네트워킹 등의 차이점이 있다고 합니다.
이 포럼 에서 HUD의 존재 이유에 대
그리고 당신의 HUD의 주된 목적이 "그림 그리기"이기 때문에 당신은 스크린에서 그 아이들을 볼 수 있다.
Slate Framework
Slate는 서술형 문법을 이용하여 UI를 구성할 수 있다.
Unreal Motion Graphics (UMG) Slate 의 최적화
1.배경 이미지 사용을 최소화하고 대신 단색을 사용한다.
2.래스터 그래픽 대신 벡터 그래픽을 사용하여 메모리 사용량을 줄인다.
3.drop shadows, blurs, and rounded corners 같은 옵션은 생각보다 비용이 많이 든다.
4.위젯을 최대한 재사용하여 메모리 사용량을 줄이고 성능을 향상.
5.프로파일러를 사용하여 UMG 코드의 성능 병목 현상을 식별하고 제거.
6.UMG 위젯의 바인딩 및 이벤트 수를 줄여 오버헤드를 최소화.
7.동적 재료 인스턴스(instance)를 사용하지 않고 재료 인스턴스(instance)를 대신 사용.
8.백그라운드 스레드에서 CPU 집약적인 작업을 수행하려면 비동기 작업 그래프를 사용.
9.UMG에서 크기 또는 위치와 같은 레이아웃에 영향을 미치는 속성을 애니메이션으로 만들지 말것.
10.위젯을 너무 깊게 중첩하지 않도록 하고 위젯 계층을 가능한 한 낮게 유지.
[언리얼 Tip] FName, FText, FString (1) | 2024.01.20 |
---|---|
[Unreal Engine 4] UI 렌더링 시스템 부하 (0) | 2023.02.14 |
[Unreal Engine 4] 메모리 관리 (0) | 2023.02.05 |
UMG (Unreal Motion Graphic) (0) | 2023.02.05 |