Unreal Engine 5.3.2 문서로 UMG 모범 사례를 공부한 내용입니다.
참고 자료
UMG 모범 사례
https://dev.epicgames.com/documentation/ko-kr/unreal-engine/umg-best-practices-in-unreal-engine
DPI 스케일링
https://dev.epicgames.com/documentation/ko-kr/unreal-engine/dpi-scaling-in-unreal-engine
목표 해상도와 스케일
- Widget Blueprint -> Screen Size 드롭다운 메뉴에서 해상도를 설정할 수 있다.
- DPI Scale
- 해상도와 무관한 UI Scale로, DPI Scale Rule 옵션을 통해 기준을 설정할 수 있다.
- 기본 옵션은 뷰포트의 가장 짧은 면을 기준으로 스케일 커브 값을 조절한다.
- 어떠한 해상도에서도 동일한 UI 크기를 유지하기 위해 가급적 1.0 으로 작업하는 것을 권장한다.
UMG용 아트 제작
- 미리 정해둔 해상도에 맞추지 않고 UI 작업을 하게 되면, 에셋을 늘이거나 줄이는 과정에서 왜곡이 일어날 수 있다.
- 특히 테두리가 들어간 텍스처의 경우 왜곡을 주의해야 하는데, 해당 작업은 UMG 내에서 따로 Padding 기능을 사용해 작업해야 올바른 스케일로 나타난다.


- 혹은 별도의 텍스처로 테두리 작업을 하여, Draw As 옵션을 타일링을 지원하는 옵션(Border) 모드로 변경하는 것을 권장한다.
슬롯 Auto, Fill
Auto
- 위젯을 표시하기 위해 필요한 만큼의 공간을 스케일로 잡는다.
Fill
- 위젯을 표시하기 위해 최대한의 공간을 스케일로 잡는다.
사용 예시
- 위, 아래의 위젯은 Auto로 만들어 이미지끼리의 간격을 유지한 채 필요한 만큼의 스케일로 유지한다. 가운데의 위젯은 Fill로 만들어 어떠한 해상도에서도 위, 아래의 위젯이 가장자리에 붙어있을 수 있도록 한다.
렌더 트랜스폼
- 렌더 트랜스폼은 임시로 확인하는 용도이다. 위젯의 트랜스폼을 임의로 조정하는 것이기 때문에, 이미지가 깨지거나 왜곡될 우려가 있다.
최적화
- 머테리얼 대신 텍스처를 사용하기
- 바인딩 대신 이벤트를 통해 UI를 업데이트하기 (RepNotify 사용 권장인 듯 하다.)
- 자주 변하지 않는 위젯은 인벨리데이션 박스를 통해 캐싱할 수 있다. (백그라운드 이미지 등에 사용)
- 위젯 관련 정보/통계 단축키 : Ctrl + Shift + W