Unreal Global Game Fellowship 을 하면서 에픽 게임즈 멘토 분께 UE ContentExamples
프로젝트를 한번 봐보라는 조언을 얻었다. 시간이 조금 지나긴 했지만, 오늘 개인 프로젝트에 활용할 에셋을 얻을겸 어떤 재밌는 것들이 있을까 아침에 가벼운 마음에 이 프로젝트를 열었는데 벌써 밤이 되어 버렸다:D
UE ContentExamples
에는 차례대로 AI, Animation, Audio, Blueprint, Geometry, Level, Lighting, Material, Misc, Physics, UI, VFX에 대한 섹션이 있다. 각 섹션을 들어가게 되면 하위 Map들이 또 존재하는데, 각 Map에서 해당하는 주제에 대한 데모를 즐길 수 있다.
프로젝트를 둘러보다가 혼자서 아카이빙도 할겸, 내가 써볼만한 것들이나 재밌었던 섹션들을 따왔는데 이번 포스팅에서는 애니메이션에 대해서 기록을 해보려고 한다.
애니메이션 에셋 중에서는 캐릭터의 위치 자체가 변하는 것들이 있다. 예를 들어 사람 형태의 애니메이션이면 데미지를 입고 뒷걸음치는 모션이 있을 수 있다. 문제는 이런 애니메이션 에셋을 다른 애니메이션 에셋과 똑같이 적용해버리면 뒷걸음치는 모션이 끝나게 될때 그 모션이 시작하기 전 위치로 순간이동을 하게 된다.
이는 Root Motion
을 사용하여 해결할 수 있다. Root Motion
은 Skeletal Mesh
의 최상위 본에 해당하는 Root bone의 이동 데이터를 애니메이션 자체에 포함시켜, 애니메이션이 재생될 때 해당 이동이 캐릭터에 직접 반영되도록 하는 방식이다. 다시 말하면, 보통 애니메이션을 재생할 때 루트 본이 이동하는 정보를 게임 내에서 따로 해석하게 되는데, Root Motion
은 애니메이션 자체가 캐릭터의 이동을 결정하도록 설정하게 하는 것이다.
Additive animation
은 단어에서 큰 힌트를 찾을 수 있는데, Additive(더하다)의 말처럼 어떤 애니메이션에 어떤 애니메이션을 더한다고 볼 수 있다. 여기서 더해지는 애니메이션은 Base Pose에 해당하는 기준 애니메이션이고 더하는 애니메이션이 Additive animation
을 할 에셋이다.
Additive animation
은 기존 애니메이션(Base Pose)과의 차이를 계산하여 추가적인 변화를 더하는 방식이다. 예를 들어, Base pose로 걷기 애니메이션을 두고 그 위에 Additive pose로 상체 흔들기 애니메이션을 더하면, 걷는 동안 상체만 따로 움직이게 할 수 있다. Additive animation
에서 주의할 점은 두 애니메이션의 차이를 계산하는 특성상, 더해지는 애니메이션이 base pose 애니메이션과 상이한 차이가 있으면 안된다.(예를 들어 가만히 서있는 Idle pose에 팔벌려뛰기를 additive하지 말자!)
난 처음에 Layered blend per bone
와 Additive animation
가 매우 헷갈렸는데, Layered blend per bone
은 애니메이션을 특정 Bone 단위로 블렌딩하는 기능으로, 특정 Bone을 기준으로 각 부위별로 다른 애니메이션(서로 아예 개별적인)을 재생한다고 생각하면 된다. 이에 반해 Additive animation
는 base pose 위에 살짝 다른 효과를 얹어주는 것이다.
Layered blend per bone
과 Additive animation
을 함께 활용할 수도 있다. 예를 들어, spine_1(우리의 단골 bone)으로 상/하체 애니메이션을 분리하고 상체 공격 애니메이션을 적용하면서 Additive 방식으로 얼굴 표정을 추가해 볼 수 있다.
Animation Montage
는 우리가 많이 써봐서 익숙할텐데, 위에서 봤던 Layered blend per bone
을 사용해서 특정 본을 기준으로 서로 다른 애니메이션이 재생될 영역을 만들고 원하는 영역에만 Animation montage
를 재생할 수 있다.
위 예시에서처럼 장전에 해당하는 input을 눌렀을때 캐릭터가 그냥 총 장전 Animation montage
을 틀어버리면 가만히 멈춘채 장전(원래 장전 animation 에셋)이 재생되게 될 것이다. 하지만, 캐릭터가 움직이고 있을때에도 유연하게 총 장전 애니메이션이 실행되어야 하므로 하체는 움직이게 하고 상체에만 총 장전 Animation montage
를 적용하므로서 자연스러운 장전 애니메이션을 만들 수 있다.
언리얼 5.4부터 애니메이션 리타겟팅이 매우 쉬워졌다. 지금까지 언리얼의 기본 마네킨과 Skeleton이 다른 캐릭터를 프로젝트에 넣어본 경험이 없어서 애니메이션 리타겟팅은 아주 쉽게 했었다. 하지만, 추후에는 사람뿐만이 아니라 다양한 캐릭터를 게임에 넣게 될 것인데 이때 사용할 IK
와 IK-Retargeter
에 대한 감을 여기서 잡아 볼 수 있을 것 같다.
요즘 게임들을 하다보면 중간에 영상이 나오는데 가끔은 내가 영화를 보는 건지 헷갈릴 정도로 감동도 있고 영상미도 훌륭한 시퀀스들이 많다. 언리얼의 light와 post-process, 카메라 섹션을 가보면 게임의 미적 퀄리티를 확 끌어올려줄 테크닉들이 숨어 있다.
UE ContentExamples
의 Sequence
섹션에서는 별도의 Cine-camera로 찍은 시퀀스를 플레이하는 데모와, 내가 보고 있는 화면을 렌더링해주던 카메라가 sequence 카메라가 되어 보여주는 데모가 있었다.
어떻게 한 것일까? FABRIK으로..?