블렌더 VRChat - beullendeo VRChat

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

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

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

블렌더 VRChat - beullendeo VRChat
Blender Guru 채널 영상들을 보면서 만들어낸 도넛

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

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

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

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

 모델링 및 리깅까지는 위 영상들을 보고 차근차근 따라가면 금방 완성할 수 있는데, 문제는 그 다음입니다. 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

블렌더 VRChat - beullendeo VRChat

 사용해야 하는 유니티 버전은 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 - beullendeo VRChat
적당히 완성된 모델
블렌더 VRChat - beullendeo VRChat
유니티에서 로드한 화면

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

블렌더 VRChat - beullendeo VRChat
유니티의 Bone 설정 화면

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

블렌더 VRChat - beullendeo VRChat

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

블렌더 VRChat - beullendeo VRChat
VRC에 업로드 성공!

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

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