PART 5 · 강의 3/3

실전 Motion Matching 셋업

블렌딩, 전이 최적화, Continuing Pose, 디버깅까지 프로덕션 레벨 Motion Matching 구축을 다룹니다.

SECTION 01

단계별 셋업 가이드

제로에서 시작하는 Motion Matching 구축 절차

셋업 순서
1. 플러그인
2. Schema
3. Normalization
4. Database
5. Trajectory Comp
6. AnimBP
단계별 상세
// Step 1: 플러그인 활성화 // Edit → Plugins → "Pose Search" 활성화 // Edit → Plugins → "Motion Trajectory" 활성화 // 에디터 재시작 // Step 2: PoseSearchSchema 생성 // Content Browser → 우클릭 → Animation → Pose Search Schema // - Skeleton 설정 // - Pose Channel: foot_l, foot_r (Position + Velocity) // - Trajectory Channel: History 3 samples, Prediction 4 samples // Step 3: PoseSearchNormalizationSet 생성 // Content Browser → 우클릭 → Animation → Pose Search Normalization Set // - Schema 참조 // - Normalization Database에 DB 연결 (자동 계산) // Step 4: PoseSearchDatabase 생성 // Content Browser → 우클릭 → Animation → Pose Search Database // - Schema 참조 // - AnimSequence 추가: Walk, Run, Turn_L/R, Start, Stop 등 // - Build Index (저장 시 자동) // Step 5: 캐릭터 BP에 CharacterTrajectoryComponent 추가 // - History/Prediction 설정은 Schema와 맞춤 // Step 6: AnimBP에 Motion Matching 노드 추가 // - Database or Chooser 연결 // - Inertialization Deactivate 노드 추가 (블렌딩용)
SECTION 02

블렌딩과 Continuing Pose

포즈 전환 품질을 높이는 블렌딩 전략

Inertialization

Motion Matching의 기본 블렌딩 방식. 이전 포즈의 관성을 유지하면서 새 포즈로 전환합니다. 전통적 크로스페이드보다 비용이 낮고 더 자연스럽습니다.

Continuing Pose Bias

현재 재생 중인 애니메이션을 계속 재생하는 데 보너스를 부여합니다. 불필요한 포즈 전환을 줄여 안정성을 높입니다.

Search Throttle

매 프레임 DB 검색 대신, N 프레임마다 검색을 수행하여 CPU 비용을 절감합니다. 일반적으로 2~4 프레임 간격이 적합합니다.

Interrupt Mode

새 포즈로 전환할 최소 Cost 차이 임계값. 현재 포즈와의 Cost 차이가 임계값 미만이면 전환하지 않습니다.

최적 설정값 가이드
// Motion Matching 노드 권장 설정 // Continuing Pose Bias ContinuingPoseCostBias = 0.15f; // 0.0: 매 프레임 최적 포즈로 전환 (떨림 심함) // 0.1~0.2: 밸런스 (권장) // 0.5+: 전환 매우 드물 (반응 느림) // Search Throttle SearchThrottle = 2; // 2프레임마다 검색 // 60fps에서 30회/초 검색 → 성능 절감 // Inertialization Half-Life BlendHalfLife = 0.15f; // 초 // 포즈 전환 시 관성 감쇄 시간 // 짧을수록 빠른 전환, 길수록 부드러운 전환 // Minimum Cost to Interrupt MinCostToInterrupt = 0.05f; // 현재 포즈 대비 이만큼 이상 좋은 포즈가 있을 때만 전환
SECTION 03

최적화 전략

프로덕션 환경에서의 Motion Matching 성능 최적화

최적화 기법 효과 트레이드오프
DB 분리 (Chooser) 검색 공간 축소 DB 간 전환 시 블렌딩 필요
Search Throttle 검색 빈도 감소 (50-75%) 반응 지연 (1~2 프레임)
LOD 기반 비활성화 먼 캐릭터 MM 비활성화 먼 거리에서 품질 저하
피처 수 최소화 피처 벡터 차원 감소 매칭 정확도 감소
애니메이션 프루닝 블렌드 구간 제거로 DB 축소 일부 전이 품질 저하
LOD 기반 폴백

멀리 있는 캐릭터는 Motion Matching 대신 전통적 BlendSpace + State Machine으로 폴백합니다. SignificanceManager와 연동하여 화면 크기가 임계값 이하이면 간단한 로코모션으로 전환하고, 가까워지면 다시 Motion Matching을 활성화합니다.

SECTION 04

디버깅과 시각화

Motion Matching 디버깅 도구와 문제 해결 가이드

디버깅 명령어
// 콘솔 명령어 // Motion Matching 시각화 a.PoseSearch.DrawDebug 1 // → 현재 쿼리 포즈, 선택된 DB 포즈, 궤적을 화면에 표시 // 검색 통계 a.PoseSearch.DrawDebugStats 1 // → Cost 값, 검색 시간, 선택된 애니메이션 이름 표시 // Rewind Debugger // 에디터에서 Animation → Rewind Debugger 활성화 // → Motion Matching 결정을 프레임별로 되감기하며 분석 // Unreal Insights // -trace=PoseSearch 옵션으로 실행 // → 프로파일링 데이터 수집

문제: 떨림(Jitter)

포즈가 너무 자주 전환됩니다. Continuing Pose Bias를 높이거나, MinCostToInterrupt를 높여 전환 빈도를 줄이세요.

문제: 반응 지연

방향 전환이 느립니다. Trajectory Weight를 높이고, Continuing Pose Bias를 낮추세요. 애니메이션에 Turn 동작을 추가하면 도움이 됩니다.

문제: 발 미끄러짐

포즈 전환 시 발이 미끄러집니다. Foot Placement 노드를 추가하고, Inertialization 블렌딩 시간을 조절하세요.

문제: 부적절한 포즈 선택

상황에 맞지 않는 애니메이션이 재생됩니다. DB를 Chooser로 분리하거나, Tag 필터링을 활용하여 후보를 제한하세요.

SUMMARY

핵심 요약

  • 셋업 순서: 플러그인 → Schema → Normalization → Database → Trajectory Component → AnimBP
  • Inertialization이 Motion Matching의 기본 블렌딩 방식이며, Continuing Pose Bias로 전환 빈도를 조절한다.
  • Search Throttle, DB 분리, LOD 폴백으로 프로덕션 성능을 최적화한다.
  • Rewind Debuggera.PoseSearch.DrawDebug로 Motion Matching 결정을 시각적으로 분석한다.
  • 떨림/지연/미끄러짐 문제는 Cost 가중치, Continuing Bias, Foot Placement 조합으로 해결한다.
PRACTICE

도전 과제

배운 내용을 직접 실습해보세요

실습 1: Continuing Pose 설정

Motion Matching 노드에서 Continuing Pose Cost Bias를 조절하여 포즈 전환 빈도를 제어하세요. 값을 낮추면 더 자주 전환, 높이면 현재 포즈 유지 경향이 강해집니다. 다양한 값에서의 시각적 품질과 끊김을 비교하세요.

실습 2: 블렌딩과 전이 최적화

Motion Matching에서 포즈 전환 시 Blend Time을 0.1초, 0.2초, 0.3초로 설정하며 시각적 차이를 비교하세요. Inertialization 블렌딩을 적용하여 관절 오버슈팅 없이 부드러운 전환이 이루어지는지 확인하세요.

심화 과제

10종 이상의 애니메이션(걷기, 달리기, 8방향 스트레이프, 시작/정지)을 Database에 등록한 프로덕션 레벨 Motion Matching을 구축하세요. Rewind Debugger로 매칭 결과를 프레임별로 분석하고, Cost 함수를 튜닝하여 최적의 품질을 달성하세요.