애니메이션 인사이트(Animation Insights) 는 시각적으로 렌더링된 트레이스 데이터를 사용하여 프로젝트의 게임플레이와 애니메이션 시스템의 퍼포먼스를 실시간으로 프로파일링하고 관찰하는 데 사용할 수 있는 언리얼 엔진 용 플러그인입니다. 에디터에서 플레이 (Play in Editor, PIE) 시뮬레이션 중에 트레이스 정보를 기록하여 타깃 프레임 레이트와 관련하여 프로젝트의 퍼포먼스 병목 현상을 모니터링함으로써 최적화할 방법을 찾을 수 있습니다.
Animation Insights 플러그인에는 시간 경과에 따른 변수 및 블렌드 값과 같은 애니메이션 스테이트 및 라이브 행동 업데이트 외에도 게임플레이와 애니메이션 시스템을 관찰하는 데 사용할 수 있는 퍼포먼스 그래프가 포함되어 있습니다. 프로젝트를 디버그하고 최적화하는 데 사용할 수 있도록, 애니메이션 인사이트는 프로젝트의 데이터를 트레이싱하여 데이터 값 변화를 트래킹하고 해당 정보를 바탕으로 트랙에 색을 지정합니다.
트레이스 기록을 활성화하여 다음과 같은 데이터 타입에 대해 프로젝트의 데이터 변화를 관찰할 수 있습니다.
- 애니메이션 포즈(Poses), 커브, 블렌드 웨이트, 몽타주, 애님 노티파이, 그리고
showdebug animation시스템을 대체하는 라이브 업데이트가 포함된 스키매틱 애님 그래프 뷰.
트레이스 데이터 필터링을 사용하여 기록된 데이터 세트에 기록되는 특정 트레이스 데이터 타입을 선택할 수 있습니다. 또한, 소스 필터링을 사용하여 트레이스 데이터를 출력하는 개별 게임플레이 오브젝트를 선택할 수도 있습니다.
전제조건
- 다음 플러그인을 활성화합니다. 메뉴 바(Menu Bar) 에서 편집(Edit) > 플러그인(Plugins) 으로 이동하여 검색창(Search Bar) 을 사용하거나 인사이트(Insights) 섹션 아래 나열된 Animation Insights, Insights Data Source Filters 및 Trace Data Filtering 플러그인을 찾습니다. 플러그인을 활성화하고 에디터를 재시작합니다.
애니메이션 인사이트 사용하기
플러그인을 설치한 뒤 애니메이션 인사이트(Animation Insights) 및 트레이스 데이터 필터링(Trace Data Filtering) 패널을 엽니다. 메뉴 바(Menu Bar) 에서 툴(Tools) > 프로파일(Profile) 로 이동하여 애니메이션 인사이트 및 트레이스 데이터 필터링 옵션을 모두 선택합니다.
트레이스 데이터 필터링 패널에서 트레이스 채널 필터(Trace Channel Filters) 를 활성화할 수 있습니다. 그러면 애니메이션 인사이트 패널의 그래프에 해당 데이터가 실시간으로 채워집니다.
애니메이션 인사이트는 컴퓨터의 애플리케이션 데이터에 있는 .utrace 파일에 이 데이터를 저장하고, 이러한 트레이스 파일은 언리얼 인사이트 애플리케이션을 사용하여 액세스할 수 있으며, 이 애플리케이션은 메뉴 바 에서 툴 > 언리얼 인사이트 실행(Launch Unreal Insights) 으로 이동하여 에디터와 함께 실행할 수 있습니다.
.utrace 파일이 매우 커질 수 있으므로 디버깅이나 최적화에 필요한 경우 외에는 애니메이션 트레이스를 활성화하지 않도록 해야 합니다.
트레이스 데이터 필터링
트레이스 데이터 필터링 패널을 연 다음에는 트레이스 채널 스테이트를 개별적으로 토글하여 실시간으로 선택한 데이터 타입을 기록하거나 무시할 수 있습니다. 그러면 이렇게 선택한 항목이 PIE 중이나 PIE 외부에서 애니메이션 인사이트 패널에서 트래킹되어 기록되며, 시간 경과에 따른 데이터 변화를 관찰할 수 있도록 그래프로 렌더링됩니다.
활성화할 채널의 수와 활성화 지속 시간은 신중하게 선택해야 합니다. 신중하게 채널을 필터링하면 프로젝트의 퍼포먼스 오버헤드 양과 저장된 .utrace 파일의 크기를 제한하여 컴퓨터 디스크 공간을 절약할 수 있습니다.
트레이스 채널을 선택한 다음에는 필터 프리셋(Filter Preset) 드롭다운 메뉴에서 사용자 프리셋 저장(Save User Preset) 을 선택하여 선택한 조합을 필터 프리셋으로 저장할 수 있습니다.
프리셋 을 활성화한 다음에는 트레이스 채널 목록 헤더에 있는 프리셋 버튼 을 클릭하여 활성화된 프리셋을 신속하게 토글할 수 있습니다.
기본적으로, 프로젝트에서 애니메이션 데이터를 트래킹하기 위해 가장 연관성이 높은 트레이스 채널을 활성화하는 프리셋 애니메이션(Animation) 필터가 있습니다. 이 애니메이션 프리셋 필터에는 오브젝트(Object), 애니메이션(Animation) 및 프레임(Frame) 트래킹이 포함되어 있습니다. 필터 프리셋 드롭다운 메뉴에서 애니메이션 을 선택하여 애니메이션 프리셋 필터를 활성화할 수 있습니다.
디버깅 및 최적화 워크플로를 위한 트레이싱 데이터 타입에 대한 자세한 내용은 언리얼 인사이트 문서를 참조하세요.
트레이스 소스 필터링
트레이스 소스 필터링을 사용하여 트레이스 데이터를 출력할 수 있는 게임플레이 오브젝트를 토글할 수 있습니다. 이 필터링은 주어진 레벨에 많은 액터 와 컴포넌트 가 있는 대규모 프로젝트를 한 번에 디버깅하거나 프로파일링할 때 특히 유용합니다. 트레이스 소스 필터링을 사용하면 트레이스 데이터를 기록하고 싶은 액터와 컴포넌트를 선택하고, 출력 정보를 체계적으로 정리하고, 퍼포먼스 오버헤드를 제한하고, 기록되는 데이터의 양을 줄여 컴퓨터 디스크 공간을 절약할 수 있습니다.
트레이스 소스 필터(Trace Source Filter) 창을 열려면, 애니메이션 인사이트 패널의 툴바에서 소스 필터(Source Filter) 버튼을 선택합니다.
클래스 필터
트레이스 소스 필터링 패널의 클래스 필터(Class Filters) 섹션에서는 프로젝트의 블루프린트 클래스(Blueprint Classes) 에 따라 필터를 생성하여 활성화된 필터만으로 트레이스 기록을 제한할 수 있습니다. 새 클래스 필터를 생성하려면 클래스 필터 섹션에서 + 필터 추가(+ Add Filter) 를 선택합니다. 그런 다음, 트레이스 데이터를 기록하려는 블루프린트나 게임 오브젝트를 선택합니다. 그러면 클래스 필터 섹션에 해당 필터가 표시됩니다.
필터를 생성한 다음에는 필요에 따라 해당 필터를 우클릭하고 파생 클래스 포함(Include derived classes) 을 선택하여 원본 게임 오브젝트 또는 블루프린트에서 파생되는 모든 다른 게임 오브젝트에 대한 트레이스 데이터를 기록하도록 필터를 활성화할 수 있습니다.
또한, 필터 제거(Remove Filter) 를 선택하여 필터를 삭제할 수도 있습니다.
사용자 필터
자신만의 커스텀 필터 블루프린트를 생성하여 트레이스 데이터를 기록할 수도 있습니다. 사용자 필터(User Filters) 섹션에서 + 필터 추가 를 선택하고 프로젝트 파일 구조에서 블루프린트를 저장하려는 위치로 이동합니다. 새 블루프린트의 이름 을 지정하고 저장(Save) 을 선택합니다. 커스텀 트레이스 컬렉션 로직 빌드에 사용할 수 있는 새 블루프린트가 생성됩니다.
커스텀 소스 필터 블루프린트를 생성한 다음에는 트레이스 소스 필터 패널의 사용자 필터 섹션에서 해당 필터를 우클릭 하면 해당 필터를 사용하여 트레이스 데이터를 기록하는 방법을 정의할 수 있는 컨텍스트 메뉴가 표시됩니다.
아래에서 컨텍스트 메뉴 옵션 목록과 그 기능에 대한 설명을 참조할 수 있습니다.
| 옵션 | 설명 |
|---|---|
| 필터 블루프린트 열기(Open Filter Blueprint) | 블루프린트 에디터(Blueprint Editor) 에서 커스텀 필터 블루프린트를 엽니다. |
| 필터 활성화됨(Filter Enabled) | 프로젝트에서 기록된 트레이스 데이터를 필터링할 때 필터의 함수 기능을 토글합니다. |
| 필터 제거(Remove Filter) | 트레이스 소스 필터 패널에서 현재 선택된 커스텀 소스 필터를 삭제 합니다. |
| AND | 커스텀 필터가 다른 사용자 필터 와 함께 작동하도록 설정합니다. |
| OR | 커스텀 필터가 다른 현재 사용자 필터 대신 작동하도록 설정합니다. |
| NOT | 커스텀 필터를 사용하여 트래킹된 오브젝트에 대한 트레이스 기록을 제외 하도록 필터를 설정합니다. |
월드 필터
월드 필터(World Filter) 섹션을 사용하여 프로젝트의 다른 레벨에 대한 트레이스 기록 컨텍스트를 설정할 수 있습니다. 트레이스 기록을 프로젝트의 에디터에서 플레이 (Play in Editor, PIE) 시뮬레이션 중에, 실제 게임 운영 중에, 그리고 에디터 컨텍스트 내에서 발생하도록 토글할 수 있습니다. 월드 타입별 필터(Filter By World Type) 프로퍼티 옆에 있는 버튼을 사용하여 이러한 각 컨텍스트에서 트레이스가 기록되도록 토글할 수 있습니다.
또한, 멀티플레이어 및 네트워크 기반 프로젝트에 대해 네트워크 운영 중에 발생하는 트레이스 기록도 제어할 수 있습니다. 월드 넷 모드별 필터(Filter by World Net Mode) 프로퍼티를 사용하여 프로젝트의 클라이언트(Client), 서버(Server) 및 독립형(Standalone) 렌더별로 필터링된 소스에 대해 트레이스 기록을 활성화할 수 있습니다.
언리얼 엔진의 트레이스 기록 월드 필터에 대한 자세한 내용은 채널 필터링 문서를 참조하세요.
애니메이션 인사이트 사용하기
애니메이션 인사이트는 내부 애니메이션 런타임 데이터를 표시하는 기존의 showdebug 애니메이션 기능을 확장합니다. 정보를 시각화하고 분석하는 기능을 통해 사용자는 애니메이션 불규칙성 또는 부적절한 퍼포먼스 행동이 발생할 수 있는 원인을 찾고 식별할 수 있습니다.
기본 showdebug 애니메이션 기능은 제한적일 수 있는데, 왜냐하면 showdebug 애니메이션 시스템은 화면에 텍스트 로그만 출력하기 때문입니다. 애니메이션 인사이트를 사용하면 사용자는 원치 않은 애니메이션 시스템 행동이 포함된 프레임 범위를 기록할 수 있으며, 기록된 데이터를 검토하면서 기록된 애니메이션 또는 게임플레이 섹션을 재생할 수 있습니다.
트레이스 소스 필터의 배열을 활성화한 다음에는 프로젝트를 실행하여 시간 경과에 따른 애니메이션 데이터 변화를 기록할 수 있습니다. 이 데이터는 트랙으로 구성되며, 이 트랙은 애니메이션 인사이트 패널의 타임라인에 가로로 계층화됩니다. 각 트랙은 고유한 데이터 세트를 표시하며, 해당하는 트레이스 소스 필터가 활성화된 경우에만 표시됩니다.
애니메이션 인사이트 툴바 메뉴의 모든 트랙(All Tracks) 버튼을 사용하여 각 트랙의 비저빌리티를 토글할 수 있습니다.
트랙 검사
애니메이션 인사이트 그래프를 사용하여 시간 경과에 따른 각 트랙의 데이터를 시각적으로 확인할 수 있습니다. 트랙을 검사하면 트랙의 숫자 데이터도 표시됩니다. 각 트랙에는 다른 데이터가 포함되어 있으므로, 각 트랙의 검사는 트랙이 모니터링하는 데이터 타입에 따라 달라집니다. 각 트랙의 왼쪽에 있는 트랙 제목을 우클릭하고 컨텍스트 메뉴에서 사용할 수 있는 확장 옵션을 선택하여 트랙에 포함된 데이터를 확장할 수 있습니다.
프로퍼티 보기(View Properties) 또는 이 그래프 보기(View this Graph) 같은 확장 옵션을 선택하면 애니메이션 인사이트 타임라인의 플레이헤드가 차지하고 있는 시점의 트랙 데이터가 포함된 보조 패널이 열립니다.
트랙 타입(Track Types)
각 애니메이션 인사이트 데이터 트랙에는 포함된 데이터 타입에 대한 연관 데이터 및 컨텍스트 데이터와 함께 연관 데이터 확장 옵션 및 프로퍼티가 포함되어 있습니다.
아래에서 일반적인 애니메이션 인사이트 트랙 목록과 트랙에 포함된 데이터에 대한 설명을 참조할 수 있습니다.
| 트랙 이름 | 설명 |
|---|---|
| 노티파이(Notifies) | 노티파이 트랙 은 트레이싱된 캐릭터의 애니메이션에 포함된 싱크 마커(Sync Markers) 및 애니메이션 노티파이(Animation Notifies) 의 현재 상태를 표시합니다. 트랙의 최상단 레인에는 애니메이션 틱 같은 프레임별 이벤트, 오디오 큐와 이펙트 같은 노티파이 이벤트, 그리고 싱크 마커가 표시됩니다. 다른 레인에는 활성 노티파이 상태가 표시됩니다. 트랙을 우클릭 하고 프로퍼티 보기(View Properties) 를 선택하여 현재 프레임의 활성 상태 노티파이를 표시할 수 있습니다. |
| 커브(Curves) | 커브 트랙 은 현재 프레임에서 활성 상태였던 모든 애니메이션 커브를 표시합니다. 트랙을 우클릭 하고 프로퍼티 보기 를 선택하여 선택한 프레임에서 활성 상태였던 커브 값의 확장된 로그를 확인할 수 있습니다. |
| 포즈(Pose) | 포즈 트랙 은 선택한 프레임의 활성 액터 포즈를 표시하거나 숨깁니다. 트랙을 우클릭 하여 선택한 프레임 동안 포즈(poses) 또는 스켈레톤(skeleton) 의 디버그 드로잉을 활성화할 수 있습니다. |
| 그래프(Graph) | 그래프 트랙 은 트레이싱된 그래프가 업데이트되는 시점을 표시하며, 해당하는 시간 간격에 수직 바로 표시됩니다. 트랙을 우클릭 하고 이 그래프 디버그하기(Debug this graph) 를 선택하여 애니메이션 블루프린트 디버거(Animation Blueprint debugger) 패널을 열고 트랙에 연결할 수 있습니다. 애니메이션 블루프린트 디버거가 열리면 타임라인을 스크럽하여 해당하는 시점의 그래프 데이터 업데이트를 확인할 수 있습니다. 애니메이션 블루프린트 디버거 패널에는 포즈 링크 웨이트, 스테이트 머신의 스테이트, 에셋 플레이어 포지션, 블렌드 스페이스 샘플 데이터가 포함되어 있습니다. 이 그래프 보기(View this graph) 를 선택하면 애니메이션 그래프의 스키매틱 트리 뷰를 확인할 수 있습니다. |
| 몽타주(Montage) | 몽타주 트랙 은 블렌드 웨이트(Blend Weights) 및 섹션(section) 스테이트와 트랜지션 데이터를 포함하여 시간 경과에 따른 애니메이션 몽타주 에셋(Montage asset) 정보를 보여줍니다. |
| 블렌드 웨이트(Blend Weights) | 블렌드 웨이트 트랙 은 프레임에서 활성 상태였던 모든 에셋과 해당 에셋의 유효한 블렌드 웨이트를 보여줍니다. 트랙을 우클릭 하여 선택한 프레임에서 그래프에 해당하는 애니메이션 블루프린트의 노드로 이동할 수 있습니다. 또한 재생 시간, 블렌드 스페이스 좌표 등의 다른 트랙 데이터도 볼 수 있습니다. |
애니메이션 인사이트 컨트롤 레퍼런스
아래에서 애니메이션 인사이트 패널 내에서 애니메이션 디버그 데이터를 관찰하면서 사용할 수 있는 단축키 및 바로가기 목록을 참조할 수 있습니다.
| 입력 단축키 | 기능 |
|---|---|
| Ctrl + 왼쪽 마우스 버튼 | 그래프 헤더에서 타임 룰러(Time Ruler) 를 스크럽하여 현재 시간을 제어함으로써 시간 경과에 따라 스키매틱 뷰에서 값을 평가하고 뷰포트에서 포즈를 애니메이팅하는 등, 다양한 작업을 할 수 있습니다. |
| G | 그래프 의 비저빌리티를 토글합니다. |
| V | 현재 뷰포트에서 타이밍 이벤트가 없는 모든 트랙을 자동으로 숨깁니다. |
| I | I/O (파일 입력) 개요 및 활동 트랙 의 비저빌리티를 토글합니다. |
| L | 에셋 로딩 트랙 의 비저빌리티를 토글합니다. |
| Y | GPU 트랙 의 비저빌리티를 토글합니다. |
| U | CPU 스레드 및 모든 CPU 스레드 그룹 트랙 의 비저빌리티를 토글합니다. |
| R | 프레임 트랙 의 비저빌리티를 토글합니다. |