- 제 목
- 월드소개 아바타 월드, 섯다 월드 오큘러스 퀘스트 대응해 봄
- 글쓴이
- 마끼아또
- 추천
- 8
- 댓글
- 3
- 원본 글 주소
- https://gall.dcinside.com/vr/352405
- 2020-01-23 00:25:00
아바타 월드 : 링크 (용량 : 5.16MB)
섯다 게임 월드 : 링크 (용량 : 3.13MB)
예전에 만든 아바타 월드랑 섯다 월드를 한 번 오큘러스 퀘스트에 대응해 보는 걸 해 봤음
월드 업데이트하다가 강좌에서 우연히 봐서 해 보고 싶어서 해 봤는데, 정작 바이브 유저라서 퀘스트에서 잘 돌아가는지 모르겠음 월드 테스트 눌러도 안 들어가짐
그래서 브붕이 중에 퀘스트 유저 한 두 명은 있는거 봤었는데, 프레임이라던가 이런거 잘 되는지 적어줬으면 싶어서 갤에 올려봄
또한 퀘스트 대응 관련해선 강좌가 없어서 관련해서 정보도 적어두면 그래도 어딘가 쓸모있지 않을까 해서 적음
아바타 업로드한 거 다시 뚜따할 거 빼고 전부 퀘스트 마크 찍으니까, 잉여스럽지만 뭔가 보람이 찼다
PC VR 브붕이를 위한 업데이트
아바타 월드에 사진기랑 세트장도 갖다놨으니 친구들이랑 같이 사진을 찍으면서 놀아보아요
바로 아래 사진의 우측 하단을 보면, 사진기로 찍은 다음에 저기 흰색 박스 안에 들어가서 F12 캡쳐 버튼 누르면 손실 없이 고해상도로 저장이 됨
다양한 사진기 필터랑 조명 프리셋을 갖다놨으니 많이 많이 촬영해 보세요
아바타 퀘스트 대응 과정
(좌측 PC 버전, 우측 퀘스트 버전) 퀘스트 버전은 눈물나게 찐빵스럽게 변했다
퀘스트 아바타 권장 스펙은 아래와 같다
5,000 폴리곤 이하 / 머테리얼 1개 / 드로우콜 3회 이하 / 본 갯수 66개
하지만 브갤 강좌를 보면 어쨌든 1만 폴리곤까지는 허용이 된다고 해서 전부 1만을 목표치로 잡았다, 그리고 본인은 퍼블릭 할 때 미리 머테리얼이나 텍스쳐 등등을 최적화를 미리 해 놔서 데시메이트만 하면 곧바로 대응이 가능해서, 한 번 대응해 본 후 프로세스를 짜서 주말 하루 동안 잉여스럽게 작업했다
1. 필요 없는 버텍스를 삭제한다 : 신발 속 발이라던가, 옷 안의 바디 등 미리 폴리곤을 없애면 그만큼 원형 보존하기 좋아진다
2. 파츠 별로 중복 버텍스 병합(Merge by Distance) : 데시메이트 하면서 서로 분리되는 걸 방지
3. Head 부위를 제외하고 캣츠 플러그인으로 데시메이트 : 손가락은 보존하려고 했으나 제한치가 빡세서 일단 뭉갬 ㅠㅠ
4. 본과 웨이트 병합 : Hair, Skirt, Breasts 등 하나의 본 정도로 묶을 여유 정도는 된다, 나중에 다이나믹본이 허용되면 쓰려고 예비용으로 둠
5. 머테리얼 정리 : 불투명과 투명 2개로 정리
6. 아이트래킹 체크
7. FBX 출력
8. 복제한 프로젝트를 열어서, 빌드 세팅 및 에셋 정리
9. 아바타 불러온 후 세팅
10. 애니메이션 점검
11. 업로드 : 기존에 PC에 쓰던 블루프린트에 업로드하면 된다
쉐이더는 VRChat 전용 쉐이더만 가능하다
일반 스킨은 VRChat/Mobile/Toon Lit 을 사용하고(큐브 쉐이더랑 비슷하다고 보면 된다)
투명 머테리얼은 VRChat/Mobile/Particle/Additive 를 사용한다
Toon Lit은 기본적으로 큐브 쉐이더랑 비슷하게 평면적인 쉐이더이지만, 리얼타임 다이렉셔널 라이트(강도 1 이상)에서 노출과다 현상이 나고
리얼타임 포인트랑 스포트라이트에는 전혀 반응하지 않는다, 월드에 존재하는 Light Probe 빼곤 못 쓴다고 생각하면 됨
그리고 오큘러스 퀘스트 버전은 투명 머테리얼은 지금은 불가능하기 때문에 표정에 쓰이는 홍조나 별 같은 효과는 파티클 쉐이더를 사용해서 구현해야 한다, 알파 값으로 가리는 것이 아니기에 쉐이더 이름처럼 기존보다 더 밝게 오버레이 되는 식으로 표현이 된다, 그래도 이 정도면 감지덕지
텍스쳐 해상도는 2048px 한 장만 써서 더 압축 안 해도 된다고 생각했지만, 그래도 VRAM에 여유를 주기 위해 1024px로 유니티 설정 값만 바꿔서 대응했다
이렇게 해서 아바타 퍼포먼스 결과 값은 Poor이 나왔다, 폴리곤이 오버했고 머테리얼이 2이기 때문
작업을 다 끝내고나니 킷슈 퀘스트 버전 5천 폴리곤짜리가 갑자기 대단해 보였다
블렌더에서 본 아바타 모습
이렇게 같은 블루프린트로 PC 버전과 퀘스트 버전을 업로드하면 PC 유저는 PC 버전 아바타를 로드하고, 퀘스트 유저는 퀘스트 버전 아바타를 로드하게 된다
PC 유저들한테는 겉으로 보기에는 다같은 PC 버전으로 보여서 퀘스트 유저인지 구분하기 어려움, 프로필에 나오는 아이콘으로만 정확히 구분이 가능함
그리고 YouTube 영상을 보면 퀘스트 유저는 PC 전용 아바타를 보면 로봇으로 보여서 PC 아바타를 아예 못 쓰는 것으로 생각했는데
아바타 월드에서 놀고 있는데 퀘스트 유저가 PC 전용 아바타를 착용을 하고 돌아다니는 걸 봐서는, 스스로는 PC 전용 아바타를 감안하고 쓸 수 있는거 같기도 함
표본이 한 명이라서 섣불리 이야기하긴 그렇지만 PC 전용 아바타가 아예 로드가 안 된다면 다른 아바타로 바꿀텐데 착용한다는 건 보인다고 해석할 수 밖에 없음
그래서 아바타 월드 제작자들은 아바타 자체는 최적화하지 못하더라도, 월드 만이라도 퀘스트 대응하면 더 많은 유저들이 아바타를 사용할 수 있을 것으로 생각
아바타는 PC 버전을 사용 할 수 있더라도, 월드는 아예 접근이 안 되는 걸로 알고 있기 때문
월드 퀘스트 대응 과정
월드는 프레임이 떨어지면 플레이어 체류 시간이 짧아지는 경향이 심해지므로, 최대한 아는 선에서 최적화를 많이 하려고 했음
퀘스트 월드 권장 스펙은 아래와 같다
플레이어 인원 제한 최대 10명 / 월드 오브젝트 도합 50,000 폴리곤 이하 / 월드 용량 20MB 이하 / 드로우콜 50회 이하 / 오디오 소스 3개 이하
대체로 월드 최적화는 논리(트리거) 최적화보다 오브젝트랑 머테리얼 최적화 과정이 대부분이었음
집과 같은 물체는 구조가 변경되면 안 되므로 손수 최적화를 하고, 오브젝트는 간단한거 빼곤 블렌더의 데시메이트 기능으로 최적화를 함, 오브젝트를 깔끔하게 만들어놨으면 단순하게 FBX 파일만 바꿔치기 하기만 해도 속성값 변경 없이 쓸 수 있었음
메시메이트 된 오브젝트는 나중에 PC 월드에서 LOD 기능에도 쓸 수 있으니 이 과정은 한 번 해서 더블로 쓸 수 있는 과정이라 생각
쉐이더는 VRChat/Mobile/Diffuse를 주로 사용함, 유니티 기본 쉐이더랑 비슷한 Standard Lite 쉐이더가 존재하는데 실시간 라이트도 없고, 리플렉션도 빼는게 더 나은 상황에서 노멀맵이나 금속성 표현은 사치인거 같아서 그냥 디퓨즈로 통일하고 리플렉션도 제거함, 이미션이 필요한 경우에는 스탠다드를 사용한다고 보면 됨
또, VRChat 제작진이 실수했는지 포탈 Prefab의 큐브 오브젝트를 스탠다드 쉐이더로 설정해 놓은 오류가 있으므로, 에러 메시지가 뜨면 여기를 체크해 보면 됨
텍스쳐 해상도는 PC 버전은 1024px를 기본으로 쓰고, 중요도가 낮을수록 더 낮은 해상도 값을 줬는데, 퀘스트에서는 512px를 기본으로 썼음
PC 버전 아바타 월드
퀘스트 버전 아바타 월드
투명 재질이 표현이 안 되어서 탁자가 흰색으로 변한 걸 볼 수 있다, 창문은 그냥 폴리곤을 없애서 투명을 표현함
PC 버전 섯다 게임 월드
퀘스트 버전 섯다 게임 월드
PC 버전은 분위기 표현을 위해서 포스트 프로세싱이 들어가서 톤 차이가 심해보이는데, 섯다 월드도 후처리 빼면 투명 재질 빼곤 거의 비슷하게 표현된 거 같음
프레임이 어느 정도 나오는지 테스트하고 싶은데 정작 방법이 없어서, 오큘러스 퀘스트 해상도에 시야각 90도 정도로 카메라를 세팅해서 움직여 보면서 재보니 대략 110 프레임 정도로 방어가 되길래 최적화가 되었다고 판단함, 오큘러스 퀘스트 화면 주파수는 75hz 이니까 충분할거라 생각
퀘스트 버전 월드를 만들 때, 거의 필수적으로 라이트맵을 굽게 되는데 이 때 DX9의 한계인지 라이트맵 텍스쳐를 압축하면 얼룩덜룩해 보이는 현상이 발생한다
이 경우 그냥 텍스쳐 압축 옵션을 꺼주면 깔끔한 모습이 된다, 압축 할 때에는 섯다 월드 용량이 약 2MB 였는데 압축 안 하면 3MB로 늘어나는 걸 봐선 압축 안 하는게 더 낫다고 판단함
인게임
VRChat 문서 상으로는 양쪽 월드 하이어라키 구조와 GameObject 이름이 같으면 동일한 네트워크 통신이 되는 것으로 보이는데, 실제 인게임에서 퀘스트 유저가 카메라를 가지고 노는데 내 눈에는 전혀 보이질 않는 오류가 있어서 이 부분은 좀 더 연구가 필요할 거 같음
또한 트리거에서 PC용으로 만들어진 오브젝트(라이트 등등)가 들어갔고 플레이어 간 동기화가 필요할 경우, 단순히 오브젝트를 삭제를 하기보다 컴포넌트만 제거해서 빈 GameObject로 만드는 식으로 대응해야 양쪽 유저의 행동 결과가 어긋날 확률이 줄어드는거 같음
원래 사람이 없던 아바타 월드라서 이번에 퀘스트 대응 업데이트를 하고 나서 방문자가 크게 증가하였는데, 업데이트 당일날에는 방문자(PC, 중복 포함) 약 1천 명 정도이었고 업데이트 후에는 약 600명 정도로 추산이 됨
퀘스트 유저는 아무래도 월드 선택 풀이 좁다보니 순수 퀘스트 유저 방문이 꽤 많은 편이고, 피크 시간대는 우리나라 기준 오전 10시 30분에 사람이 제일 많이 방문함
전에는 가끔 가다 한 두명 접속한 걸 본 아바타 월드였는데, 지금은 상시 3~5명 정도는 있게 되어서 퀘스트 대응하기 잘했다고 생각이 듬
아무래도 열심히 만든 월드가 사람이 없으면 아쉽기 마련인데, 월드 만드는 브붕이들도 퀘스트 대응하면 더 많은 사람들이 월드에 놀러올 수 있을거라 생각함
끗
여주다 | 개추 | 2020.01.23 00:38:57 |
죽은참새 | 노고에 개추 드립니다 | 2020.01.23 00:40:51 |
세이렊 | 고생에 개추 그리고 퀘스트 화질 뭉개지는거.... 어휴 vrc는 웬만하면 pcvr로 하자 | 2020.01.23 00:48:38 |