Notice
Recent Posts
Recent Comments
Link
12-26 11:26
«   2024/12   »
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30 31
Tags
more
Archives
Today
Total
관리 메뉴

킹머핀의 제작 일지

VR) 유니티에서 오큘러스 퀘스트 사용하기 우여곡절 본문

Unity

VR) 유니티에서 오큘러스 퀘스트 사용하기 우여곡절

KingMUffin 2021. 3. 30. 20:03

유니티에서 오큘러스 퀘스트 개발 환경을 갖추는 동안 굉장히 자주 사고가 정지하는 경험을 해서 이제라도 블로그에 정리하면서 마저 진행하기로 했다. 아 나 이제 블로그 없인 못 사는 거 아니야? ㅋㅅㅋ


예상치 못 하게 이 글에 유입이 많아져서 내용을 요약합니다!

  1. 이 글다음 글Oculus Intergration이라는 에셋을 이용하고,
    세 번째 글부터Unity XR Interaction Toolkit을 이용합니다.
  2. Oculus Intergration을 처음 사용하면서 생기는 문제가 많다면 이 글과 다음 글을 참고하실 수 있습니다.
  3. Oculus Intergration을 사용할 이유가 명확히 없다면 XR Interaction Toolkit으로 개발하시는 것을 추천드립니다.

 

 

일단 지금까지 한 것부터 :

유니티 허브에서 VR 템플릿으로 프로젝트를 생성한 다음에

 

UNT) 맥 외부 저장소에 설치한 유니티와 생성한 프로젝트 실행 멈춤 현상

유니티 허브와 유니티 2019 LTS를 APFS로 포맷한 외장 하드디스크에 설치했습니다. 맥에서 외부 저장소에 앱을 설치하려면 APFS로 포맷해야 합니다. 기본 용량이 120GB밖에 되지 않는 이 하찮은 컴퓨

kingmuffin.tistory.com

위의 쌩쑈를 하고 나서 

 

UNT) 분명 문제 없는데 IL2CPP 오류가 발생한다면

유니티 설치 과정에도 문제 없었고, NDK SDK JDK 경로 모두 잘 연결되어 있으며, 프로젝트는 템플릿으로 생성해서 프로젝트 설정도 완벽할 텐데. 라이브러리나 플러그인 호환 문제일 수도 있다는데

kingmuffin.tistory.com

이런 쌩쑈도 하고

 

Get Started with Oculus in Unity | Oculus Developers

Get Started with Oculus in Unity This guide serves as a starting point for the Oculus app development in Unity. It caters to a wide segment of the developer audience, who can start by setting up the development environment and end by building the first VR

developer.oculus.com

이거 다 하고 나서 (Oculus Intergration을 사용하기 위한 필수 과정입니다)

 

Unity - Manual: Configuring your Unity Project for XR

Universal Render Pipeline compatibility in XR Configuring your Unity Project for XR To configure your Unity Project for XR, follow these steps: Open the Project Settings window (menu: Edit > Project Settings), and select XR Plug-in Management. Click Instal

docs.unity3d.com

여기서 막혔다.
사실은 딱히 문제랄 건 없는데, 이상하게 위의 문서에서 가르쳐주는 Configuring 방법은 VR 템플릿 프로젝트 생성 시부터 있던 Example Asset 폴더의 XRRig를 이용하기 때문이다.

이 프리팹은 아래 이미지에서 볼 수 있듯이 컨트롤러 오브젝트와 모델도 포함한다.

게다가 인터넷에 검색해보니 VR 기기 제조사의 SDK를 설치하지 않고도 기기를 연동해서 사용하는 사람들이 있었다!

아니, 오큘러스 문서에서는 Oculus Intergration 에셋을 설치하랬고, OVRCameraRig 프리팹도 제공하는데, 처음부터 이미 다 있으면 귀찮은 과정과 큰 용량을 부담하지 않아도 되잖아!
그럼 난 뭘 써야 좋지??? ..이때부터 사고가 정지했다. 실제로 추가 작업 없이 저 상태로 빌드하면 오큘러스 리프트에서 잘 작동한다. 컨트롤러 모델이 발목 높이에 있긴 하지만.. 그건 미루어보기로 하고.

 

조금 더 찾아보니, 제조사의 SDK를 설치하지 않고 연동하는 경우는 현재 미리보기(개발중인) 패키지인 XR Interaction Toolkit를 이용한 방법이다.

이게 아마 2019년 11월에 공개된 걸로 기억하는데, 아직까지도 미리보기 상태로 업데이트 중인 걸 보면 아직은 믿음직스럽지 않다.
(20.4.2 : 믿고 쓰기로 했다)
애초에 설치되어 있는 패키지는 Toolkit이 아니라 XR Plugin Management와 Oculus XR Plugin이다.

그냥 제가 '툴킷'과 '플러그인'의 차이를 간과했다는 말입니다. ㅎㅎ

그리고 5시간 뒤, 내가 왜 4시간 동안 이러고 있는지 당췌 모르겠지만, 유니티 문서와 XRRig가 있는 이유를 드디어 조금은 알 것 같다. 이건 유니티가 지원하는 VR과 AR 기기를 위한 프리팹이다. 그러니까 오큘러스 리프트 말고도 적용 가능한 범용 프리팹이 아닐까. 어떤 제조사는 SDK에서 따로 Rig를 제공하지 않을 수도 있잖아. 아, 제발 이제 그만 생각하자. 음 아니면 나머지 기능을 직접 구현할 수도 있고.

 

이제 다음으로 넘어가자. 아, 보고서 제출 얼마 안 남았는데. 환장하겠네. ㅎㅎ

 

Understand Oculus Integration Package Components | Oculus Developers

Understand Oculus Integration Package Components The Oculus Integration package, OculusIntegration.unitypackage, is a collection of core VR features, components, scripts, and plugins to ease and enhance the Oculus app development process in Unity. It provi

developer.oculus.com

Oculus Intergration에서 제공하는 Oculus\VR\Prefabs\OVRPlayerController은 OVRCameraRigOVRControllerPrafab을 포함한다. 손 모델은 직접 추가해야 하는 듯.

먼저 Oculus\VR\Scenes\Trivial 씬을 열어보아야 한다.
이 씬이 제대로 렌더링되지 않는다면, 유니티 VR에 문제가 있다는 뜻이라고 한다.

음.. 당황하지 말자. 오류 메시지를 읽어보면, Component GUI Layer을 해당 게임오브젝트를 수정하고 저장하면 알아서 제거한다는데 별거 아니겠지.

게임 뷰로 보이는 모습

 

Component of type GUI Text is no longer available in Unity. References to it will be removed!

Hi I know that GUI Text has been removed a few versions ago. So here his the thing, a project that I have from 2019.1 I'm trying to test and build&run...

forum.unity.com

ㅎㅎ 구우욷이 또 알아보니 유니티 버전 차이에 의한 Flare Layer 문제였다. GUI랑 관련이 있나 본데.. 아 아 궁금해하면 안 돼

 

새로운 SDK를 적용할 때면 제공하는 표본(sample) 씬을 전부 열어봐야 가장 빠르게 작동 방식을 익힐 수 있다.

 

Unity Sample Framework | Oculus Developers

Unity Sample Framework The Unity Sample Framework provides sample scenes for developers for common VR-specific features such as hand presence with Oculus Touch, locomotion, custom hands, and the Oculus Guardian System. With the Sample Framework, developers

developer.oculus.com

그래서 이 문서를 읽으며 씬을 하나하나 열어보고 탐구부터 한 후에, 다시 첫 번째 문서를 읽으며 스크립트를 직접 다루어보아야겠다.

다음 글에서 계속..