VRChat/VRChat 아바타 가이드

안아줘요 아바타 VRChat 업로드 방법 (VRCAvatarDescriptor, Animator, 땅에 박히는)

밍결 2022. 8. 14.

VRChat 퍼블릭 월드를 돌아다니다 보면 안아줘요 아바타를 종종 볼 수 있다. 워낙 부들부들 동물콘이 귀엽다보니 아바타를 가지고 있지 않은 사람이 클론하게 해달라고 부탁하는 모습도 자주 볼 수 있고, 안아줘요를 처음 본 사람은 안아줘요 있다고 반가운 표시를 보이기도 한다. 

Booth 에 안아줘요 3D 모델이 무료로 공개되어 있다.

안아줘요 아바타 VRChat 업로드 방법

동물콘 원작자가 제작한 건 아니고, 동물콘을 좋아하는 분이 팬심으로 만들어 배포한 거 같다.  

무료 아바타인 데다가, 퍼블릭으로 업로드 한 유저도 많기 때문에 클론하면 편하게 사용할 수 있다. 

하지만 나처럼 찐따라 무턱대고 클론 해달라고 말 걸기 부담스러운 유저, 혹은 그래도 직접 올려서 사용하고 싶은 유저도 있을 수 있다. 혹은 아예 게임 아바타보다 Booth에서 아바타를 먼저 봤을 수도 있고. 

어쨌든, 내가 직접 업로드를 하려고 했더니 제대로 안 되더라. 

내가 유니티를 잘 몰라서 어제 한참 검색하고 찾아보다 도저히 모르겠어서 에잉 안 하고 말지 어차피 무룐데 클론 부탁해야겠다 하고 치우려다가, 오늘 문득 생각이 들어 해결하고 작성하는 글이다.

한 가지의 이유로 안 되는 게 아니어서 (해결하기까지) 조금 힘들었고, 이미 문제를 해결한 사람이 여럿 보였는데 에러에 대한 해답을 상세하게 안내해주진 않아서 해결방법이 무슨 말인지 이해하는데 시간을 많이 소모했다.  

안아줘요 아바타를 업로드 할 수 없는 이유는 2가지 이유 때문이다. 

 

A VRCAvatarDescriptor is required to build an Avatar 에러

VRChat 유니티 A VRCAvatarDescriptor is required to build an Avatar 에러

이는 유명한 에러고, 모두가 한 번은 거쳐가는 에러라 해답을 모르는 사람이 없을 거라고 생각한다. 

VRChat 유니티 A VRCAvatarDescriptor is required to build an Avatar 에러

우리가 돈을 주고 구매하는 아바타는 대부분 Inspector에 VRCAvatarDescriptor가 설정되어 있다. 그렇기 때문에 이러한 에러를 볼 일이 없다. 하지만 구버전 아바타를 구매하거나 무료 아바타 등을 다운로드 받으면 VRCAvatarDescriptor가 설정되어 있지 않을 수도 있다. 

VRChat 유니티 A VRCAvatarDescriptor is required to build an Avatar 에러

해결하는 법은 간단하다.

VRCAvatarDescriptor 만 넣어주면 끝이다. 

아바타의 가장 상위 객체(안아줘요는 '안아줘요'가 가장 상위 객체다)를 선택하고, 우측 Inspector 탭에 보이는 Add Component 를 눌러 VRC Avatar Descriptor 를 넣어주면 된다. VRC로 검색하면 다른 이름을 가진 친구가 많이 나오니 뒤의 Descriptor 를 넣는 게 빠르다. 별도의 설정은 필요없고 넣어주기만 하면 된다. 

(혹여나 '저는 VRC Avatar Descriptor가 나오지 않는데요' 하는 분이 있다면, SDK3를 먼저 설치하길 바란다. 아바타를 업로드 할 준비가 전혀 안 된 상태기 때문에 아직 이 글을 읽으면 안 된다. SDK3 설치 방법은 해당 글 참조 : VRChat 아바타 업로드 하는 방법 (VRC SDK3 에러 해결 방법 등)

 

Animator 에러

그런데 이렇게 수정을 하면,
빌드 버튼은 여전히 보이지 않는데 이젠 뭐가 문제인지도 가르쳐주지 않는다. 

VRChat 유니티 Animator 에러

나는 '왜? 왜? 왜? 왜? 왜? 왜? 왜? 왜? 왜? 왜? 왜? 왜? 왜? 왜? 왜? 왜? 왜? 왜? 왜? 왜? 왜? 왜? 왜? 왜? 왜? 왜? 왜? 왜? 왜? 왜? 왜? 왜? 왜? 왜? 왜? 왜? 왜? 왜? 왜? 왜? 왜? 왜? 왜? 왜? 왜? 왜? 왜? 왜?' 하는 상태로 잠시 포기했었다.

왜냐면 검색을 해도 '애니 문제인가봐 애니 넣어봐' 같은 한 줄 짜리 답변만 보이고, 어떤 이유로 뜨는 거니까 이걸 이렇게 해야한다는 식으로 자세하게 설명해주는 답변은 없어서 (유니티 인터페이스에 대한 기초조차 없는 나는) 뭐가 문젠지 이해할 수가 없었다.

거기다 하필이면 안아줘요 폴더에 애니메이션 같은 파일까지 있어서 이 애니메이션을 아바타에 적용하라는 얘긴가? 싶어 나오지 않을 답을 찾기 위해 노력하는 삽질을 더 하고 말았다. 결국 아 짜증나 짜증나 짜증나 왜 안 되는 거야 하다가 포기.

"Console에서 에러 안 봤냐?" 물을 수 있는데, 놀랍게도 에러 문구 한 번 확인했다.

다만 영어를 못 해서 자연스럽게 읽지 못 하고, 대부분 번역기를 돌리기 때문에 애니메이션인지 애니메이터인지 디테일한 뉘앙스 차이를 캐치 못 하고, 아까도 말했지만 '아바타 애니메이션을 아바타 제작자가 설정한 게 있는데 그게 원래 있었는데 모종의 이유로 빠졌고 그걸 내가 넣어줘야 한다'는 걸로 이해해버려서 삽질을 많이 했다. 

그러다 하루가 지나고 머리가 개운한 상태로 유니티 쳐다보니까 아! 하는 생각이 들더라. 

MissingComponentException: There is no 'Animator' attached to the "안아줘요" game object, but a script is trying to access it. You probably need to add a Animator to the game object "안아줘요". Or your script needs to check if the component is attached before using it.

애니메이'터' 없다는 얘기다. 나는 애니메이'션' 인 줄 알고 애니메이션 넣어보고 안 되는데 시발? 혼자 읊조리면서 화도 내보고, 뭘 해도 안 되길래 안아줘요 폴더 안에 있는 hug_me 를 넣으라는 말인가 싶어 이걸 넣어보려고 애를 쓰면서 검색도 잔뜩 했는데 그게 아니었다. 

이거도 VRCAvatarDescriptor 에러와 해결 방법은 똑같다. 

VRChat 유니티 Animator 에러

아바타의 가장 상위 객체(안아줘요는 '안아줘요'가 가장 상위 객체다)를 선택하고, 우측 Inspector 탭에 보이는 Add Component 를 눌러 Animator 를 넣어주면 된다.

VRChat 유니티 Animator 에러

완료하면, 다른 아바타 업로드 할 때처럼 멀쩡하게 나온다. 

 

여기서 끝나면 참 좋겠지만, 

VRChat 아바타가 땅에 묻히는 문제

이 상태 그대로 업로드 하면 아바타가 땅에 박힌다. 

VRChat 아바타가 땅에 묻히는 문제

이 문제를 해결하려고 1주일을 넘게 헤맸다.
(위 내용까지 쓰고 멈춘 뒤 일주일 지난 뒤 이어서 쓰고 있는 내용이란 의미다)

"Transform에서 포지션 y축만 높여주면 해결되는 거 아니냐 왜 이걸로 헤매냐" 싶을 텐데, Transform에서 포지션 y축을 높여주어도 해결되지 않았기 때문에 헤맸다. 

땅에 박히는 문제를 해결하려고 검색해보면, 본을 줄이라던가, 애니메이션을 업로드에 사용할 아바타 객체로 녹화한 게 문제라던가(그렇기 때문에 애니메이션 녹화는 항상 복사한 뒤 찍어야 한다고), Rig인지 리깅인지를 수정해야 한다던가, 블렌더에서 본을 수정해줘야 한다던가 등등. 여러 언급이 많았지만 그 어떤 방법으로도 해결할 수 없었다.

진짜 온갖 설정을 다 만져보고 다른 파일도 다 확인해보고 다 설정해봤는데 어떤 방법을 사용해도 절대 땅에 처박힌 안아줘요가 위로 올라오지 않았다. 절대 네버 절대 네버 네버네버네버네버. 

그러다가 아예 구성은 복붙하되 상위 객체만 새로 만들어볼까 등등 여러 시도를 하다 원인을 찾아서 작성하고 있다. 

VRChat 아바타가 땅에 묻히는 문제

안아줘요 아바타를 보면, 포지션 y축 1.485로 설정되어 바닥에서 훨씬 높게 떠 있다. 이게 정상적인 위치다. 실제 게임에서도 이 정도로 높게 떠 있어야만 한다. 유니티 상에 그렇게 표시가 되어있으니까. 

공중에 떠 있어야 할 아바타가 땅에다 박히면, 당연히 대부분의 사람은 여기서 가장 상위 객체인 "안아줘요"의 y축을 더 높이면 해결될 거라고 생각하기 마련이다. 상위 객체로만 조정을 하니까, 당연히 상위 객체 "안아줘요"의 transform 에서 y축을 조금 더 늘리면 조금 더 올라가겠지 라고 생각하기 마련이다. 

VRChat 아바타가 땅에 묻히는 문제

하지만 1000을 입력하든 10000을 입력하든 안아줘요 아바타는 땅바닥에 박힌다.

그래서 도대체 뭐가 문제일까, fbx를 열면 땅에 박혀있던데 이게 문제인가 등등 여러 고민을 하고 이걸 수정할 수 있는 방법이 없는데 어떡하지 하다가 해결하지 못 한 채 일주일을 흘려보내게 됐다. 아 그냥 클론 사용해야겠다 X발 하면서. 

그런데 오늘 안 되는 걸 미워도 다시 한 번 또 다시 잡고 만져보다, 문득 갑자기 (상위 객체인 안아줘요만 없앤 뒤 다른 객체를 만들어 내용을 붙여넣어 업로드하면 아바타 위치가 조정되는 모습을 보고) "혹시" 하는 생각이 들더라. 나는 당연히 항상 상위 객체인 '안아줘요'의 y축만 수정했는데(이걸로 조정하니까), 문득 Armature의 위치를 조정해보면 어떨까? 생각이 들어 수정해봤다. 

VRChat 아바타가 땅에 묻히는 문제

그랬더니 아바타가 게임 내에서도 위로 올라가더라.

y축에 0.4를 주어 땅바닥 즈음에 위치시킨 모습.

VRChat 아바타가 땅에 묻히는 문제

원래 높이라고 할 수 있는 y축 1.485를 적용한 모습.

왜 가장 상위 객체인 안아줘요에선 y축을 설정해도 설정이 불가하고, 왜 Armature 객체에서 조정하니까 조정이 되는지는 나도 잘 모르겠다. 본도 정상적으로 다 들어가고 멀쩡히 표시되던데, 뭐가 문제였던 건지 나는 잘 모르겠다. 어쨌든, 만약에 아무리 y축을 조정해도 움직이지 않으면 Armature 등의 다른 객체의 y축도 한 번 건드려볼 필요성이 있는 거 같다.

어쨌든 이렇게 하면 오류 없이 업로드 할 수 있다.

 

아, 그리고 VRChat 에 퍼져있는 안아줘요 아바타와 내가 업로드한 순정 아바타 사이에 차이가 조금 있다는 듯 지인이 말하더라. 월드에서 많이 쓰는 안아줘요는 조금 더 강한 무브먼트가 있다던데, 내가 업로드 한 건 뭔가 약하다고 그러더라. 내가 부스에서 직접 다운로드해서 아무 설정도 하지 않고 올린 순정 아바타인데.. 억울하다. 

댓글

💲 추천 글