본문 바로가기

졸프-오만과 편경

[기술블로그] 브이알 게임 개발을 위한 유니티 세팅

1. 유니티 설치

우선, 유니티 버전을 최소 2018.4.x 이상, 추천 2019.4 LTS or 2020.1로 설치해야한다. 그런데 처음에 설치할 때 유니티 허브가 설치되며 자기 마음대로 최신 버전을 설치해준다.  나는 2019.4.15f1 (LTS)이 설치되었다. 

 

**메인 메뉴에서 '설치'로 들어간다. 버전 아래에 안드로이드 아이콘이 없으면, 오른쪽 상단에 점 세개를 누르고 '모듈 추가'를 클릭한다. Andriod Build Support와 Android SDK&NDK Tools, OpenJDK를 설치해준다.

2. 기기 언박싱

컨트롤러는 오른쪽 왼쪽이 구분되는 touch다.

 

우리 팀 제 5의 팀원과 손을 잡아보았다.

케이블은 조금 당황스럽게,, 중간에 두 갈래로 갈라지는 히드라 형태로 되어있으며 하나는 USB, 하나는 HDMI선이다.

 

3. 기기 설정

오큘러스 홈페이지에 가서 리프트 소프트웨어를 다운로드 한다. 오큘러스 계정을 생성하고 로그인 해야한다.

이후, 안내에 따라서 필요한 케이블이 다 연결되도록 한다.

이때에 내가 애먹은 것은 HDMI선 연결인데, 우선 노트북에는 안된다.

나는 원래 데스크탑에 외장 그래픽을 쓰고, 거기에 HDMI로 내 메인 모니터를 연결하여 사용했다.

하지만, 리프트에 HDMI선을 연결해주기 위해서는 원래 모니터가 쓰던 HDMI포트에 리프트 헤드셋 HDMI선을 꽂아야 해서 원래의 모니터는 DVI-D선으로 연결하였다.

 

대여한 기자재에 같이 들어있던 'Touch'라는 기어를 사용하려면 센서를 두개 모두 연결해야한다. 결과적으로 USB포트 3개, HDMI포트 1개가 필요하다. (메인 모니터는 HDMI말고 다른 선으로 연결해줘야 함.)

 

이 모든 요소를 연결해야 한다.

 

모든 포트가 연결되었다고 합격을 받으면 센서의 위치와 플레이 반경을 조절하도록 깐깐하게 군다. 하지만 실제로 게임을 할 것은 아니니 센서에 기어가 잘 인식되도록만 위치시키고 나머지는 건너뛰어도 설정이 완료된다. 이후 귀여운 튜토리얼이 실행되며 조작법을 익히도록 도와준다. 이후에 내 피씨의 환경이 최적이 아니어서 완전한 VR경험을 할 수 없다고 팝업이 뜨는데 연결하고 나서 최초로 실행되는 체험 프로그램에서는 전혀 문제가 느껴지지 않았다.

4. 테스트 코드 빌드

우선 테스트 코드는 팀원 혜진이가 작성한 <간이 편경돌을 막대가 치면 소리가 나는> 코드와 규원이가 작성한 <막대를 오른 컨트롤러에 붙여둔> 코드를 이용하였다.

큰 고난은 혜진이는 유니티를 버전 2019.3.0a8로 작성했다고 하는데 추천 버전이 2019.4여서,, 버전이 다름에도 내가 가지고 있는 유니티 버전으로 열어보았다. (큰 문제는 생기지 않았다.)

 

<유니티 에셋 스토어에서>

step1. 유니티 에셋 스토어에서 Oculus integration을 에셋에 추가시킨다.

'unity에서 열기' 한다.

 

<유니티 에디터에서>

step2. Oculus integration을 하단의 다운로드 버튼을 클릭하여 download하고 임포트 버튼을 클릭하여 import해준다. (이때, 프로젝트를 열어서 플레이 해본 상태면 playmode에서는 import가 안된다는 에러가 뜬다. 그 모드를 어떻게 끄는지 몰라서 그냥 에디터를 껏다가 켯다.)

유니티에서 열기 하면 왼쪽과 같은 창이 뜬다.

step3. File-Build settings에서 platform을 Andriod로 바꿔준다. 

step4. Edit-Project setting-Player에서 XR settings를 클릭하고, Virtual Reality Supported 체크박스에 체크해준다. (공식 다큐멘테이션에는 other settings에 있다고 해서 한참을 찾았었는데 나의 경우에는 XR settings에 있었다.)

step2를 진행해야 이 체크박스가 enabled된다.

step5. XR settings 위에 Other settings에서 Graphics APIs에서 Vulkan을 빼준다.

step5. 빌드한다.

 

이 세 단계를 하면, apk파일이 생긴다.

5. 리프트 헤드셋에서 유니티 돌리기

데스크톱에서 유니티 에디터를 실행시킨다.

 

(헤드셋 착용하고 기어 이용) 왼쪽 기어에 O라고 쓰여진 오큘러스 버튼을 누른다. 그러면 정면 하단에 덱이 뜨는데 거기서 +아이콘을 ('데스크탑 페널 추가') 클릭한다. (클릭은 검지 트리거 당기기)

데스크탑에서 실행 중인 프로그램 리스트가 뜨면, 그 중에 유니티 에디터를 클릭한다.

 

플레이 모드를 클릭한다.

브이알 렌즈에서 보이는 화면이 컴퓨터 모니터 상의 유니티 창에서 GAME탭에 미러링 된다. (다음 사진들은 그 화면을 캡쳐한 것이다.)

-실제로 랜즈로 보면 시야각이 더 넓어서 전체적으로 오브젝트들이 약간 더 거리감 있게 느껴진다.

 

우선 컨트롤러에 붙여둔 막대를 가까이에서 볼 수 있다.

정면보다 약간 아래를 쳐다본 화면이다.

왼쪽 컨트롤러에는 아무 것도 붙여놓지 않았기 때문에 그냥 컨트롤러 모양으로 모니터된다.

편경 조각 가까이에 가서 편경 조각을 치면 소리가 난다.

 

**컨트롤러를 사용하기 위해 조절해야 하는 것.**

 

  1. 카메라와 모델의 거리

- 만들어 둔 편경 모델의 크기가 커서 원래 카메라를 편경 전체를 볼 수 있는 위치에 멀찌감치 놓았었는데 이렇게 하면 편경 조각을 절대로 칠 수 없었다.

- VR상에서 보았을 때, 사용자+컨트롤러의 위치는 카메라의 위치인데 실제 팔 길이 이상으로 컨트롤러를 뻣어 접근할 수 없으므로 일정 거리 이상 편경과 멀어질 수 없다.

- 물론 사용자가 센서와 충분한 거리를 확보할 수 있는 넓은 방에서 플레이를 할 경우 센서 쪽으로 걸어가는 등 더 큰 활동 반경을 가질 수는 있지만, 보편적인 사용자의 플레이 공간을 잘 고려하여 조절할 필요가 있다.

 

  2. 카메라의 높이

- 위의 조건과 비슷하다. 처음 플레이 모드를 실행시키면 사용자의 머리(헤드셋의 위치)가 카메라의 위치에 설정된다.

- 만약 카메라의 높이보다 사용자의 키가 작을 경우 사용자가 아래를 쳐다 보았을 때 붕 떠있는 느낌이 든다. (반대의 경우도 땅에 박혀있는 느낌이 들어 현실감이 떨어질 수 있을 것 같다.)

 

  3. 모델의 크기 (VR환경에서 볼 때의 체감상 차이)

- 유니티 플레이 모드로 볼 때는 편경 모델이 그렇게 큰 줄 몰랐는데, 브이알로 보니 거의 센서로부터 세 걸음 정도는 물러 나야 전체를 볼 수 있을만한 사이즈였다.

- 또한 각퇴 크기라고 생각하고 만들어 컨트롤러에 붙여놓은 막대도 너무 커다래서 통나무 만큼이나 커다랬고, 이렇게 컨트롤러에 붙어있는 모델의 경우 머리와 거리를 팔 길이 이상 멀어지게 할 수 없어서 너무 부담스럽게 큰 느낌이고 자꾸 몸에 닿았다.

- 브이알로 볼 때의 실제 사이즈에 맞게 조절한 오브젝트를 하나 기준으로 잡고 그 크기에 맞춰 전체적인 사이즈를 조절하는 작업이 필요할 것 같다.

 

참고:

developer.oculus.com/documentation/unity/book-unity-gsg/