-
[Unreal] 언리얼 모션 매칭 Motion Matching #4 - Rewind Debugger, Chooser Table 디버깅쾌락없는 책임 (공부)/Unreal 2025. 7. 4. 14:24반응형
지금까지 모션 매칭과 관련한 여러 개념들을 보았습니다. 모든 기능을 알아본건 아니지만 간단하게 알아보았고 GameAnimationSample을 자세히 보면 대부분의 기능을 이해할 수 있게 됩니다. 다만 저 개인적으로는 기존의 ABP에서의 스테이트머신과는 달라 왜 해당 애니메이션이 나오는지 알기 어려웠습니다. 때문에 관련하여 에픽에서 준비한 디버깅 툴들이 있어 간단하게 글을 써보려고 합니다.
설치 플러그인

Chooser Table 용 
Rewind Debugger 용 Chooser Table 디버깅

일단 어떤 PSD 들이 선택되었는지를 알기 위해서는 Chooser Table을 봐야 합니다. 위 사진처럼 테이블의 위 ‘Debug Target’을 누른 뒤 원하는 ABP를 누르면 됩니다. 여기서 Preview는 추후 소개할 리와인드 디버거의 객체이거나 레벨에 배치된 객체들이 대부분입니다.
디버그 타겟을 지정하면 현재 어떠한 결과가 도출되는지 실시간으로 볼 수 있게 됩니다. 다만 Nested Chooser를 넣은 경우 실제로 출력되는 PSD를 보기까지 힘드니 추후 나오는 리와인드 디버거와 함께 사용하면 좋습니다.Rewind Debugger

개인적으로 언리얼에서 디버거로 낸 것들 중 대부분을 잘 활용하지 못했는데 해당 리와인드 디버거는 참 물건인 것 같습니다. 애니메이션 한정으로 디버깅 하기가 참 좋은 것 같다는 생각이 들 정도입니다.
Chooser Table 과 동일하게 왼쪽 위 액터 목록에서 원하는 타겟을 지정하면 녹화가 가능합니다. 플레이가 끝나면, 또는 녹화를 끝내면 일단 저장되고 위 움짤처럼 동영상처럼 재생할 수 있습니다. 이상한 애니메이션이 나왔다면 해당 시점으로 커서를 옮겨 어떤 애니메이션이 나왔는지 볼 수 있습니다. 또한 위에서 언급한 대로 Chooser Table에서 디버그 타겟을 설정했다면 리와인드 디버거에서 커서를 옮기면 해당 시점의 Chooser Table 상태가 나오게 됩니다. 이 경우 Nested로 설정해도 디버깅하기 편해집니다.
리와인드 디버거 켜는 법
출처 : 에픽게임즈 공식 독스
리와인드 디버거로 애니메이션보는 법디버거를 활용하면 일단 해당 시점에 어떤 애니메이션들이 어떤 식으로 재생되고 있는지 알 수 있습니다. 현재커서에 재생 중인 애니메이션들이 창에 보이며 이들은 Value 가 1이면 해당 애니메이션이 정말 재생되고 있는 거고 그 이하는 비율에 맞게 블랜딩 되고 있다는 뜻입니다.
사용 예시

저같은 경우 간혼 모션 매칭에서 애니메이션이 나오지 않았다는 오류가 발생했습니다. 해당 오류는 에디터에서 플레이가 종료되면 나오며 모션 매칭을 위해 탐색된 데이터베이스가 0개일 때 나오는 문제라 고쳐야 하는 문제였습니다.
해당 상황을 다시 재현한 뒤 리와인드 디버거를 이리저리 움직이면서 Chooser Table을 함께 보았습니다. 바로 위 경우, 캐릭터가 멈출 때 IsMoving은 아닌데 속도는 그대로 남아 위처럼 모션 매칭에 넣는 PSD 가 없게 됩니다. 리와인드 디버거 덕분에 저 찰나를 찾아낼 수 있었죠. 이후 Idle에 멈추는 애니메이션이 있기에 Stand Idles의 Ground Speed의 최댓값을 무한대로 풀어주면서 해결할 수 있게 되었습니다.반응형'쾌락없는 책임 (공부) > Unreal' 카테고리의 다른 글
[Unreal] 언리얼 애니메이션 본 위치 옮기기 (0) 2025.07.20 [Unreal] Game Animation Sample Project 의 Attach 본을 넣기 (2) 2025.07.14 [Unreal] 언리얼 모션 매칭 Motion Matching #3 - Trajectory (0) 2025.07.04 [Unreal] 언리얼 모션 매칭 Motion Matching #2 - Chooser Table (3) 2025.06.29 [Unreal] 언리얼 모션 매칭 Motion Matching #1 - Motion Matching 의 기본 요소 (1) 2025.06.28