본문 바로가기
3D

VRChat 아바타 업로드하기 (VRCSDK3, 표정 안나오는 문제 해결)

by __미니__ 2020. 11. 28.

 

 

VRChat 아바타, 구매부터 업로드까지

 VRChat을 시작한지도 벌써 2년을 훌쩍 넘겼습니다. 2018년 4월에 시작했으니 2년 하고도 3개월이 더 되었네요. 처음에 유튜브 방송을 보고 재밌어보여서 무작정 바로 HTC Vive를 구매해서 지금까지

kousaka.tistory.com

 원래 이전에 이렇게 VRChat에 아바타 업로드하는 글을 올렸습니다. 이때 당시 VRCSDK는 2까지밖에 없었기 때문에 VRCSDK 2를 이용하여 아바타를 업로드했는데요, 몇달 전에 VRCSDK3가 나오면서 이를 이용해 아바타를 업로드하면서 애먹은 경우가 꽤 있어 VRCSDK3를 이용해 아바타를 업로드하는 방법을 차근차근 정리해 나가보도록 하겠습니다.

 

 

1. 사전 준비

 우선 가장 기본적인 아바타 구매 및 유니티 설정 등은 위 글의 2. Unity 설치 및 업로드 준비 까지 읽으면서 그대로 진행해 주시면 됩니다. 단, VRCSDK3를 이용할 것이기 때문에 VRCSDK3는 여기에서 다운로드 받아서 준비해주세요.

 

VRCSDK 다운로드를 위해서는 VRChat 계정이 필요합니다. 여기서는 아바타를 업로드할 것이기 때문에 빨간 네모 안의 아바타용 VRCSDK3를 다운받습니다.

 

(주의: VRCSDK2와 VRCSDK3는 호환되지 않기 때문에 한 프로젝트에 둘 모두를 Import해서는 안됩니다. 새로 프로젝트를 만들어서 진행해주세요)

 

 

2. 프로젝트 생성, 설정

 우선 유니티를 켜서 원하는 위치에 새로운 프로젝트를 하나 생성합니다. 생성을 완료하고 나면 자동으로 유니티가 해당 프로젝트를 열고 창을 띄워줍니다.

 

 

 프로젝트 생성이 완료되었다면 위 스크린샷처럼 Assets -> Import Package -> Custom Package... 메뉴를 선택하여 위에서 다운로드 받았던 VRCSDK3를 먼저 Import 해줍니다. 그러면 VRCSDK3 안에서 뭘 Import할지 물어보는 창이 뜨는데 아무것도 건드리지 말고 그냥 Import 버튼을 눌러주면 됩니다. 잠시 기다리면 Import가 완료됩니다.

 

 기존 VRCSDK2 아바타 업로드 글에서도 한번 언급했었는데 요새 판매되는 아바타들은 옷이나 머리에 다이나믹 본을 이용하여 부드러운 움직임을 구현해둔 경우가 많습니다. 구매하지 않았다면 별로 상관없지만 구매했다면 여기에서 먼저 다이나믹 본을 Import 해줍니다. 스크린샷에 있는 Asset Store 탭에서 유니티 계정으로 로그인하고 구매 및 Import할수 있습니다.

 

 이렇게 하고 나면 기본적인 프로젝트 설정은 모두 완료되었습니다. 다음으로 아바타를 실제로 불러와서 업로드하는 방법에 대해서 작성하겠습니다.

 

 

3. 아바타 불러오기, VRCSDK3의 각종 문제 해결

 1. 사전 준비 에서 다운로드 받은 아바타를 VRCSDK를 Import할 때와 동일하게 Assets -> Import Package -> Custom Package... 메뉴를 통해 Import 해줍니다. 보통 위 스크린샷처럼 아바타 폴더 내에 .unitypackage 파일로 존재합니다.

 

 Import된 아바타의 prefab 파일을 클릭합니다. 만약 빨간 네모친 부분에 저런 에러가 있다면 우측 상단의 Open Prefab 버튼을 클릭해서 다음의 작업을 수행해줍니다.

 

 Open Prefab 버튼을 클릭하면 이렇게 해당 prefab 파일을 수정할 수 있게 됩니다. 여기서 스크린샷과 같이 (Script) 라는 이름의 에러가 나와 있는 컴포넌트를 삭제해줍니다. 우측의 톱니바퀴 아이콘을 클릭 후 Remove Component 버튼을 누르면 됩니다. 이후 Ctrl + s로 해당 prefab을 저장합니다.

 

 prefab 작업이 끝났으면 다시 Scenes로 돌아와 다음 작업을 수행해주면 됩니다. 

 

 아바타 폴더 내부의 prefab 파일을 Scene 화면에 드래그 & 드랍합니다. 이후 해당 아바타를 클릭하여 우측 상단의 Position을 모두 0으로 설정해줍니다. 

 

 우측 메뉴에서 Add Component 버튼을 클릭하여 VRC Avatar Descriptor를 추가해줍니다. VRCSDK2에서는 여기서 그냥 바로 업로드를 진행해도 별 문제가 없었지만, VRCSDK3 호환이 진행되지 않은 아바타의 경우 시점이 틀어지거나 표정이 나오지 않거나 입이 움직이지 않거나 뭐 이런 여러가지 문제가 생깁니다.

 

 

3-1. 시점 문제 해결

 VRC Avatar Descriptor에서 View를 열어보면 스크린샷과 같이 View Position이 나오고, 이 값들이 세팅되어 있는 것을 볼 수 있습니다. 또한 캐릭터 주변에 위처럼 하얀 구체가 하나 떠있는 것을 볼 수 있는데 해당 구체가 시점을 나타냅니다. 스크린샷처럼 저렇게 위에 있을 경우 실제 캐릭터의 머리 위치와 거리 차이가 너무 심해서 실제로 아바타를 이용할 때 불편함이 큽니다. 

 

 View Position 옆의 Edit 버튼을 누르면 해당 구체를 움직일 수 있게 되는데, 그 전에 X와 Z를 모두 0으로 세팅하고 구체 위의 초록색 화살표를 드래그하여 캐릭터의 눈 정도의 위치에 구체를 이동시킵니다. 정확히 눈에 있을 필요는 없고 머리의 정 중앙정도에 들어간다고 생각하면 편합니다. 완료되었으면 Return 버튼을 클릭하여 저장합니다.

 

 

3-2. 입이 안움직이는 문제 해결

 립싱크 설정이 제대로 되어 있지 않아 생기는 문제입니다. 이 부분은 저도 구체적으로 설정하는 방법은 잘 모르지만 View 밑의 LipSync 에서 Auto Detect 버튼을 클릭하면 알아서 설정이 되었습니다.

 

 

3-3. 눈이 안움직이는 문제 해결

 LipSync 아래의 Eye Look 메뉴를 열고 Enable 버튼을 누른 후 Left Eye Bone과 Right Eye Bone을 찾아서 세팅해줍니다. 각각 칸의 오른쪽에 있는 작은 동그라미를 누르면 세팅할 수 있습니다. 보통 이것들은 아바타를 판매하시는 분들이 모두 네이밍을 해두었기 때문에 금방 찾아서 설정이 가능합니다. 이후 Rotation States에서 위와 같이 세팅해줍니다. Preview를 통하여 실제로 눈이 어떻게 움직이는지 Scene에서 확인이 가능하기 때문에 보면서 자신의 아바타에 맞게 적당히 세팅해주면 됩니다.

 아래의 Eyelids도 Blendshapes로 변경해주고 나머지는 건드리지 않아도 됩니다.

 

 

3-4. 손가락, 표정 등 액션이 되지 않는 문제 해결

 이 부분이 핵심 중의 핵심입니다. 원래는 VRCSDK2에서 별 문제 없이 동작하던 것들이 VRCSDK3로 넘어오면서부터 좀 복잡해졌습니다.

 

 우선 Eye Look 메뉴 아래에 있는 Playable Layer를 열고 Customize 버튼을 눌러 커스터마이즈를 활성화합니다.

 

 이후 Default ~ 로 설정되어 있는 버튼들을 누르고 우측의 작은 동그라미를 눌러 Animation Controller를 설정해줍니다. 이름을 보면 Locomotion 등 공통된 단어가 들어가 있는데, 이것들로 세팅해주면 됩니다. 만약 해당하는 Controller가 없을 경우 우측의 X 버튼을 눌러 Default 값으로 설정해주면 됩니다. 여기서 중요한 부분은 저 FX라는 부분인데, 이게 손가락과 표정의 움직임을 지정해준다고 생각하면 편합니다. 이 값은 예외로 HandsLayer로 설정합니다.

 

 FX를 HandsLayer로 설정한 다음, 오른쪽 빨간 네모의 설정된 영역을 클릭하면 하단 프로젝트에 거기에 해당하는 Controller가 표현됩니다. 해당 컨트롤러를 더블클릭해서 열어줍니다.

 

 이런 창이 열리는데, 기본적인 손가락의 움직임 등이 디폴트로 지정되어 있습니다. 우리는 손가락 뿐만 아니라 손가락을 움직였을 때 표정도 함께 바뀌도록 설정하고 싶기 때문에 이것이 동작하도록 값을 변경해줄 필요가 있습니다.

 

 동작 하나를 선택하여 오른쪽 위의 Motion을 수정합니다. 판매자가 표정을 설정해놨다면 아바타에 표정이 탑재되어 있을 것이기 때문에 찾아보면 이미 네이밍되어있는 애니메이션들이 있습니다. 아바타마다 이름이나 표정들은 다를 것이기 때문에 각각 적당히 찾아서 세팅해줍니다. 이후 아래의 Write Defaults를 체크 표시해줍니다. Write Defaults를 체크하는 작업은 주황색 네모 Idle에서도 동일하게 진행해줘야 합니다. 양손에 모두 세팅하고 싶다면 Right Hand와 Left Hand 모두에서 작업해줘야 합니다. 여기까지 진행하면 손가락 움직임과 표정까지 세팅이 완료됩니다.

 

 

 다시 Playable Layers로 돌아와서 나머지 포즈들까지 세팅을 완료한 모습입니다.

 

 마지막으로 아래에 있는 Expressions 메뉴를 열고 Menu와 Parameters도 Default 값들로 세팅해줍니다.

 

 

4. VRCSDK를 이용하여 아바타 업로드

 VRChat SDK -> Show Control Panel 메뉴를 선택하고 VRChat 계정으로 로그인합니다.

 

 로그인이 완료되었으면 아래의 버튼을 클릭하여 빌드 후 업로드 준비작업에 들어갑니다.

 

 빌드하는데에 몇분정도 시간이 걸리고, 이후 이런 창이 나타나는데 여기에 아바타 이름과 Public/Private 설정 등을 마치고 Upload 버튼을 누르면 업로드가 시작됩니다. 업로드가 끝난 뒤에는 VRChat에서 아바타를 사용할 수 있습니다. :)

 

 

 

요 다음번에는 VRCSDK3에서 새로 추가된 Expression을 이용하여 악세사리 등을 보였다가 숨겼다가 하는 것을 진행해보려고 합니다. 도움이 되었다면 좋겠네요!