게임을 할 때 은근히 유저가 신경쓰는 요소들이 있다. UI, 효과음, 모션 등이 그것이다.
이 글에서는 그 중 모션, 즉 애니메이션에 대해서 살펴보려고 한다.
그리고 직접 만드는 것이 아닌, 잘 만들어져있는것을 사용하는 것에 초점을 둘 것이다.
고퀄리티의 애니메이션을 위해서 무엇이 필요할까?
애니메이션 에셋
먼저 애니메이션 시퀀스, 즉 애니메이션 에셋이 필요할 것이다. 애니메이션 시퀀스는 스켈레탈 메시에서 재생할 수 있는 애니메이션으로, 스켈레톤의 본 위치, 회전, 스케일 값을 나타내는 키 프레임이 들어가 있어 이를 이용해 캐릭터의 애니메이션을 재생한다.
애니메이션 에셋은 에픽 게임즈의 마켓플레이스 또는 Mixamo에서 구할 수 있다.
이 둘의 차이는 뭘까?
마켓플레이스
마켓플레이스의 에셋들은 언리얼 엔진에서 사용한다는 가정하에 만들어져있기 때문에, 스켈레톤 메시의 본 이름이나 구조를 변경하지 않아도 엔진에서 사용할 수 있게끔 되어있다. 인간형 캐릭터와 애니메이션이라면 리타게팅을 굳이 안해도 에디터에서 좀만 변경해주면 즉시 사용 가능하다.
단점으로는 고퀄리티의 에셋은 유료이며 대부분 비싸다. 하지만 무료 컨텐츠도 좀 있고 에픽 게임즈가 제공하는 에픽 게임즈 컨텐츠도 있기 때문에, 살펴보고 만족할 만한 수준이면 사용할 것을 추천한다.
Mixamo
mixamo는 Adobe에서 제공하는 무료 캐릭터, 애니메이션 에셋 사이트다. 로그인만 하면 사이트에서 제공하는 에셋을 전부 무료로 사용할 수 있다. 종류도 꽤 많기 때문에 찾는 것의 대부분은 거의 다 있을 것이다.
단점도 있는데, 언리얼에서 사용하려면 리타게팅을 거쳐줘야한다. 또 몇몇 애니메이션은 애니메이션 자체에서 Root Bone이 움직이기 때문에 애초에 다운로드받을 때 In place 옵션 체크박스를 체크해주거나 블렌더 등의 프로그램에서 직접 수정해줘야한다. 수정하는 툴 자체도 찾아보면 나오긴 하지만, mixamo의 모든 캐릭터의 메시에서 올바르게 수정되지는 않는 것 같다.
정리하자면, 마켓플레이스는 호환성과 편의성은 높지만 유료이고 Mixamo는 호환성은 낮지만 무료라는 점이다.
상황에 맞게 잘 사용하면 되겠다. 하지만 나는 이 두 가지로도 만족할 수 있는 에셋을 찾지 못했고, 우연히 찾은 에셋이 하나 더 있다.
Advanced Locomotion System
그것은 바로 Advanced Locomotion System v4, ALS라고도 불리는 것이다. 100% 블루프린트로 되어있고 멀티플레이어에 사용 불가능하다고 나와있지만 아주 감사하고 다행스럽게도 능력자분들이 C++로 좀 더 개선된 버전을 github에 올려놓으셨다. 심지어 멀티플레이어도 지원한다. 여기서 에셋만 다운받아 사용해도 된다.
이렇게 애니메이션 에셋을 구했다면 애니메이션 블루프린트를 통해 애니메이션을 올바르게 재생해줘야 할 것이다.
개인적으로 마켓플레이스를 적극적으로 활용하는 것이 마음이 편하다.
애니메이션 블루프린트
단순히 캐릭터가 이동, 점프만 한다면 쉽겠지만, 캐릭터가 여러 가지 무기를 장착할 것이고 그에 따라 다른 애니메이션을 재생해줘야 한다면? 아무리 애니메이션 스테이트를 잘 정리해준다고 해도 필히 복잡하고 거대해질 것이다. 따라서 이를 미연에 방지하기 위해서 관련 자료를 찾아봤다.
Lyra
언리얼 엔진 5 샘플 프로젝트로 제공하는 Lyra는 멀티플레이어 지원, Aim Offset & Turn In Place 애니메이션 예제, 여러 가지 무기에 따른 애니메이션, Linked Anim Graph를 이용한 애니메이션 블루프린트 확장성, 게임플레이 어빌리티 시스템의 활용 등이 특징이다. 공식 자료이기 때문에 이러한 엔진의 기능을 적극적으로 사용한다면 매우 좋겠지만... 이해하고 쓰는게 쉽지는 않다. 방대해지는걸 피하기 위해 오히려 여기저기 흩뿌려놓은 느낌이기 때문이다.
Paragon
에픽 게임즈에서 무료로 제공하는 에셋으로, 캐릭터마다 애니메이션 블루프린트가 포함되어있다. Aim Offset, Foot IK, Upper body와 Locomotion의 Blending Pose가 구현되어있다. 규모도 작은 편이기 때문에 캐릭터 무기 변경이나 파라곤에서 제공하는 시스템외에는 필요없는 3인칭 게임이라면 제일 적격이라고 생각한다.
Advanced Locomotion System
이동, 점프, 달리기, 앉기, 걷기외에도 래그돌이나 파쿠르, 여러가지 오버레이 모드(쌍안경, 박스, 배럴을 들고 있는 상태거나 다친 상태, 손이 묶인 상태 등)을 지원한다. 기본적인 움직임인 Locomotion에 Overlay모드를 합쳐주는 형태로 애니메이션을 재생한다. 여러가지 시스템을 넣을 생각이라면 이것을 참고해보는 것이 제일 좋은 듯 하다. 솔직히 처음 실행해보고 매우 놀랐는데, 이를 개선한 버전이 github에 있다는 점에 더더욱 놀랐다.
정리
애니메이션 에셋은 mixamo의 애니메이션을 적용시켜보고 문제가 없다면 그대로 사용하면 되고, 추가적으로 다른 애니메이션이 필요하면 마켓플레이스를 활용하자.
애니메이션 블루프린트는 단순한 기능만 필요하다면 직접 제작한다. 3인칭 게임처럼 Aim Offset, Turn In Place 등이 필요하다면 Paragon 예제를 참고해보는 것도 좋다. 여기서 더 기능이 필요하다면 Lyra나 Advanced Locomotion System을 참고해보자.
이 외에도 더 좋은 무, 유료 에셋이 있을 수도 있으니 잘 찾아보자!