애플리케이션용 유저 인터페이스(UI)를 개발하는 동안 UI 프로그래머는 UI 업데이트를 트리거하는 변경사항의 소스를 찾기 어려울 수 있습니다. 슬레이트 인사이트(Slate Insights) 는 특정 슬레이트(Slate) 및 UMG 업데이트의 근본 원인을 식별하는 툴을 제공하여 개발자가 UI 퍼포먼스를 개선하도록 지원합니다.
슬레이트 인사이트에서 실행 중인 슬레이트 프레임 뷰입니다.
슬레이트 인사이트 플러그인을 사용하는 동안, 개발자는 슬레이트 프레임 뷰(Slate Frame View) 를 사용하여 프레임당 업데이트되거나 무효화되거나 페인팅되고 있는 위젯 목록 확인할 수 있습니다. 개발자는 슬레이트 인사이트를 사용하여 UI를 디버깅하고 최적화할 수 있습니다.
구성
슬레이트 인사이트 사용하기
에디터에서 슬레이트 인사이트 사용을 시작하려면, 에디터나 *.uproject
파일에서 플러그인을 활성화하면 됩니다. 에디터에서 슬레이트 인사이트 플러그인을 활성화하려면, 에디터(Editor) > 플러그인(Plugins) > 내장 플러그인(Built-In) > Slate Insights 플러그인을 찾습니다.
다른 방법으로는 프로젝트의 *.uproject
파일에서 플러그인을 활성화하면 됩니다.
{
"FileVersion": 3,
"EngineAssociation": "{2118FE05-4070-6D80-44FC-17A9E96EAE93}",
"Category": "",
"Description": "",
"Plugins": [
{
"Name": "SlateInsights",
"Enabled": true
}
]
}
소스에서 에디터를 빌드한 경우 필수 플러그인을 활성화한 후에 프로젝트용으로 에디터를 컴파일하고 실행해야 합니다.
필수 플러그인을 활성화한 후 에디터를 재시작합니다. 슬레이트 인사이트 데이터를 추적하는 방법은 다음과 같습니다.
에디터에서 게임 프로젝트를 열고 에디터 개인설정(Editor Preferences) 을 엽니다.
레벨 에디터(Level Editor) - 플레이(Play) > 독립형 게임으로 플레이(Play in Standalone Game) 에서
-trace=slate
를 추가 실행 옵션 파라미터(Additional Launch Parameters) 텍스트 박스에 입력합니다.언리얼 인사이트 레퍼런스에서 추가 명령줄 옵션을 알아볼 수 있습니다.
프로젝트의 활성 플레이 모드를 독립형 게임(Standalone Game) 으로 설정합니다.
언리얼 인사이트가 빌드되지 않은 경우,
Engine\Source\Programs\UnrealInsights
에서 언리얼 인사이트 프로젝트를 찾아 애플리케이션을 빌드합니다.UnrealInsights 애플리케이션을 실행합니다.
Engine\Binaries[플랫폼]
에서 애플리케이션을 찾습니다.언리얼 인사이트가 실행 중인 상태에서 프로젝트를 실행하여 애플리케이션의 트레이스 데이터를 기록합니다.
트레이스 데이터는 다음 프로젝트 디렉터리에 자동으로 작성됩니다.
%appdata%/local/UnrealEngine/Common/UnrealTrace/Store/001
.트레이스 세션은 시간이 지나면서 크기가 커질 수 있으므로 '*.utrace' 파일을 적극적으로 모니터링하고 관리해야 합니다.
프로젝트의 트레이스 데이터를 기록한 다음 독립형 애플리케이션을 종료합니다.
언리얼 인사이트에서 분석을 시작하려면, 프로젝트의 트레이스 세션을 선택하고 (1) 열기(Open) 를 클릭합니다 (2).
슬레이트 프레임 뷰(Slate Frame View) 탭을 열려면, 메뉴(Menu) > 슬레이트 프레임 뷰(Slate Frame View) 를 선택합니다.
언리얼 인사이트 탐색 및 사용에 대한 일반 정보는 언리얼 인사이트 개요 문서를 참조하세요.
슬레이트 프레임 뷰 를 사용하여 UI 데이터를 분석합니다.
슬레이트 프레임 뷰
언리얼 인사이트로 애플리케이션의 트레이스 데이터를 캡처한 다음, *.utrace
파일을 열어 슬레이트 프레임 뷰 로 UI 상태 분석을 시작합니다.
슬레이트 프레임 뷰에는 인밸리데이션(Invalidation) 및 업데이트(Update) 라는 두 영역이 있습니다. 각 영역에는 자체 트레이스 플래그 컬렉션이 있습니다.
인밸리데이션 트레이스 플래그
인밸리데이션 트레이스 플래그 영역은 위젯 무효화에 대한 하나 이상의 이유(Reason) 와 해당하는 양(Amount) 을 포함한 위젯(Widget) 정보를 보고합니다. 위젯을 펼쳐 무효화 이유를 검토할 때, 슬레이트 프레임 뷰에 다음과 같이 정의된 'LPUCRV' 플래그 목록에서 하나 이상의 플래그가 하이라이트됩니다.
플래그 |
정의 |
---|---|
L |
레이아웃 플래그입니다. true면 위젯의 선호 크기가 변경되었다는 뜻입니다. |
P |
페인트 플래그입니다. true면 위젯을 다시 페인팅해야 하지만, 크기에는 영향이 없다는 뜻입니다. |
U |
변동성 플래그입니다. true면 위젯 변동성이 변경되었다는 뜻입니다. |
C |
자손 순서 플래그입니다. true면 자손이 추가되거나 제거되었으며, 레이아웃이 있다는 의미입니다. |
R |
렌더 트랜스폼 플래그입니다. true면 위젯 렌더 트랜스폼이 변경되었다는 뜻입니다. |
V |
비저빌리티 플래그입니다. true면 위젯 비저빌리티가 변경되었으며 레이아웃이 있다는 의미입니다. |
업데이트 트레이스 플래그
업데이트 트레이스 플래그 영역은 위젯 업데이트에 대한 하나 이상의 이유(Reason) 와 해당하는 양(Amount) 을 포함한 위젯(Widget) 정보를 보고합니다. 위젯을 펼쳐 업데이트 이유를 검토할 때, 슬레이트 프레임 뷰에는 다음과 같이 정의된 'UTPV' 플래그 목록에서 하나 이상의 플래그가 하이라이트됩니다.
플래그 |
정의 |
---|---|
U |
틱 플래그입니다. true면 위젯이 업데이트되었다는 뜻입니다. |
T |
활성 타이머 업데이트 플래그입니다. true면 위젯에 활성 타이머가 있다는 뜻입니다. |
P |
리페인트 플래그입니다. true면 위젯이 더티하여 리페인팅되었다는 뜻입니다. |
V |
변동성 플래그입니다. true면 위젯에 변동성이 있었으며 리페인팅되었다는 뜻입니다. |