1. 옷장
1.1. 옷 import하고 캐릭터에 넣기
전용옷 prefab파일을 캐릭터 자식으로 넣는다. 이번 글에서는 2개를 넣었다.
1.2. 모듈러아바타로 합치기
https://modular-avatar.nadena.dev/
위 링크에서 다운받을 수 있다.
모듈러아바타라고 현재 옷장 기능을 만드는데는 가장 편리하고 사용하기 쉬운 모듈이다. 전용옷이 캐릭터 자식으로 있으면 우클릭 > Modular Avatar > Setup Outfit을 하면 자동으로 합쳐진다.
모듈러아바타 쉐이프키 연동하기 ↓
가슴 쉐이프키 연동하기
가슴 사이즈가 변하면, 옷의 가슴 부분도 사이즈가 변해야 한다.
Body의 BlendShapes부분과 해당 옷 오브젝트의 BlendShapes를 연동하고싶다면, 모듈러아바타가 지원하는 MA Blendshape Sync를 사용하자.
trarget 오브젝트를 선택후 add Component로 MA Blendshape Sync를 추가한다.

Mesh에서 Source를 고른 후 Target도 적절히 고르면 된다.

1.3. parameter에셋 설정
VRC Expression Parameters에 clothesIndex라는 변수를 Int로 만들어준다.
1.4. menu에셋 설정
Clothes Change라는 sub menu를 만들어서 각 옷마다 toggle, parameter를 세팅하자. 기본옷이 clothesIndex 0이고, 옷 하나마다 1씩 늘어난다.
1.5. 애니메이션 찍기
여러 아바타에 옷을 바꿔입으려면 한 애니메이션의 역할은 옷을 보이게 하고, 그 옷의 armature만 켜야 한다.
옷마다 Active애니메이션을 만들고, 기본으로 입고있는 옷을 Active하지 않는 애니메이션도 만든다.
Clothes라는 자식을 만들어서 그 안에 옷들을 넣자. 그렇지 않으면 애니메이션을 찍거나 무엇을 할 때 난잡하다.
캐릭 누르고 Animation창에서 Create를 누르고 옷.Is Active를 눌러 만들자. 기본옷은 armature도 Active하자.
옷을 Active하고, 적절한 속옷을 Active하고, 힐 또는 발 같은 blendshape를 옷에 맞게 적절히 조절하자.
그리고 기본 옷 & armature를 off하는 애니메이션을 아바타마다 1개씩 만든다.
1.6. FX에 parameters & layers 설정
먼저 clothesIndex라는 변수가 어떤 역할인지 보겠다.
clothesIndex는 0일때 기본옷, 1일때 두번째옷, 2일때 세번째 옷이다.
FX에 parameter로 똑같이 clothesIndex를 추가해준다.
다음 사진은 FX Layer에 clothesIndex이다.
보면, 시작하면 default_clothes상태가 된다.
Any State -> default_clothes 조건은 clothesIndex == 0이다.
Any State -> 300JPY_001 조건은 clothesIndex == 1이다.
Any State -> 300JPY_010 조건은 clothesIndex == 2이다.
나머지도 1씩 늘려가면 된다.
Has Exit Time은 체크해제 하고 Transition Duration (s)는 0으로 하고 Can Transition To Self는 체크해제한다.
defaultClothesOff라는 layer를 만들어 clothesIndex != 0 일때, 기본 옷이 off되는 애니메이션을 킨다.
(이 글에서는 옷 변경만 다루고, 옷의 파츠는 다루지 않는다)
2. 헤어 고르기
2.1. 헤어 import하고 캐릭터에 넣기
캐릭터 자식으로 Hair라는 빈 자식을 만들고 헤어 prefab을 Hair 자식으로 넣는다.
이번 글에서는 4가지 헤어(기본헤어 포함)를 사용했다.
2.2. Armature합치기
헤어 prefab을 보면 Armature 자식에 *** Head라는 것이 있을 것이다. 이것을 캐릭터 Armature의 Head의 자식에 넣어준다.
2.3. parameter에셋 설정
VRC Expression Parameters에 HairIndex라는 변수를 Int로 만들어준다.
2.4. menu에셋 설정
Hair Change라는 sub menu를 만들어서 각 헤어마다 toggle, parameter를 세팅하자. 기본헤어가 HairIndex 0이고, 헤어 하나마다 1씩 늘어난다.
2.5. 애니메이션 찍기
애니메이션은 헤어마다, 헤어ON & 헤어Armature ON를 녹화하자.
기본 헤어를 off하는 애니메이션도 녹화하자.
2.6. FX에 parameters & layers 설정
parameters에 HairIndex를 추가한다.
Layer를 보면, Any State에서 머리로의 화살표의 Condition은 HairIndex가 0,1,2,3일때이다.
Has Exit Time은 체크해제 하고 Transition Duration (s)는 0으로 하고 Can Transition To Self는 체크해제한다.
defaultHairOff layer를 만들어 HairIndex != 0일때, off애니메이션을 재생한다.
3. 바디스킨 고르기
3.1. 스킨 texture 폴더에 넣기
직접 폴더에 추가하거나, 따로 import하는 방법이 있다면 그렇게 한다.
이 글에서는 두 스킨을 추가하겠다.
3.2. 메테리얼 만들기
기본 바디 메테리얼을 복붙하여 이름을 적절히 변경 후 inspector에서 메인컬러/알파설정 - 메인컬러 색을 texture폴더에서 고른다.
3.3. parameter에셋 설정
VRC Expression Parameters에 bodySkin이라는 변수를 Int로 만들어준다.
3.4. menu에셋 설정
body Skin라는 sub menu를 만들어서 각 스킨마다 toggle, parameter를 세팅하자. 기본스킨이 bodySkin 0이고, 스킨 하나마다 1씩 늘어난다.
3.5. 애니메이션 찍기
각 스킨마다 바디에서 materials를 바꿔주는 것을 녹화한다.
3.6. FX에 parameters & layers 설정
parameter에 bodySkin을 추가한다.
Layer를 보면 각 화살표의 Conditions는 bodySkin이 1, 2, 0, 0일때다.
4. 여러아바타
한 아바타에 너무 많은 기능을 넣으면 texture사이즈가 너무 커진다. texture사이즈가 커지면 그래픽카드vram이 부족해지기때문에 같은 아바타의 기능을 나눠 texture사이즈를 줄여야 한다.
scene에서 아바타를 클릭하면 inspector 에서 pipeline manager가 있는데, blueprint id가 해당 아바타를 구분하는 id이다. detach를 누르면 위 사진처럼 blueprint id가 공란이 된다. 그 후 sdk control panel에서 새로 업로드 하면 된다.
필요하다면 FX와 MENU, parameter도 아바타마다 만들어주면 된다.
'Unity > VRChat' 카테고리의 다른 글
VRChat 아바타 최적화 (2) | 2024.01.10 |
---|---|
VRChat VRC Contact Receiver(손뼉치기) (0) | 2024.01.08 |
VRChat 아바타 Expression ON/OFF 토글 기능 만들기 (0) | 2023.12.16 |
VRChat 아바타 업로드 하는법 - avatar project (0) | 2023.12.13 |
VRChat 아바타 업로드 하는법 - SDK 설치 (0) | 2023.12.13 |