Programming/UnrealEngine

[UnrealEngine5] 네이버 웹툰[화산귀환] 3d로 구현해보기(1) - 캐릭터 리깅과 애니메이션

stein 2022. 8. 18. 20:41

프로젝트 게시글
[UnrealEngine5] 네이버 웹툰[화산귀환] 3d로 구현해보기(1) - 캐릭터 리깅과 애니메이션🚩

[UnrealEngine5] 네이버 웹툰[화산귀환] 3d로 구현해보기(2)(完) - Niagara로 검 궤적 표현하기

서론

 어렴풋 하지만 하루 일과의 마무리가 웹툰이 된 건 초등학생 때부터였을 것이다. 그렇게 어연 10년은 훌쩍 넘게 봐온 웹툰 시장이 조금씩 바뀌고 있는 게 느껴진다. 웹소설 기반의 작품을 다수의 그림 작가들이 팀(회사)을 이루어서 엄청난 퀄리티의 작품을 만들어내는 새로운 방식이 등장한 것이다. 이런 작품들을 1주일에 한화씩 볼 수 있다는 게 감사할 따름.
 그런 작품 중에서 최근에 1부가 완결된 [화산귀환]을 매우 재밌게 보고 있다!

최근에 1부가 완결된 화산귀환. 완성도가 미쳤다.

 

 그러면서 나는 이전 프로젝트인 탑건을 마무리하고 다음 프로젝트를 어떤 주제로 진행할지 고심중이었다. 프로젝트를 진행하면서 공부가 필요한 분야는 다음과 같았다.

 

- 특수효과 VFX(Niagara)

- 애니메이션에 대한 이해

- 리깅에 대한 이해

- 3d 모델 사용에 대한 더 깊은 이해

- 맵 제작(배경)

- Blueprint가 아닌 C++의 사용(다음 프로젝트)

 

 어차피 로직의 구현에 대한 부분은 기존의 프로그래밍과 크게 다르지 않기 때문에, 언리얼 엔진 자체의 이해도를 조금 더 빨리 올리는게 필요하다고 판단하여 나온 항목들이다.

 

 따라서 저 항목들을 전반적으로 훑을 수 있는, 앞서 말한 [화산귀환]의 검술을 직접 구현해 보는 것을 이번 프로젝트 목표로 설정하였다! (68화에 등장한 검술을 구현 예정)

이것이... 검술?

계획

1. 캐릭터 리깅, 애니메이션 이해 및 구현 

2. Niagara를 활용하여 검 궤적 구현하기

3. 캐릭터, 검 디자인 구현하기

4. 추가 디자인 작업 및 누락된 애니메이션 추가

 

진행

1. 캐릭터 리깅, 애니메이션 이해 및 구현

- 캐릭터 리깅

매화참

 먼저 구현할 장면을 상상하면, 캐릭터가 검을 휘두르는 애니메이션이 필요하고, 그에 맞는 특수효과가 필요할 것이다. 하지만 이 모든것을 컨트롤하기 위해서는 '리깅(Rigging)'이란 작업이 우선되어야 한다.

 리깅이란 skeleton으로 구성된 3d model을 움직일 수 있게 설정해주는 작업이다. 손이 움직일때, 자연스럽게 팔이나 어깨와 같은 부분들이 움직일 수 있는 제한이 걸리는 이유가 리깅이 되어있기 때문이다(물론 애니메이션으로 디테일은 잡아주어야 한다)

리깅 되어있는 모델

통상 리깅은 블렌더(Blender)나 마야(Maya)와 같은 외부 디자인 프로그램을 사용해서 구현하지만, 언리얼 엔진 내부에서도 리깅을 구현할 수 있는 방법이 있다. 그것은 Control rig라는 에셋을 사용하는 것!

https://www.youtube.com/watch?v=C_vrn1n1Uq8

https://www.youtube.com/watch?v=w9mijf-gKOg&t=785s

위 두 영상에서 control rig를 사용하는 법을 자세히 알려준다. 가볍게 보고 rigging에 대한 이해를 높이기 좋다. 영상이 꽤 길고 지루한 작업이지만, 아주 감사하게도 이번에 사용할 캐릭터 모델은 unreal engine에서 제공하는 Manny를 사용할 예정인데, 이미 rigging이 처리된 모델이 기본으로 들어가 있다! 따라서 리깅을 직접 하진 않고 이해만 하더라도 본 프로젝트를 진행하는 데는 큰 문제가 없을 것 같다.

CR_Mannequin_Body로 구현되어 있다

- 캐릭터 애니메이션

content drawer>Animation>Level Sequence

먼저 Level Sequence 파일을 하나 생성하고, sequence 좌측 하단에 우클릭으로 actor를 추가해준다(사용할 캐릭터)

그러면 Skeleton 하위에 CR(Control Rig), Animation, 그리고 Transform이 볼 수 있다.

 

애니메이션을 재생하는 것은 총 2가지 방식이 있다.

 

1. Control Rig으로 직접 프레임 단위 구현

 

CR을 클릭하면 직접 프레임에 맞춰서 각 부분을 설정할 수 있게 창이 열린다. 하나하나 직접 구현(노가다)하면 다음과 같이 애니메이션이 재생된다. 모든 항목이 애니메이션에 사용할 수 있는 것이 아니기 때문에, 직접 관절들을 움직여보면서 자연스러운 애니메이션을 만들어보자.

 

참고

    fk=forward kinemetics=어깨-상완-하완-손목을 움직여서 손을 움직임

    ik=inver kinemetics=손을 움직이면 다른 관절이 따라서 움직임

용어의 개념은 위와 같으나, 실제로 모든 요소가 저렇게 움직이진 않는 것으로 보임

 

칠매검 준비 자세

2. 이미 만들어진 Animation을 import하여 구현하기

 

 CR을 수정하지 않고, animation에 원하는 애니메이션을 추가하면 된다(아래 gif는 run_fwd animation). 이때 CR을 mute해 주어야 animation이 활성화 된다.

이 때, skeleton에서 Bake To Control Rig를 선택하면 해당 애니메이션이 control rig로 변환되고, 이를 통해 디테일한 수정을 진행할 수도 있다!

animation -> control rig 변환

- 애니메이션.. 전부 구현하기 부담스럽다면? Mixamo

Mixamo라는 모델, 애니메이션 제공 사이트가 있다. 어도비에서 인수하였으며 많은 애니메이션과 모델들이 무료로 다운받을 수 있는 사이트이다. 당신이 상상하는 모든 애니메이션.. 이 있는 건 아니지만, 처음 게임을 만든다면 충분한 양의 자료들이 있다. 특히 character를 직접 업로드 하여서 mixamo의 애니메이션을 해당 모델에 맞춘 자료를 받을 수도 있다.

sword로 검색했을 때 나오는 mixamo 자료

따라서 현재 사용하고 있는 Manny의 SkeletonMesh(SKM)을 FBX로 export하여서 mixamo에 업로드하면 모델은 그대로 사용하면서 animation만 받을 수 있다. 

FBX로 expor후 mixamo에 업로드한 character
mixamo에서 import한 애니메이션

뭔가.. 부자연스러운 부분이 있는 것 같지만, 이 정도 참고할 애니메이션이 있는게 어디인가!

정리

 위 과정들을 통해서 프로젝트를 진행하기 위한 기본적인 준비가 끝났다고 볼 수 있다. 이제 vfx를 구현하고, 옷, 캐릭터 디자인 부분만 해결하면 나머지는 노동으로 해결할 수 있을 것이다.

 

 사족으로, 탑건 프로젝트를 진행하면서도 느꼈지만, 초심자가 들어와서 헤딩하기에는 확실히 공부할 범위가 넓게 느껴진다. 그리고 VFX와 애니메이션 부분이 unreal engine에 있어서, 이 부분이 프로그래머의 영역인지 디자이너의 영역인지 헷갈렸다. 그래서 게임잡에서 관련 채용을 살펴보니, 확실하게 아트와 클라이언트 개발은 선이 그어져 있었다. 그 중, TA(Technical Artist)는 그 사이의 역할을 하는 것으로 보였으나, 어느정도 경력을 요구하는 위치로 보였다. 따라서 VFX와 애니메이션을 위해서 시작한 프로젝트이지만, 너무 많은 시간을 쏟지는 않을 예정이다.