MotionMatching과 PoseSearch
지난 시간에는 GASP의 애셋을 활용하여 Aim의 여부에 따라서 이동 애니메이션이 다르게 적용되게끔 하였다. 이는 플레이어의 입력의도를 파악하고 ChooserTable을 통해서 상황에 적합한 PoseSerachDatabase을 선택해 애니메이션을 재생하기 때문에 가능한 것이다. 이는 앞서 프로젝트를 생성하는 단계에서 활성화한 플러그인인 PoseSearch와 Chooser에 의해서 가능한 작업인데 오늘은 PoseSearch에 대해서 공부해 보았다.
PoseSearch를 직접 이용해 보자
이번에는 GASP의 에셋이 아닌 Blank템플릿으로 새로 생성한 C++프로젝트에서 간단하게 캐릭터 애니메이션을 PoseSearch플러그인을 활용해서 구현해보려고 한다. 간단하게 Character클래스를 생성해 주고 스프링암, 카메라, 인풋 등 필수적인 요소를 작성하고 BP_ProjectMCharacter를 만들어 주었다.

여기서 우리가 하고자 하는 일의 핵심은 바로 Character Trajectory이다. BP내부의 컴포넌트 패널에서 add를 눌러 해당 컴포넌트를 추가해 주자

자 이제 우리는 애니메이션 블루프린트를 생성해야 한다. 이 애니메이션 블루프린트에 사용될 애니메이션들은 GASP의 애니메이션 폴더의 애니메이션 시퀀스만 가져와서 활용해보려고 한다. 여기까지는 항상 언리얼 프로젝트를 진행하면서 캐릭터 담당이라면 자주 해왔을 작업 방식일 것이다. 하지만 이제부터는 조금 다르다 기존에는 ABP의 애님 그래프에서 각 상황별 트리를 연결하면서 애니메이션을 구성하였다면 우리에게는 PoseSearch라는 강력한 도구가 존재한다.
일단 Schema부터 생성해 주도록 하자. 콘텐츠 브라우저에서 우클릭 > 애니메이션 > 모션매칭 > 포즈 서치 스키마를 선택해 생성해 주도록 하자 스켈레톤은 우리가 사용할 SK_Mannequin으로 지정해 주고 별다른 값은 설정해주지 않는다.

이제 PSD를 생성해 주자. 콘텐츠 브라우저 우클릭 > 애니메이션 > 모션매칭 > 포즈 셔츠 데이터베이스를 선택해 준다. 이 Pose Serach Dadabase가 바로 핵심이라 할 수 있다.

PSD를 생성할 때 미리 생성했던 스키마를 지정해 주면 된다. 그다음 더블클릭으로 PSD내부로 들어와 준다. Asset List에 우리가 사용할 애니메이션을 모두 넣어준다. 우리는 Idle 상태와 Stand_Run과, Stop을 넣어 가만히 서있고, 달리기 시작하고, 멈추는 애니메이션 만 넣어보도록 해보자 넣을 때는 해당 애니메이션 시퀀스를 드래그해서 리스트에 놓으면 된다.


이제 Pose Search NormalizeSet을 생성해 주자 콘텐츠 브라우저 우클릭 > 애니메이션 > 모션매칭 > 포즈 서치 노멀라이즈 셋 생성 이 노멀라이즈 셋은 추후에 여럿 PSD들을 생성하면 이를 묶어서 관리할 수 있는 에셋이다 일단 우리는 하나만 만들었으니 PSD_Locomotion만 등록해 준 뒤 PSD의 디테일 창에서도 노멀라이즈 셋을 등록해 주도록 하자.
재료 손질은 끝났으니 ABP의 차례이다.
자 이제 ABP로 돌아가서 이벤트 크래프 탭을 눌러준다음 해당 폰의 Owner를 가져와 BP_ProjectMCharacter로 캐스팅해 준 후 해당 캐릭터의 CharacterMovement와 CharacterTrajectory를 가져와 변수로 승격해 주도록 하자

그다음 애님 그래프로 넘어와 MotionMaching노드와 Pose History노드를 가져와 MotionMatching의 데이터 베이스에는 우리가 만든 PSD_Locomotion을 넣어주고 Pose History에는 변수에 우클릭하여 바인드를 Charater Trajectory로 설정해 준 다음 연결해 주면 된다.

자 이제 컴파일 후 게임을 실행해 주면!
하나의 PSD에 수많은 애니메이션 시퀀스를 때려 박아 조금 조잡하지만 그럴싸하게 움직이는 것을 확인할 수 있다. 내일은 PSD에 몰아넣는 것이 아닌 여러 PSD를 생성한 후 Chooser를 통해서 적절한 PSD를 서칭 하는 방법을 공부해서 GASP에 가까운 무언가를 만들어 보려고 한다.
'unreal 5기' 카테고리의 다른 글
| 260120 언리얼엔진 본캠프 111일차 GASP(6) ChooserTable-2 (0) | 2026.01.20 |
|---|---|
| 260116 언리얼엔진 본캠프 109일차 GASP(5) ChooserTable-1 (1) | 2026.01.16 |
| 260114 언리얼엔진 본캠프 108일차 GASP(3) (0) | 2026.01.14 |
| 260113 언리얼엔진 본캠프 107일차 GASP(2) (0) | 2026.01.13 |
| 260107 언리얼엔진 본캠프 103일차 GASP(1) (0) | 2026.01.07 |