5.4버전에 모션 매칭을 플러그인으로 쉽게 사용할 수 있게 되어 한 번 사용해 보고 사용 방법을 정리해 보았다.
아래 영상을 참고하였다.
모션 매칭(Motion Matching)?
언리얼에서의 모션 매칭이 정리된 문서가 있어 그것을 보면 좋을 것 같다.
https://dev.epicgames.com/documentation/en-us/unreal-engine/motion-matching-in-unreal-engine
Motion Matching In Unreal Engine | Unreal Engine 5.4 Documentation | Epic Developer Community
Use Motion Matching to create responsive animation systems, that select animation poses from a database, to match a dynamic system query at runtime in U...
dev.epicgames.com
쉽게 말하면 스테이트 머신을 사용하지 않고 캐릭터의 현재 상태를 기반으로 하여 다량의 애니메이션이 저장되어 있는 데이터베이스에서 현재 상태에 맞는 애니메이션을 선택하는 것 이라고 할 수 있다.
언리얼에서의 모션 매칭이라고 해서 다를 건 없는 것 같다.
플러그인 설치
Motion Trajectory와 Pose Search 플러그인을 설치한다.
그리고 플러그인 윈도우 밑에 나온 재시작 버튼을 누리고 프로젝트를 다시 시작한다.
애니메이션 설치
언리얼이 2 ~ 300개의 애니메이션을 제공해준다고 했지만 이 글을 쓰는 시점에서는 아직 제공하지 않는다.
그래서 아래 에셋에서 애니메이션만 뽑아왔다.
https://www.unrealengine.com/marketplace/en-US/product/lyra
Pose Search Schema
Animation > Motion Matching > Pose Search Scema를 생성한다.
스켈레톤은 임포트한 애니메이션의 스켈레톤을 사용했다.
에셋을 열어보면 이런 창이 뜬다.
정확히는 무엇을 하는 친구인지는 아직 모르겠지만 애니메이션 선택에 필요한 변수들을 설정하는 것 같다.
Pose Search Database
Animation > Motion Matching > Pose Search Database를 생성한다.
방금 생성한 Pose Search Scema를 선택하여 생성한다.
선택될 애니메이션을 저장하는 데이터베이스 에셋이다.
생성한 후 모든 애니메이션들을 선택하고 Asset Actions > Edit Selection in Property Matrix를 해준다.
여러 에셋들의 프로퍼티를 한 번에 설정할 수 있는 기능이다.
모든 에셋을 선택하고 EnableRootMotion, Force Root Lock을 켜준다.
생성한 Pose Search Database를 열어주고 Asset List에 애니메이션을 넣어준다.
Animation Blueprint
Pose Search Scema를 생성할 때 선택한 스켈레톤으로 생성한다.
Motion Matching노드를 생성하고 만들어준 Pose Search Database를 설정해준다.
Pose History 노드를 생성하고 연결한다.
Character Trajectory
ThirdPerson > Blueprints > BP_ThirdPersonCharacter를 선택하고 Character Trajectory 컴포넌트를 추가한다.
이것을 Pose History노드에 설정하여 캐릭터의 움직임 방향을 읽어와 애니메이션을 선택하게 할 것이다.
생성한 애니메이션 블루프린트
BP Third Pserson Character, Character Trajectory는 우클릭하여 Promote to Variable로 따로 빼준다.
Pose History에 Character Trajectory를 설정한다.
Character Movement
BP_ThirdPersonCharacter의 Character Movement의 회전 설정을 아래처럼 하여 캐릭터가 카메라 방향을 바라보게 한다.
결과물
애니메이션이 부자연스럽다.
여러 프로퍼티들을 설정하면서 자연스럽게 만드는 작업이 필요하겠지만 근본적으로 애니메이션이 부족하여 부자연스러운 것 같다. 언리얼에서 애니메이션을 제공할 때 다시 시도해야 할 것 같다.
'UE5' 카테고리의 다른 글
[UE5] 콜리전 감지 (0) | 2024.06.22 |
---|---|
[UE5] Behavior Tree (0) | 2024.06.22 |
[UE5] 컴포넌트 (0) | 2024.06.09 |
[UE5] Animation Retargeting (0) | 2024.06.03 |
[UE5] Enhanced Input (0) | 2024.06.03 |