VRChat/VRChat 아바타 강좌

0. 머리말 + VRChat 기본조작

FakeZero 2023. 12. 18. 06:27

0. 머리말


  VRChat 이용자들이 많아지는 가운데 자신만의 아바타를 제작하는 사람들도 많아지고 있다. 그러나 유튜브를 따라하기만 하거나 툴(도구)에 기대서 사용하는 게임엔진인 Unity의 기능을 제대로 활용하지 못하는 사람들도 많다.
  본 강좌는 VRChat 아바타 제작과정의 원리의 원리까지 파고들어서 사람들이 Unity의 순기능 만으로도 최대한의 퍼포먼스를 만들 수 있도록 혹은 지금까지 사용하던 도구 없이도 자유자재로 아바타를 만들어낼 수 있도록 도와주는 강좌이다.
+ 이 뒤로 나오는 VRChat, VRC는 모두 VRChat을 가리키는 용어이니 혼용하더라도 이해바란다.
+ VRChat을 온전히 즐기기 위해선 Steam 아이디로 VRChat을 플레이하는 것이 아니라 VRChat 전용 아이디를 사용하는 것이 바람직하다. 본 강좌는 VRChat 전용 아이디를 사용하는 플레이어를 장려한다.

목록:

0. 머릿말 + VRC 기본조작
-머릿말

-전체화면 모드
-데스크탑 모드 기본 조작법
-VR 모드 기본 조작법
-게임 메뉴 설명

 

1. VRC(VRChat) Creator Companion(아바타 업로드)
-VRC 아바타, 월드 업로드 조건
-VRC Creator Compation 프로그램 설치
-VRC 대응 Unity 버전 설치
-VRChat 아바타 업로드 방법

-VRChat SDK 컨트롤 패널 설명

2. 아바타 소스를 준비하는 3가지 방법
-가장 추천. BOOTH에서 아바타를 구매
-직접 제작 방법 1. VRoid 아바타 제작툴을 이용한 VRM 파일 이용방식
-직접 제작 방법 2. FBX 파일을 직접 만드는 방법

3. Unity의 기능
-Unity 조작법
-Unity의 각 탭의 기능
-오브젝트 조작 도구
-오브젝트의 중심(Center, Pivot / Global, Local)
-컴포넌트
-부모(Parent), 자식(Child) 오브젝트

4. 많이 사용하는 파일
-unitypackage
-fbx
-png
-mat
-shader
-prefab
-controller(Animation Controller)
-anim(Animation)
-asset(Expression Menu, Expression Parameter)

-unity(Scene)

5. 3D모델 기초
-3D 모델의 기준점(Center, Pivot)
-텍스쳐와 메트리얼(Texture & Material)
-본(Bone)
-본 리깅 & 웨이팅(Bone Rigging & Weighting)

-쉐이프 키(ShapeKey) & 블렌드쉐이프(BlendShape)

-Unity에서 3D 모델은 어떻게 받아들여지는가
+해부학(인간형 본, Humanoid 뼈의 기본적인 구성)

6. 질감의 조정자, 메트리얼
-셰이더와 텍스쳐 정보를 받는 파일
-복수의 메트리얼을 사용하는 3D모델
-메트리얼은 셰이더와 메시의 중계자

-오브젝트의 메트리얼 설정 변경하기

7. 오브젝트에 생명을! 애니메이션

-애니메이션과 애니메이션 컨트롤러(Animation & Animation Controller)
-Animator탭

-Animation탭
-오브젝트 활성화 / 비활성화 애니메이션 만들기

8. 아바타 업로드의 기초
-VRC Avatar Descriptor 컴포넌트 세부사항

-Pipeline Manager 컴포넌트
-Expression Parameters 와 Expression Menu의 사용법
-VRChat 디버그(Debug)창
-BOOTH에서 아바타 구매해서 업로드하기

9. 애니메이션 고급편
+animation탭 Preview의 함정. Preview 상태를 종료하고 아바타를 업로드 할 것
-트랜지션(Transition) 세부설정
-애니메이션 노드 설정
-VRC전용 Parameter Driver 등등의 Behavior 기능
-레이어(Layer)
-특수 노드
-타임 스탬프의 그래프 활용(시간, 변위 그래프와 함수의 기본이론)
-무한 반복 애니메이션 만들기

10. Unity의 맥가이버! 컴포넌트
-Transform

-Mesh Renderer

-Animator

-Collider

-Rigidbody

-Fixed Joint

-Constraint

-Light

-Particle System(간단 설명)

-Camera

-Audio Source

11. 만져라! 잡아라! 메이드 인 피직스 본
-Physics Bone
-VRC Contact Sender, Receiver

12. 빛의 지배자, 셰이더
-빛 색상의 기본 이론
-UV 기본 이론
-Standard 셰이더 분석하기(셰이더에서 사용되는 기본 기능들)
-VRChat에서 자주 사용되는 오픈소스 셰이더(lilToon, UnitychanToon, PoiyomiToon)
-Post Processing(후처리 프로세스)

13. 무궁무진한 가능성, 파티클
-이펙트의 알파이자 오메가, 파티클
-셀 애니메이션을 활용한 파티클

14. 다양한 플러그인

15. 프로그래머의 영역
-BOOTH에서 배포되고 있는 모든 플러그인은 유니티의 기능을 간단하게 만든 것 뿐!
-게임 밖에서 정보를 받아오는 OSC 기능
-추가 조언

16. 아바타 제작 TIP
-아바타 옷 갈아입히기
-옷장 만들기
-이동속도 증가
-날기
-플레이어 시트
-옷에 붙은 본을 적용했더니 피직스본이 안움직일때
-Blender로 쉐이프키 수정하기

-Valve Index 用 손 애니메이션 만들기


0.5. VRC 기본 조작

  VRChat의 기본 조작을 몰라 데스크탑 모드나 VR 모드에서 VRChat을 능숙하게 사용하지 못하는 사람도 일부 존재하기 때문에 본 글에서는 VRC 기본 조작을 설명한다.

-전체화면 모드

  VRChat을 처음 스팀에서 설치했을 경우 전체화면 모드가 되지 않는 경우가 있다. VRChat 내에는 전체화면 설정을 할 수 있는 옵션이 존재하지 않는다. 때문에 다음과 같이 하면 된다.

  스팀에서 VRChat의 속성에 들어간다.

  다음과 같은 창이 나타나면 하단에 위치해 있는 시작 옵션 수정 사항에 다음과 같이 입력한다.

-screen-width 1920 -screen-height 1080 -screen-fullscreen

  그 다음 VRChat을 실행하면 정상적으로 전체화면으로 실행되는 것을 볼 수 있다. 만약 이 상황에서도 창 모드로 실행된다면 [Alt + Enter]를 누르면 전체화면으로 사용 가능하다.

-데스크탑 모드 기본 조작법

  이 문단에서는 데스크탑 모드(Non-VR 모드)의 기본 조작법을 설명한다.

 

  이동 : W(앞) A(왼쪽) S(뒤) D(오른쪽)

  달리기 : Shift + W, A, S, D

  점프 : Space Bar

  웅크리기 : C

  엎드리기 : Z

  마이크 조작 : V

  메뉴 : Esc

  액션 메뉴 : R

  물건 집기/사용 : 마우스 왼클릭

  물건 놓기 : 마우스 우클릭

   AFK 모드 : End

 

  여기까지는 적당히 만져보면 충분히 알 수 있는 조작법 들이다. 따라서 본 문단에서는 VRChat 초보자들이 잘 모르는 조작법을 소개한다.

 

  물건 조작

  월드에 존재하는 물건을 집었을 때, 데스크탑 유저들도 이 물건을 회전 시키거나 멀리 놓거나 가까이 가져오는 등의 행동이 가능하다.

 

  위의 영상과 같이 키보드를 이용하면 잡은 물체를 회전 시킬 수 있고 마우스 휠을 사용하면 물체를 멀리 보냈다가 가까이 가져오는 것도 가능하다.

 

  요(Yaw) 회전 : J, L

  피치(Pitch) 회전 : I(i), K

  롤(Roll) 회전 : U, O

  멀리 보내기 : 마우스 휠 위로

  가까이 가져오기 : 마우스 휠 아래로

 

  요, 피치, 롤이 무엇을 뜻하는 지 모르는 사람은 직접 VRChat 내에서 사용해 보면 무슨 의미인지 바로 알 수 있다.

  데스크탑 모드의 단점 중 하나로 몇몇 오브젝트들은 이 조작을 할 수 없게 설정되어 있기도 하니 당황하지 않길 바란다.

  (대표적인 예로 가장 기본적인 맵인 VRChat Home 월드에 배치되어 있는 펜은 이 조작을 사용할 수 없다.)

 

  손가락 조작

  VRChat의 손 모양은 핑거 트래킹이 가능한 컨트롤러를 사용하거나 핑거 트래킹 환경을 구축하지 않으면 기본 적으로 8개로 정해져 있다. 따라서 데스크탑 모드로도 손가락을 움직일 수 있다.

1. Idle(기본 손 자세)

키보드 : [Shift + F1]

2. Fist(주먹)

키보드 : [Shift + F2]

3. Open(펼친 손)

키보드 : [Shift + F3]

4. Point(가리키는 손)

키보드 : [Shift + F4]

 

5. Piece(V자 손)

키보드 : [Shift + F5]

 

6. RockNRoll(로큰롤 손)

키보드 : [Shift + F6]

7. Gun(엄지와 검지만 펼친 총 모양 손)

키보드 : [Shift + F7]

8. Thumbs Up(엄지 척 손)

키보드 : [Shift + F8]

 

  이처럼 데스크탑 모드에서도 손 모양을 바꿀 수 있으며 키보드에 있는 2개의 Shift키에 따라 왼쪽의 Shift를 사용하면 왼손, 오른쪽의 Shift를 사용하면 오른손의 손의 모양을 바꿀 수 있다.

  위의 사진들을 보면 특이한 점을 발견할 수 있는데 바로 손 모양에 따라서 아바타의 표정이 변한다는 것이다. VRChat의 많은 아바타들은 손 모양에 따라서 표정이 바뀔 수 있게 설정해 두었기 때문인데 그렇기에 이 손 모양을 바꾸는 기능은 매우 많이 사용되므로 잘 알아두길 바란다.

 

액션 메뉴

  Esc로 사용할 수 있는 메뉴 이외에도 액션 메뉴라고 하는 아바타가 사용하는데 특화된 간단한 메뉴가 있다.

  키보드 R 을 누르면 화면 아래에 녹색 원의 창이 등장한다.

 

Expressions : 아바타에 설정되어있는 아바타 제작자가 설정한 설정이다. 여러가지 기능을 마음대로 조작할 수 있으므로 많은 제작자들이 해당 기능으로 아바타에 기믹을 만들어 둔다.

Emojis : 이모티콘을 공중에 날린다. 여러가지 이모티콘이 있으므로 한 번 사용해보면 바로 이해할 수 있을 것이다.

Tools : 아바타 사용시에 편리한 도구들이 정리되어 있다.

Options : 아바타 사용시에 사용할 수 있는 옵션들이 있다.

 

  기본적으로는 한 번 씩 사용하면 알 수 있기 때문에 본 글에서는 Tools 와 Option탭만 간단하게 설명한다.

[Tools탭]

Personal Mirror : 전신이 보일 만큼의 들고 다닐 수 있는 큰 거울을 소환한다. 이 거울은 자신에게만 보인다.

Face Mirror : 얼굴만 보여주는 화면을 띄운다. 거울처럼 물체가 아니라 화면만 띄우는 것이다.

Chatbox : 채팅기능이라고 생각하면 된다. 가상 키보드를 띄우며 자신의 이름표 밑에 게시할 내용을 쓸 수 있다. 한 번 게시한 내용은 수초 후에 사라진다.

Camera : Esc 메뉴에서 소환할 수 있는 카메라를 바로 소환한다.

[Option탭]

Back : 뒤로 돌아간다.

Chatbox : Tools탭의 Chatbox와 같은 기능이다.

Nameplates : 아바타 위에 떠 있는 이름표의 전반적인 설정을 할 수 있다. 표시 여부나 투명도 등등을 설정한다.

Gestures : VR모드에서 손 모양이 바뀌는 것을 막는다. 데스크탑 모드에선 무의미한 설정. 데스크탑 모드에서는 활성화 하든 비활성화 하든 잘 바뀐다.

Mic : 마이크를 토글 모드로 설정해 두었을 경우 마이크의 On, Off를 설정한다. PTT(Push To Talk)모드에선 버튼 자체가 비활성화 되어있다.

OSC : 후술할 OSC라고 하는 기능에 대한 설정이다. 활성화에 대한 설정이나 관련 변수들을 관찰 할 수 있다.

Config : 아바타의 상세 기능에 관한 설정을 관리한다. 아바타에서 사용하는 변수를 관찰하는 디버그 창이나 후술할 피직스 본의 위치를 볼 수 있는 설정, 액션 메뉴의 위치 설정 등이 있다.

Personal Mirror : Tool탭의 Personal Mirror와 같은 기능이다.

Close Menu : 액션 메뉴를 닫는다.

 

  상세한 메뉴는 직접 조작하는 것으로 확인해 보길 바란다. 

 

-VR 모드 기본 조작법

  VR 기기의 컨트롤러는 현재 메타 퀘스트 시리즈나 HTC VIVE 시리즈 등의 스틱형 컨트롤러와 Valve Index의 너클형 컨트롤러로 크게 2가지 컨트롤러로 나뉘어져 있다. 본 글에서는 메타 퀘스트 2와 Valve Index의 컨트롤러로 조작법을 설명하겠다.

스틱형 컨트롤러 (메타 퀘스트 2)

  [스틱형 컨트롤러]

  이동 : 왼쪽 스틱

  시선 전환 : 오른쪽 스틱

  메뉴 : Y, B 버튼(컨트롤러의 위 버튼) 

  마이크 On / Off (VR 모드에선 마이크 모드가 자동으로 토글 모드로 바뀐다.)  : X 버튼(왼쪽 컨트롤러의 아래 버튼)

  점프 : A 버튼(오른쪽 컨트롤러의 아래 버튼)

  물건 집기 : 물건을 집을 손으로 쥐고 있는 컨트롤러의 Grab 버튼

  물건 사용 : 사용할 물건을 쥐고 있는 컨트롤러의 트리거

  AFK 모드 : HMD를 벗거나 컨트롤러의 메뉴 버튼

 

  스틱형 컨트롤러의 가장 큰 특징은 Grab 버튼이 있다는 것이며 이 Grab 버튼은 VRChat에서는 중지, 약지, 새끼 손가락을 한꺼번에 컨트롤하며 스틱을 조종하고 있는 엄지와 트리거를 조작하는 검지는 트래킹이 되므로 각각 엄지와 검지를 스틱과 트리거에서 때면 엄지와 검지를 편 것으로 인식이 된다. 이를 바탕으로 위에서 기술한 8가지 손가락 모양을 재현할 수 있다.

너클형 컨트롤러 (벨브 인덱스)

  [너클형 컨트롤러]

  이동 : 왼쪽 스틱

  시선 전환 : 오른쪽 스틱

  메뉴 : B 버튼(컨트롤러의 위 버튼) 

  액션 메뉴 : B 버튼(컨트롤러의 위 버튼) 길게 누르기

  마이크 On / Off (VR 모드에선 마이크 모드가 자동으로 토글 모드로 바뀐다.)  : A 버튼(왼쪽 컨트롤러의 아래 버튼) : 

  점프 : A 버튼(오른쪽 컨트롤러의 아래 버튼)

  물건 집기 : 물건을 집을 손으로 스틱을 꽉 쥐기

  물건 사용 : 사용할 물건을 쥐고 있는 컨트롤러의 트리거

  AFK 모드 : HMD를 벗거나 컨트롤러의 메뉴 버튼

 

  너클형 컨트롤러의 가장 큰 특징은 컨트롤러가 모든 손가락의 위치를 인식한다는 것이다. 따라서 위에서 기술한 8가지의 손 모양을 만들기도 쉽고 8가지 이외의 손 모양도 얼마든지 만들 수 있다. 단, 위에서 기술한 8가지 손 모양 이외의 손 모양은 모두 Idle로 인식된다. 또한 Piece 손 모양의 경우 V자가 아닌 검지와 중지를 붙인 손 모양이 되기 때문에 아바타 제작 과정에서 수정할 필요가 있다.

 

  메뉴 등에서 원하는 항목을 선택하려면 컨트롤러를 메뉴가 있는 방향으로 가리켰을 때, 나오는 선으로 항목을 선택하고 트리거를 누르면 된다.

OVR Advanced Settings

  VR 게임은 넓은 공간을 필요로 하지만 모든 사람이 이를 갖출 수는 없다. 따라서 좁은 곳에서도 게임을 할 수 있어야 하는데 OVR Advanced Settings 무료툴은 바로 그런 좁은 곳에서 VR 환경을 갖추고 있는 사람들을 위한 도구이다.

  OVR Advanced Setting을 실행했다면 SteamVR을 실행해 설정에 들어간다.

  이렇게까지 하면 PC에서 할 수 있는 설정은 끝났다. 이제 HMD를 착용하고 OVR Advanced Setting 까지 실행한 후에 VR 기기를 써서 설정해야한다.

  Binding 부분에서는 컨트롤러에 따라서 다른 프리셋들이 존재할 것이다. 그 때에는 자신의 컨트롤러에 맞는 Space Mover 비슷하게 써있는 프리셋을 찾아 적용하면 된다.

  이 작업을 마치고 나면 컨트롤러의 아래 버튼을 누르면서 손을 움직이면 내가 있는 자리 그 자체를 움직여서 하늘에 뜰 수도, 지하로 들어갈 수도 있다.

-게임 메뉴 설명

  게임 메뉴는 기본적으로 여러번 만지면 대부분의 것들은 알 수 있지만 이곳에선 중요한 것 몇 가지를 설명하겠다.

Esc 메뉴

  메뉴를 누르면 나오는 화면은 이러한데 옆으로 나와있는 화면은 윙 메뉴로 빠르게 쓰고 싶은 메뉴를 열 수 있다. 대부분의 설정은 직접 해보면 알 수 있기 때문에 본 강좌에서는 필자가 중요하다고 생각하는 설정 몇 개를 알려주겠다.

  Lanch Pad 메뉴의 우측 상단에는 확대 버튼이 존재한다. 확대 버튼을 누르면 더 많은 메뉴를 볼 수 있다. 굳이 이 버튼을 누르지 않아도 Quick Links의 4개의 버튼 중 하나를 누르면 확대된 설정으로 들어갈 수 있다.

  확대된 메뉴에서는 밑에 있는 아이콘을 통해 원하는 메뉴로 들어갈 수 있다.

 

  왼쪽의 로켓 아이콘부터

  런치 패드(Lanch Pad) : 간단한 정보들을 표시한다. VRChat 소식이나 접속중인 친구, 최근 들어간 월드 등을 볼 수 있다.

  알림 : 말 그대로 알림을 모아서 보여준다. 대부분은 월드 입장 신청을 수락하는 용도로 사용한다.

  프로필 : VRChat 홈페이지에서 설정한 프로필을 표시한다.

  월드 : 접속할 월드를 고를 수 있다.

  소셜 : 친구에 관한 항목을 보여준다. 친구가 들어가 있는 월드도 볼 수 있고 친구 이름을 검색하는 것도 가능하다.

  그룹 : 말 그대로 그룹에 관한 항목을 보여준다. 그룹을 검색하고 들어가는 것도 가능하다.

  안전(Safety) : 다른 이들의 등급에 따라 보일 아바타의 정도를 정한다.

  설정 : 게임에 필요한 여러 설정을 볼 수 있다.

  검색 : 찾고 싶은 월드나 플레이어를 검색한다.

  VRChat Plus : VRChat의 유료 서비스에 대한 항목이 있다.

  도움말 : 각종 도움말을 볼 수 있으나...전부 영어다.

  유료 컨텐츠 : 유료 컨텐츠를 즐길 수 있는 월드를 소개하고 그에 따라 필요한 재화도 구매할 수 있다.

 

  본 강좌에서는 안전탭과 설정탭의 일부 설정에 대해서만 기술한다.

안전(Safety)

  위의 사진이 안전탭의 모습이다. Maximum, Normal, None, Custom의 4가지 프리셋이 존재하는데 모두 내가 만나는 다른 플레이어들에 대한 설정이다.

  Visitor, New User, User, Known User, Trusted User, Friends는 플레이어의 등급이며 Friends를 제외한 모든 등급은 VRChat을 많이 플레이할 수록 등급이 올라간다.

  Voice, Avatar, User Icons & Emojis, Audio, Lights & Particles, Shaders, Custom Animation은 상대방 플레이어의 아바타를 어디까지 허용할 것인지에 대한 설정이다. Off로 설정할 경우 해당하는 설정이 상대방 아바타에게서 보이지 않게 된다.

  만약 상대방의 아바타가 안 보인다고 한다면 가장 먼저 확인해야 할 설정이 바로 이 안전(Safety)탭 설정이다.

  퍼스널 스페이스

  만약 내가 상대 플레이어에게 가까이 갔더니 그 사람의 아바타가 사라진다면 그 이유는 Personal Space 설정이 이유이다. 이 설정은 내 주변의 플레이어 아바타를 안 보이게 하는 설정으로 초기에는 최적화를 위해 기본적으로 켜져있는 설정이기도하다.

  옵션의 Audio & Voice탭의 Microphone 구역에서는 마이크 설정을 할 수 있다. 사용할 마이크를 선택할 수 있고 마이크 감도도 설정할 수 있다.

 

  Microphone Behavior은 마이크 활성화 방식에 대해서 설정할 수 있으며 4가지 방식이 있다.

  PTT(Push to Talk) : V를 눌르고 있어야 말할 수 있다.

  Toggle : V를 눌러서 마이크를 항상 키고 있는 상태와 항상 끄고 있는 상태를 전환한다.

  Always On : 항상 마이크를 키고 있는다.

  Always Off : 항상 마이크를 끄고 있는다.

Comfort Turning

  이 영상에서 보이는 것처럼 처음 VR 모드를 실행한 사람들이 회전이 뚝뚝 끊겨서 당황했다면 그 원인은 Comfort Turning 설정 때문이다. 사람에 따라서 VR에 적응할 수 있는 정도가 다르다. 각지게 회전하면 3D 멀미의 가능성이 조금 낮아진다. 따라서 VRChat은 처음 VR 모드로 접속한 사람들에겐 Comfort Turning 기능이 켜져 있을 가능성이 크다.

Holoport Locomotion

  또 VR 모드 초심자들이 겪는 문제중 하나로 움직이려 할 때 내 실제 몸뚱이는 가만히 있는데 아바타 혼자 뛰쳐나가서 설정한 자리에서 기다리고 있는 모습을 볼 수 있는데 이것 역시 위의 동영상과 같은 방법으로 처리가 가능하다.

타 플레이어 메뉴

VRChat을 플레이하다가 다른 플레이어의 아바타를 복사하고 싶거나 친구를 맺고 싶을 때는 비일비재하게 일어난다. 이 때 유용한 것이 타 플레이어 메뉴이다.

  Esc로 메뉴를 열고 마우스로 다른 플레이어를 클릭하면 기존에 보던 것과는 다른 메뉴를 볼 수 있는데 이 메뉴를 통해서 그 플레이어의 프로필을 보거나 친구 신청을 할 수 있고 해당 플레이어가 막아두지 않았을 경우 해당 플레이어가 사용하고 있는 아바타를 복제할 수 있다. VR 모드의 경우에도 메뉴를 열고 반대쪽 컨트롤러로 플레이어를 가리키며 트리거를 누르면 이 메뉴를 사용하는 것이 가능하다.


  이것을 통해 VRChat을 즐길 수 있는 가장 기본적인 준비가 갖추어졌다. 다음 강좌부터는 본격적으로 아바타 제작과 관련된 강좌가 될 것이다.