본문 바로가기
3D

Blender로 VRChat용 아바타 모델링, 리깅, 업로드

by __미니__ 2020. 6. 20.

 

 고등학교때 학교에서 3ds Max로 모델링, 리깅을 해봤던 것 같긴 한데 기억에 남은건 하나도 없었고, 지금까지는 https://vrcmods.com/에 올라와있는 모델을 유니티로 로드해서 업로드하여 사용하거나 퍼블릭 아바타를 클론해서 쓰고 있었습니다. 늘 쓰는 아바타는 보컬로이드의 카가미네 린으로 정해져 있는데 미쿠에 비해 린 아바타는 퀄리티 높은 것을 찾기도 힘들고, 차라리 직접 만들어보면서 새로 배워보는게 어떨까 해서 블렌더를 써보기 시작했습니다. 이 글을 쓰고 있다고 지금 이미 아바타 하나를 완성했다는 의미는 아니고, VRChat에 간단히 만든 아바타 업로드 정도는 성공한 김에 한숨 돌릴 겸 작성 중입니다. 

 

블렌더 입문에 큰 도움을 준 Blender Guru 채널

 무작정 툴을 만져보기만 해서는 할 수 있는 것이 없으므로 유튜브에서 적당한 블렌더 입문 영상을 찾아보다 위의 Blender Guru 채널을 발견하게 되었습니다. 영어로 진행된다는 장벽만 넘어서면 내용도 정말 알차고 단기간에 빠르게 핵심 기능들을 배울 수 있습니다. 

 

Blender Guru 채널 영상들을 보면서 만들어낸 도넛

 블렌더는 오픈 소스 프로그램인 것으로 알고 있는데 기능도 무척 깔끔하고 강력합니다. 위 도넛은 블렌더 입문 후 이틀동안 강의를 따라서 단 몇시간 투자한 것만으로 만들어낸 작품입니다. 이걸 이용하면 아바타를 만들어내는 것도 어렵지는 않겠다고 생각했고 적당히 이것도 유튜브 강의를 좀 찾아보면서 어떻게 할지 고민하면서 만들어나갔습니다.

 

 

 

 

 

 

 

 

 

 

 

 여러 유튜브 영상들을 보면서 모델링, 리깅을 진행했는데 그중 가장 도움이 많이 되었던 영상은 위 영상들 중 두번째 영상입니다. 

 

블렌더 작업 중의 스크린샷 (정면)
블렌더 작업 중의 스크린샷 (측면)

 

 모델링을 진행할 때는 아무것도 없이 바로 시작하는 것이 아니라 뼈대를 잡기 위해 정면 및 측면의 두 군데에 백그라운드로 모델이 될 이미지를 놓고 진행했습니다. 저의 경우는 적당히 집에 있는 넨도로이드를 이용해서 사진을 찍어서 이용했습니다. 여기서 문제가 한가지 발생했던 게 사진을 찍을 때 각도나 거리가 조금이라도 달라지면 정면과 측면 이미지의 비율이 맞지 않아서 모델링을 할 때 비율이 틀어지는 문제가 발생한다는 점입니다. 제품 설계도의 삼면도처럼 이미지를 정확히 맞춰서 준비해야 합니다.

 

 모델링 및 리깅까지는 위 영상들을 보고 차근차근 따라가면 금방 완성할 수 있는데, 문제는 그 다음입니다. VRChat에 아바타 업로드를 위해서는 Unity 특정 버전 및 VRCSDK2를 준비해야 합니다. (VRCSDK3는 아직 아바타 업로드가 불가능하므로 현재는 VRCSDK2를 사용해야 합니다)

 

* 2020.09.18 업데이트: 이제 VRCSDK3을 이용하여 아바타 업로드가 가능해졌으며, 2에 비해 여러 가지 기능들이 추가되었습니다. 단, 그대로는 호환이 되지 않거나 표정 변화 등을 제대로 사용할 수 없는 문제가 발생할 수 있습니다. VRCSDK3를 이용해 아바타를 업로드하는 방법은 여기를 확인해주세요.

 

https://unity3d.com/get-unity/download/archive

 

Get Unity - Download Archive - Unity

Unity is the ultimate game development platform. Use Unity to build high-quality 3D and 2D games, deploy them across mobile, desktop, VR/AR, consoles or the Web, and connect with loyal and enthusiastic players and customers.

unity3d.com

 사용해야 하는 유니티 버전은 2018.4.20f1 버전으로 위 URL에서 다운로드 가능합니다.

 

 

https://docs.vrchat.com/docs/setting-up-the-sdk

 

Setting up the SDK

Requirements We're going to need a couple things before we can get started. Current Version of Unity. We strongly recommend using Unity Hub, available on that page.VRChat SDK - See the Choosing your SDK page to see how to choose the correct SDK for your us

docs.vrchat.com

 VRCSDK2는 위 링크를 참조해서 다운로드 가능하며, 설치형이 아니라 Unity 프로젝트에 Import해서 사용하는 방식이므로 하드 어딘가에다가 잘 보관해놓고 업로드할때 프로젝트에 로드하여 사용하면 됩니다.

 

 

적당히 완성된 모델
유니티에서 로드한 화면

 블렌더에서 익스포트한 모델을 유니티에서 로드하면 위와 같은 모양으로 나타납니다. 여기서 중요한 점은 블렌더에서 리깅이 끝났다는 가정 하에 VRChat에서 움직일 수 있는 아바타로 만들기 위해 우측 상단의 Inspector->Rig 탭에서 Animation Type을 Humanoid로 변경 후 Apply를 해줘야 한다는 점입니다. 이걸 진행해서 문제가 없을 경우는 괜찮은데 처음 하시는 분들 다수는 하단에 "spine hierarchy missing elements, please map chest hierarchy" 등 에러 메시지가 발생할 것입니다. 이는 대부분 리깅하면서 위 에러 메시지에 언급된 chest 본을 빼먹었던가, 유니티에서 설정을 제대로 해주지 않았기 때문입니다. 후자의 경우는 위 이미지의 Configure... 버튼을 눌러서 아래와 같이 에러 메시지에 나온 본을 설정하면 해결됩니다.

 

유니티의 Bone 설정 화면

 

 이제 문제가 다 해결됐다고 생각하고 VRCSDK를 통해 업로드를 진행해봤는데 짜잔, 아바타가 안보이거나 아바타는 보이는데 시야가 너무 낮거나 높은 버그가 생겼습니다!

 

 이는 위 이미지의 우측에 Transform->Position을 전부 0으로 설정하고 VRC_Avatar Descriptor (Script)->View Position에서 Y축(높이)를 적당히 아바타 크기에 맞게 만져주는 것으로 해결했습니다. 이상하게 저 값들은 그냥 클릭해서는 변경이 안되고 VRCSDK의 Control Panel을 열어야만 수정이 가능하더라구요.

 

 

VRC에 업로드 성공!

 결과적으로 오늘 하루 거의 10시간을 들여서 처음으로 간단한 아바타를 만들고 VRC에서 움직이게 하는 데에 성공했습니다. 추후 더 이쁘고 멋진 아바타를 만들어 보는 것이 기대됩니다.

 

 

 

 

 

 (저도 막 블렌더를 시작한 참이고 답변이 언제 가능할지는 모르겠으나 혹시나 작업 중 막히는 부분이 있으시면 댓글로 질문해주세요)