내용 요약

  • Missing Script 컴포넌트 제거
  • 컴파일 에러난 프로그램 업데이트 또는 제거
  • VRCSDK 정상 상태 확인
  • + 유니티 프로젝트 관리 기초 개념

VRChat 채널에 올라오는 대부분 업로드 안 되는 케이스는 여기 내에서 다 해결됨, 당장 생각나는 건 이 정도인거 같은데 다른 조건이나 잘못된 정보는 이야기 해 줘용

이 외에 화이트리스트에 없는 컴포넌트, 사운드 에셋 옵션 같은 것들이 있는데 이런 조건들은 보통 VRCSDK 패널에서 이야기 해 주니 여기에서는 생략




Missing Script 컴포넌트 제거


구형 의상이나 아바타 같이 주로 DynamicBone(다이나믹본) 시절 잔재가 남아있어서 그러는 경우가 많은데, 이런 식으로 Missing Script가 있으면 업로드 눌러도 뭔가 진행하다가 아무 일이 안 일어나는 경우가 많음

아니면 Build & Publish for Android 같이 윈도우용인데 퀘스트용으로 빌드하려는 버튼로 변하는 경우도 있는데 나의 경우에는 주로 이런 케이스였음


해결법은 무슨 컴포넌트인지 알면 해당 애드온을 설치하거나 삭제하는 방법인데, 어떤 애드온이 필요한지 알려면 해당 에셋의 페이지를 참고하면 됨

Missing Script를 제거하는 프로그램에는 Missing Remover (삭제)라는 프로그램도 있고, 나도 관련해서 지워조 (찾기+삭제)라는 프로그램 만들었었는데 편한걸로 쓰면 될 듯




컴파일 에러난 스크립트 제거


그림처럼 프로젝트를 연 상태에서 Console 패널에서 Clear 버튼을 누르면 아무것도 안 남아야 하는데, 화면처럼 오류가 계속 남는다면 프로젝트에 설치된 어떠한 프로그램에 에러가 난 거임


해결 방법은 두 가지이다


  • 오류가 발생하는 애드온 패키지를 최신 버전으로 업데이트
  • 오류가 발생하는 애드온 패키지를 삭제


이 때 업데이트를 하거나 삭제 할 때, 덮어쓰기하거나 일부만 삭제하지 말고 전체 폴더를 갈아엎어 줘야 함

대부분 프로그램은 내용물들이 연결되어있고, 업데이트 할 때 파일이 추가/제거 되는 케이스가 많은데 덮어쓰기하면 기존 내용과 최신 내용이 뒤죽박죽 섞여서 에러가 나는 경우가 많음, 심지어 똑같은 내용을 가진게 두 개 이상 깔려도 에러가 남


그래서 자동으로 폴더 째로 원클릭 업데이트 해 주고 관리하기 편하라고 VCC에 패키지 관리자 기능이 있으니 그걸 지원하는 애드온을 쓰는게 좋음

다만 마시멜로 피직스본 같은 경우에는 애드온 내부 폴더에 아바타 FX 레이어를 복제 해 놓는다던가 그런게 있어서 

마시멜로 같이 VCC로 못 올리는 유료인 경우이나 내부에 뭔가 데이터를 저장하는 특수 케이스는 폴더를 백업하고 삭제하고 재설치하는 방식으로 진행하면 문제가 생기더라도 해결하기 좋음

보통 위의 2개를 하면 보통 해결 될 거고, 업데이트 해도 너무 오래되어서 최신 VRCSDK를 지원 안 한다면 비슷한 툴을 새로 찾거나 포기하는게 좋음




VRCSDK 정상 상태 확인


보통 위의 스크린샷과 비슷하게 VRCSDK가 깨져서 아바타 디스크립터가 제대로 안 나오거나, VRCSDK 메뉴 아래에 아무것도 없다 이런 경우에는 VRCSDK를 재설치해야 함, 위의 컴파일 에러 때문에 같이 깨지는 케이스도 있어서 해결하면 VRCSDK가 복구되는 경우도 있지만 개인적인 경험으로는 이렇게 깨지는 경우에는 프로젝트를 새로 파야 해결되는 경우가 많았음

주로 VRCSDK 버전 변경으로 이렇게 되는 경우가 많은거 같은데, 임시 데이터가 남아서 그런지 패키지를 지우고 깨끗하게 설치해도 여전히 깨지는 케이스가 많아서 이런 경우에는 유니티 종료하고 프로젝트 폴더의 Library 폴더를 통째로 날리고 다시 켜 봐야 함



위의 Library 폴더를 삭제하고 유니티를 켜면 처음부터 프로그램을 컴파일하고 모든 에셋을 다시 다 게임용으로 불러오는 작업을 하게됨

이렇게 해도 안 되는 경우에는 프로젝트를 새로 파는게 제일 빠름





프로젝트 새로 파는 방법

VCC에서 새로운 프로젝트를 만든다 > 해당 유니티 프로젝트를 연다 > 유니티에서 VRCSDK 패널 열어서 제대로 열리는지 에러가 없는지 확인 > 쉐이더 임포트 > 에러 없는지 체크 > 아바타 데이터만 옮기기 > 에러 없는지 체크 > 애드온 각각 하나씩 설치


특히 에러난 프로젝트에서 복구하는 경우에는 위의 순서를 반드시 지켜서 복구하자, 어디서 문제가 생기는지 알면 문제 해결하기가 쉽다! 그리고 질문 올릴 때에도 어느 과정에서 에러 났는지 알려주면 답변 해 주기도 좋다

하나씩 설치하는게 중요한거는 당연하지만 어디서 에러가 났는지 확인하려면 번거롭지만 꼭 이렇게 복구하는게 좋다

완전 아무 것도 없는 빈 프로젝트에서 VRCSDK도 안 되는거는 다운로드 오류이거나 진짜 컴퓨터 문제일 수 있다




쉐이더 및 애드온 관리

VRC 커뮤니티가 커지면서 각종 쉐이더와 애드온도 많아진 상황인데, 이러한 프로그램들이 많아질수록 유니티 프로젝트도 무거워지고 문제가 생겼을 때 해결하기 어려워짐


정리해서 쉐이더는 가능한 1가지 종류로 통합해서 줄이고, 안 쓰는 애드온은 삭제하면 됨

극단적으로 기본 쉐이더가 되겠지만 VRCSDK랑 아바타만 있어도 업로드가 가능함, 다시 말해서 다른 프로그램들은 필요에 의해서 존재해야 하는거지, 필요 없다면 지우는게 문제를 일으킬 소지가 적어지고 고질적인 유니티 튕김도 방지 할 수 있음

왜냐하면 프로젝트에 존재하는 프로그램들은 전부 다 컴파일 되어서 메모리에 계속 존재하는데 유니티에서 뭔가 작업 할 때마다 조건이 맞으면 트리거가 되어서 실행 될 수 있는데 이 때 뭔가 안 맞으면 유니티가 튕기거나 오류가 생긴다고 생각하면 편할 듯

어차피 필요하면 다시 깔면 되니까, 쓰고 나서 안 쓰는 애드온은 과감하게 지우자


이건 나의 케이스인데, 일 때문에 쉐이더를 여러 개 깔아놓고 쓰는데 한 개로 통일해서 쓸 때에는 한 번도 안 튕기던 유니티가 쉐이더 여러 개 설치되고 나니 잘 튕김...



결론

이 게임은 아바타 꾸미기를 빙자한 유니티 마스터 트레이닝 프로그램임