
여기는 현장요원 퍼지.
최근에 개인적으로 바빠서 패치되자마자 쓰고싶었는데.. 지금쯤이면 다들 알아서 바꿧을거다.
못바꿧다고? 그럼 이제 이-글을 봐라
** 오류터져서 니 프로젝트 터져도 책임안짐
너네가 어떤 에셋을 써서 어떤 충돌이 날 지 난 모른다.
그러니 반드시 프로젝트 폴더 통째로 백업해두길 바람

1. 이 폴더 통째로 삭제
그리고 한번 유니티 프로젝트 껏다 키고 아무것도 하지말것

2. SDK 받는 곳 가서 저거 눌러서 받기
https://vrchat.com/home/download
그리고 저걸 Import package 하면 된다.
이거 못하면 애초에 다본있는 캐릭터도 안넣어봤을거 아님
그다음 유니티프로젝트 다시 껏다 키기

3. 여기에 이거 생김. 누르고 다시 껏다 키기
(Armature에 있는 다본은 다 바뀌는데 안껏다키니까 Armature 밖의 다본이 안바뀌더라고)
그러면 이렇게 된다.


이렇게 콜라이더랑 다본이 다 바뀜

이런식으로 1대1로 바뀜
Inert는 Immobile로 바뀌는데, 저긴 내가 미리 바꿔놓고 스샷을 찍은거라 수치가 다름
원래는 0으로 그대로 감.

4. Immobile을 바꿔준다.
Inert는 Immobile로 변형이 되는데 값이 그대로 옮겨간다.
Inert와 Immobile은 움직임에 얼마나 민감하게 흔들리는지를 의미하는데
Inert가 0인건 딱딱하게, 1인건 출렁거리며 움직이게 된다. (더 민감해지니까)
근데 Immobile은 반대로 0일 때 출렁이고 1일 때 딱딱하다.
이걸 똑같이 변환하는 VRC 제작자들의 대가리에 찬사를 보낸다.
결론만 말하자면
immobile 수치를 반대로 바꾸고, 그 값에서 0.5에 가까워지도록 0.05~0.1만큼 옮기면 비슷해진다.
이렇게 말하니 감이 안오니까 예시를 보자.
Inert 0 -> Immobile 0.9 정도로 바꾸면 된다.
먼저 수치를 반대로 바꾸면 1이 되고, 0.5에서 가까워지려면 0.1을 빼면 되지?
0.1을 빼야하는 이유는, Immobile 1은 진짜 아예 안흔들리는 수준이라 그럼. Inert는 0이라도 어찌어찌 흔들리긴 하는데 말임.
괜히 다본을 돈받고 파는게 아니다. 피직스본은 수치가 ㄹㅇ 단순하게 작동함
이런식으로 하는걸 정리하면
Inert (DB)
| Immobile (PB) |
0 | 0.9 |
0.1 | 0.8 |
0.3 | 0.65 |
0.4 | 0.55 |
0.5 | 0.5 |
0.7 | 0.35 |
0.9 | 0.2 |
1 | 0.1 |
대강 이렇게 바꾸면 된다.
모든 피본 컴포넌트에 이걸 다 해줘야함.
※ 이래도 너무 출렁인다 싶으면 Stiffness 0.1~0.2 정도 주면 됨

5. Collision Radius가 0이라면 아주 작은 수 하나라도 넣어준다.
Collision Radius는 그 본의 충돌범위를 의미한다. 본을 중심으로 한 구체가 충돌범위가 된다.
다이나믹 본은 이게 0이라도 본 위치가 부피가 0인 점으로 남아서 충돌을 한다.
피직스 본은 그딴거 없고 부피가 0이면 충돌이 아예 없어진다.
이 충돌이 없어지는게 콜라이더와의 충돌도 없어지는 거라서
기존 다본에서 쓰던 outside 콜라이더들이 안먹히게 된 이유기도 하다.
이런대도 그대로 변환하고 모르쇠한 VRC 제작자들의 대가리에 찬사를 보낸다.
그렇기 때문에 그런 콜라이더를 쓴다면 반드시 아주 작은 수라도 넣어주도록 하자.
Inside 콜라이더는 본의 위치만을 보기 때문에 이 수치에 영향을 별도로 받지 않는다.

6. 다른 플레이어와의 상호작용 설정하기
Allow Collision - 플레이어의 손에 반응하게 만들 것인가?
Allow Grabbing - 플레이어가 손으로 잡을 수 있게 만들 것인가?
Allow Posing - 플레이어가 손으로 잡고 고정시킬 수 있게 만들 것인가?
여기서 손은 유니티에서 넣은 콜라이더랑 관계없이 VRChat 게임 안에서 저절로 생기는 충돌범위를 씀.
그러니까 그 부분은 너무 신경쓰지말고, 말 그대로 손이랑 상호작용하게 할건지 안할건지 생각해.
Max Stretch 올리면 늘어도 남. 0.5 하면 1.5배 늘어남.
이렇게 땜빵으로 다 맞췄으면
직접 인겜에서 느껴보고 세세하게 맞추면 됨.
수고