언리얼엔진 5.7로 GASP를 적용해 보자
지난 글에서는 언리얼엔진의 샘플 프로젝트인 GASP가 어떠한 방식으로 구현되어 있는지 파악해 보았다. GASP는 기존에 트리를 기반으로 작성하던 애님 그래프에서 벗어나 예측을 기반으로 플레이어 캐릭터의 이동 경로를 계산하고 그 계산 값을 토대로 적절한 애니메이션을 현재 캐릭터의 모션을 기반하여 적절한 프레임에서 재생하게끔 되어있어 부드러운 애니메이션 전환이 가능하고 우리는 그중에서 캐릭터의 이동 경로를 계산하는 컴포넌트인 Trajectory Component를 직접 구현해 보았다.
사실 이를 직접 캐릭터 블루프린트에 적용해서 애니메이션까지 적용되게 애니메이션 데이터 에셋과 스키마를 만들었으나 MotionMatching노드가 엔진에 기본적으로 장착된 TrjectoryComponent를 받게끔 되어있어 커스텀 MotionMatching 노드를 별도로 만들어서 이어야 하는 대공사를 해야 되기에 이는 나중으로 미루고 오늘은 최종 프로젝트에 사용하게 될지도 모르는 언리얼 엔진 5.7 버전으로 Blank프로젝트를 생성 직접 캐릭터 클래스를 생성해 해당 클래스에 GASP의 애니메이션을 적용하는 공부를 해보려고 한다.
프로젝트 생성과 마이그레이션
일단 익숙한 방식으로 프로젝트를 생성해 주고 GASP에서 필요한 플러그인 들(Pose Search, Animation Locomotion Library 등)을 활성화 해준다음 GASP 5.7 버전 프로젝트에서 핵심이 되는 BP를 마이그레이션 해주면 해당 블루프린트에 사용된 모든 에셋이 같이 딸려오게 된다.

여기서 주목해야 할 점은 SandBoxCharacter의 버전이 CMC와 Mover로 2가지 존재한다는 점이다. CMC는 우리가 익히 사용했던 CharacterMovementComponent이고 Mover는 5.7 버전 들어 새롭게 추가된 실험적인 플러그인으로 CMC를 대체하기 위해 만들어졌다. 둘의 차이는 간단히 요약하면 클라이언트가 주체인 CMC와 서버가 주체인 Mover로 구별할 수 있는데 Mover는 CMC보다 멀티 친화적이라고 볼 수 있다. 우리는 멀티플레이 게임을 만들 것이 아니기 때문에 일단 CMC 버전의 SandBoxCharacter_CMC만 마이그레이션 하도록 하자.
GCharacterBase C++ 클래스 생성
Character클래스를 상속받는 PlayerCharacter의 기반이 될 GCharacterBase를 생성해 주고 캐릭터가 공통으로 갖게 될 요소들(이동, 카메라 회전 등)을 작성해 준 뒤 앞에서 마이그레이션 한 SandBoxCharacter_CMC의 부모 클래스로 변경해 준다.
'unreal 5기' 카테고리의 다른 글
| 260115 언리얼엔진 본캠프 109일차 GASP(4) MotionMatching (1) | 2026.01.15 |
|---|---|
| 260114 언리얼엔진 본캠프 108일차 GASP(3) (0) | 2026.01.14 |
| 260107 언리얼엔진 본캠프 103일차 GASP(1) (0) | 2026.01.07 |
| 251226 언리얼엔진 본캠프 96일차 멀티플레이 팀프로젝트8 (0) | 2025.12.26 |
| 251222 언리얼엔진 본캠프 93일차 멀티플레이 팀프로젝트7 (0) | 2025.12.22 |