IK라는 말을 직역하면 역 운동학이라고 부르고 대체 이 IK란 게 뭐길래 이렇게 논란이 되느냐 말이 많을거임
근데 그 IK가 뭔지 잘 모르는 사람이 있을까봐 함 설명충 하고 감
우리가 사용하는 아바타에는 본이 대략 70개씩 들어가고 그럼.
이 본의 움직임에 맞춰서 우리가 사용하는 3D 모델의 폴리곤이 이리저리 굽히고 움직이고 늘어나 함.
근데 우리는 실제로 70여개의 본을 모두 트래킹하고 있지 않음.
VR로 조작가능한 본은 컨트롤러로 조작하는 손가락을 제외하고 머리(HMD) 양손까지 3개.
풀트래킹의 경우엔 허리와 양다리까지 해서 6개에 불과함.
고작 6개의 움직임만 추적해서 70개의 본을 모두 움직여야한다는 것임.
여기서 IK라는 애가 작동하는데 현재 추적되고 있는 일부의 본의 움직임을 통해서 다른 본의 움직임을 추정해서 움직이게 하는 거임.
손이 멀리 있으면 어깨와 팔도 뻗고 있겠구나.
발을 뻗고 있으면 허벅지와 종아리도 앞으로 뻗고 있겠구나.
이런 식으로 일부의 동작에서 나머지 본의 움직임을 역으로 추리하는 기술임. 그래서 "역"운동학인 것이고.
그럼 네트워크 IK라는 건 뭐시냐.
원래 한 인스턴스에 20명의 유저가 들어와서 각각 움직인다고 친다면
PC 내부에선 이 20명의 유저의 일부 정보만 갖고 전체 본의 움직임을 추정하는 IK 연산에 들어감.
이건 당연히 CPU를 잡아먹는 활동이고, 안 그래도 멀티코어 안먹는 유니티 기반 VR챗은 CPU 사용률에 고통받음.
그래도 게이머들은 "아무튼 어떻게든" 플레이해왔음.
그런데 이번에 오큘러스 퀘스트 포팅을 하면서 문제가 터졌는데, 아바타 최적화를 아무리 빡세게 해도
이 IK 연산은 줄일 수가 없었을 것임. 휴머노이드 아바타에 필요한 뼈 갯수는 정해져있을텐데 아무리 빡세게 해도 무리가 있음.
그래서 VR챗은 네트워크 IK라는 걸 도입하게 되는데
자기 자신의 IK를 각자 PC에서 연산시켜서 다른 유저한테 전송하는것임.
그럼 20인분의 연산이 1인분이 되니까 이론상 할 일이 1/20로 줄겠지?
근데 여기서 문제가 발생하는데, 바로 레이턴시(지연)임.
인터넷으로 이런 데이터를 주고 받는 건 시간이 걸림.
하다못해 음성채팅을 해도 딜레이 걸려서 상대랑 말 겹치고 그러지?
당연히 이 IK도 그런 레이턴시가 있음.
예전에 네트워크 IK 안 넣었을 때도 이런 버벅임은 있었고.
그러다보니 이것도 최대한 정보량을 줄이고 압축하고 스킵해서 최대한 실시간에 맞게 보낼 것인데
아마도 그런 문제 때문에 지금 움직임이 조금씩 어그러지면서 월드에서 문제가 터지고 있지 않나 싶음.
물론 정확한 원인은 나도 모르겠음 알면 내가 VR챗 개발자겄지.
뭐 이대로 VR챗 망할거다 하는 사람도 있는데 그건 아닐 거 같고
이미 버그 리포트도 들어갔고 단계도 "수정중" 상태임.
https://vrchat.canny.io/bug-reports/p/particle-based-pens-unusable-on-latest-update
vrchat.canny.io라고 vr챗 공식 버그 리포팅/피드백 사이트임.
In Progress 보이지? 수정중이라는 거임
네트워크 IK 이후로 움직임이 이상한 거 보이면 여기서 동일 증상 있는 사람 찾아서 검색해보고
따봉 눌러주면 운영진들이 확인하고 고치고 그럼