포즈 서치(Pose Search) 플러그인은 언리얼 엔진에서 모션 매칭(Motion Matching) 시스템을 편집하고 조정하는 데 사용할 수 있는 디버깅 툴세트 및 옵션 세트가 함께 패키지로 제공됩니다. 또한, 이 플러그인에는 녹화된 게임플레이 세그먼트 동안 모션 매칭 노드의 포즈 선택을 관찰하도록 설계된 커스텀 리와인드 디버거 구현 기능도 포함되어 있습니다.
전제조건
- 포즈 서치 플러그인을 활성화해야 합니다. 메뉴 바(Menu Bar)의 편집(Edit) > 플러그인(Plugins) 으로 이동하여 애니메이션(Animation) 섹션에서 포즈 서치(Pose Search) 플러그인을 찾거나 검색창을 사용합니다. 플러그인을 활성화 하고 에디터를 재시작합니다.
- 애니메이션 인사이트 플러그인 메뉴 바(Menu Bar)의 편집(Edit) > 플러그인(Plugins) 으로 이동하여 애니메이션 섹션에서 애니메이션 인사이트(Animation Insights) 플러그인을 찾거나 검색창을 사용합니다. 플러그인을 활성화 하고 에디터를 재시작합니다.
- 모션 매칭 노드를 사용하여 해당 애니메이션 블루프린트(Animation Blueprint)를 구동하는 캐릭터 블루프린트가 있어야 합니다.
커스텀 리와인드 디버거 구현
리와인드 디버거는 디버깅 툴이자 최적화 툴로, 게임플레이 세그먼트를 녹화한 다음 녹화된 내용을 재생하여 애니메이션 시스템의 동작을 더 잘 관찰하는 데 사용할 수 있습니다. 포즈 서치 플러그인은 모션 매칭 포즈 섹션 및 값을 추적하는 커스텀 리와인드 디버거 툴세트와 함께 패키지로 제공되며, 이를 관찰하여 어떤 포즈가 왜 선택되었는지 더 잘 이해할 수 있습니다.
모션 매칭 시스템과 함께 리와인드 디버거를 사용하려면 메뉴 바에서 툴(Tools) > 디버그(Debug) > 리와인드 디버거(Rewind Debugger) 및 리와인드 디버거 디테일(Rewind Debugger Details) 로 이동하여 리와인드 디버거 및 리와인드 디버거 디테일 패널을 엽니다.
게임플레이 섹션을 녹화한 다음에는 모션 매칭 시스템이 녹화한 내용을 재생하면서 실시간으로 선택하는 것을 관찰할 수 있습니다. 모션 매칭 선택 테이블을 확인하려면 애니메이션 스키마에서 모션 매칭 시스템을 사용하고 있는 캐릭터를 스포이트 툴로 선택합니다.
캐릭터를 선택한 다음에는 리와인드 디버거 아웃라이너가 해당 액터의 다양한 컴포넌트 및 에셋으로 채워집니다. 애니메이션 블루프린트 트랙을 펼친 다음 포즈 서치(Pose Search) 트랙을 펼쳐 다양한 애니메이션 선택 및 각 애니메이션의 재생에 해당하는 가중치를 관찰합니다. 또한, 포즈 서치 트랙을 선택할 때 리와인드 디버거 디테일(Rewind Debugger Details) 패널에서 모션 매칭 선택 테이블(Motion Matching Selection Table)을 관찰할 수도 있습니다.
모션 매칭 선택 테이블
리와인드 디버거 디테일(Rewind Debugger Details) 패널에는 몇 개의 탭이 있는데, 이러한 탭에는 모션 매칭 시스템 선택 기준과 관련된 유용한 정보와 데이터가 포함되어 있습니다. 이러한 탭을 사용하여 모션 매칭 시스템이 특정 포즈를 선택한 이유를 관찰할 수 있습니다. 활성 포즈(Active Pose) 탭에는 타임라인에서 리와인드 디버거가 설정된 순간을 기준으로 현재 활성화된 포즈가 표시됩니다. 지속 포즈(Continuing Pose) 탭에는 다음으로 선택되는 애니메이션이 나열됩니다. 활성 포즈 탭과 지속 포즈 탭의 선택을 비교하면 런타임 중에 포즈가 교체되는 시기와 이유를 관찰하는 데 유용할 수 있습니다. 마지막으로 포즈 후보(Pose Candidates) 탭에는 연결된 데이터베이스 에셋에서 선택될 수 있는 나머지 포즈가 나열됩니다.
각 탭에는 모션 매칭 시스템이 포즈를 선택할 때 고려하는 다양한 선택 요소와 관련된 값이 포함되어 있습니다. 리와인드 디버거 디테일 패널에서는 포즈 선택에 더 유리한 요소에 따라 이러한 값에 색상이 지정됩니다. 히트맵은 가장 이상적인 값과, 그에 따라 선택 가능성이 높은 포즈를 보여줍니다. 녹색 값은 추적된 모든 값 타입에서 선택 가능성이 높은 값을 나타내고, 빨간색 값은 선택 가능성이 낮은 값을 나타냅니다. 회색 값은 완전히 무시될 포즈 선택을 나타냅니다. 모션 매칭 시스템은 전체 카테고리에 걸쳐 가장 유리한 애니메이션 선택을 찾으려고 시도합니다.
다음은 전형적인 모션 매칭 구성에서 고려되는 값 목록입니다.
| 값 | 설명 |
|---|---|
| 데이터베이스(Database) | 선택 포즈가 포함된 포즈 서치 데이터베이스 에셋을 나열합니다. |
| 에셋(Asset) | 현재 활성 포즈 설정에 사용하고 있는 애니메이션 에셋을 나열합니다. |
| 비용(Cost) | 선택에 소요되는 일반화된 퍼포먼스 비용 값을 나열합니다. 패널 상단의 채널 분석(Channels Breakdown) 프로퍼티를 활성화하면 일반 비용 값 계산에 사용되는 다양한 요소를 더 광범위하게 분석합니다. |
| 궤적 합계(Trajectory Total) | 선택 포즈가 쿼리 시스템과 얼마나 일치하는지 보여주는 값을 나열합니다. |
| 포즈 합계(Pose Total) | 선택 포즈가 현재 활성 포즈와 얼마나 일치하는지 보여주는 값을 나열합니다. 이 값은 현재 활성 포즈에서 선택 포즈로 전환하는 것이 얼마나 어려운지를 나타냅니다. |
| 바이어스(Bias) | 모션 매칭 시스템이 포즈 선택에 얼마나 많은 바이어스를 적용하고 있는지 보여주는 값을 나열합니다. 양의 값은 선택될 가능성이 더 높음을, 음의 값은 선택될 가능성이 더 낮음을 의미합니다. |
| 프레임(Frame) | 선택한 에셋에서 현재 활성 포즈가 사용하고 있는 프레임을 나열합니다. |
| 미러(Mirror) | 선택한 포즈를 달성하기 위해 에셋을 미러링할지 여부를 나열합니다. 값이 0 이면 포즈가 미러링되지 않음을, 값이 1 이면 포즈가 미러링됨을 의미합니다. |
| 루프(Loop) | 재생 중 에셋을 루프로 설정할지 여부를 나열합니다. 값이 0 이면 포즈가 루핑되지 않음을, 값이 1 이면 포즈가 루핑될 수 있음을 의미합니다. |
| 플래그(Flags) | 모션 매칭 시스템이 포즈 선택에 할당한 모든 플래그를 확인할 수 있습니다. 이러한 플래그를 사용하여 포즈가 선택될 가능성을 높이거나 낮출 수 있으며, 완전히 무시되게 할 수도 있습니다. 디폴트 환경설정에 할당된 일반적인 플래그는 PoseReselectHistory 인데, 이는 해당 포즈가 최근에 사용되었으며 더 많은 포즈가 선택될 때까지 시스템이 이 포즈를 무시한다는 뜻입니다. |
또한 전체 비용 또는 비용 차이의 원인이 되는 구체적인 요소에 대한 전체 분석을 포함하도록 나열 값을 확장할 수도 있습니다. 채널 분석(Channel Breakdown) 을 선택하면 비용 출력 내에서 채널을 세분화하여 프레임 비용의 원인에 대한 전체 분석을 확인할 수 있습니다.
리와인드 디버거 디테일 패널에서 포즈를 선택하여 다양한 포즈 선택에 대한 디버그 드로잉을 관찰할 수 있습니다. 선택한 포즈의 스켈레톤은 각각의 이상적인 캐릭터 궤적과 함께 뷰포트에 렌더링됩니다.
