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을 사용하여 해결할 수 있다. Root MotionSkeletal Mesh의 최상위 본에 해당하는 Root bone의 이동 데이터를 애니메이션 자체에 포함시켜, 애니메이션이 재생될 때 해당 이동이 캐릭터에 직접 반영되도록 하는 방식이다. 다시 말하면, 보통 애니메이션을 재생할 때 루트 본이 이동하는 정보를 게임 내에서 따로 해석하게 되는데, Root Motion은 애니메이션 자체가 캐릭터의 이동을 결정하도록 설정하게 하는 것이다.

Root Motion 1

Root Motion 2

Additive animation

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 boneAdditive animation가 매우 헷갈렸는데, Layered blend per bone은 애니메이션을 특정 Bone 단위로 블렌딩하는 기능으로, 특정 Bone을 기준으로 각 부위별로 다른 애니메이션(서로 아예 개별적인)을 재생한다고 생각하면 된다. 이에 반해 Additive animation는 base pose 위에 살짝 다른 효과를 얹어주는 것이다.

Layered blend per boneAdditive animation을 함께 활용할 수도 있다. 예를 들어, spine_1(우리의 단골 bone)으로 상/하체 애니메이션을 분리하고 상체 공격 애니메이션을 적용하면서 Additive 방식으로 얼굴 표정을 추가해 볼 수 있다.

Additive animation

Layer + Montage

Animation Montage는 우리가 많이 써봐서 익숙할텐데, 위에서 봤던 Layered blend per bone을 사용해서 특정 본을 기준으로 서로 다른 애니메이션이 재생될 영역을 만들고 원하는 영역에만 Animation montage를 재생할 수 있다.

Layered Montages

위 예시에서처럼 장전에 해당하는 input을 눌렀을때 캐릭터가 그냥 총 장전 Animation montage을 틀어버리면 가만히 멈춘채 장전(원래 장전 animation 에셋)이 재생되게 될 것이다. 하지만, 캐릭터가 움직이고 있을때에도 유연하게 총 장전 애니메이션이 실행되어야 하므로 하체는 움직이게 하고 상체에만 총 장전 Animation montage를 적용하므로서 자연스러운 장전 애니메이션을 만들 수 있다.


Animation Retargeting

언리얼 5.4부터 애니메이션 리타겟팅이 매우 쉬워졌다. 지금까지 언리얼의 기본 마네킨과 Skeleton이 다른 캐릭터를 프로젝트에 넣어본 경험이 없어서 애니메이션 리타겟팅은 아주 쉽게 했었다. 하지만, 추후에는 사람뿐만이 아니라 다양한 캐릭터를 게임에 넣게 될 것인데 이때 사용할 IKIK-Retargeter에 대한 감을 여기서 잡아 볼 수 있을 것 같다.

Skeletal Mesh가 같은 Skeleton인 경우

Skeletal Mesh가 다른 Skeleton인 경우


Sequence

요즘 게임들을 하다보면 중간에 영상이 나오는데 가끔은 내가 영화를 보는 건지 헷갈릴 정도로 감동도 있고 영상미도 훌륭한 시퀀스들이 많다. 언리얼의 light와 post-process, 카메라 섹션을 가보면 게임의 미적 퀄리티를 확 끌어올려줄 테크닉들이 숨어 있다.

UE ContentExamplesSequence 섹션에서는 별도의 Cine-camera로 찍은 시퀀스를 플레이하는 데모와, 내가 보고 있는 화면을 렌더링해주던 카메라가 sequence 카메라가 되어 보여주는 데모가 있었다.


그외 다양한 애니메이션 데모들

눈 부분에만 적용한 Morphing

Physics Animation Blending

다른 Skeletal Mesh, 같은 Control Rig

Multiple Layered Rigs

Animator Kit 플러그인

매번 변하는 공의 위치에 손이 따라가기

어떻게 한 것일까? FABRIK으로..?

Full Body IK + Body Mover

Physics Control Component 사용. 정말 신기하고만..

profile
🏦KAIST EE | 🏦SNU AI(빅데이터 핀테크 전문가 과정) | 📙CryptoHipsters 저자

0개의 댓글

관련 채용 정보