Google VR은 Google Daydream 및 Google Cardboard VR 플랫폼에 모두 사용되는 기술입니다. Google VR은 스마트폰, 헤드 마운트 뷰어 및 컨트롤러, 스탠드얼론 헤드 마운트 디스플레이 및 애플리케이션을 지원합니다. Google VR은 이렇게 풍부한 기기 생태계를 위한 VR 콘텐츠를 빌드하는 데 사용할 수 있는 Unity용 SDK를 제공합니다.
Google VR 기술로는 고품질 모바일 VR용 플랫폼인 Daydream과 VR 체험과 360 비디오를 위해 제작된 Cardboard 등이 있습니다. Daydream은 Daydream 지원 스마트폰, 헤드셋, 컨트롤러, 체험으로 구성되어 있고 Daydream을 통해 고성능 Android 모바일 기기를 지원합니다. Daydream 기기의 전체 목록은 Google VR) 웹사이트에서 확인할 수 있습니다. Cardboard는 거의 모든 iOS 및 Android 스마트폰과 함께 사용할 수 있습니다.
Google Cardboard는 누구나 iOS 또는 Android 스마트폰으로 VR 앱을 체험하기 위해 사용할 수 있는 접근성이 가장 우수한 모바일 VR 솔루션입니다. Cardboard를 사용하기 위한 최소 및 권장 요구 사항이 있기는 하지만, Daydream에 비해 하드웨어와 관련된 요구 사항이 훨씬 더 적고, 요구 사항 자체도 주로 운영체제와 기본 제어 시스템(자이로스코프 등)과 관련된 것입니다. 사용자는 공식 Google Cardboard 뷰어 기기나 Google VR 콘텐츠를 지원하는 타사 VR 뷰어 기기(하드웨어 및 소프트웨어 요구 사항 섹션 참조)를 사용하여 VR 앱을 볼 수 있습니다. Cardboard는 더 복잡한 상호작용이 필요한 앱에 사용할 수 있는 타사 핸드헬드 컨트롤러 제품군도 지원합니다.
Daydream를 사용하면 Cardboard보다 더 풍부한 기능을 제공할 있지만, Daydream은 고해상도 디스플레이, 부드러운 그래픽스, 정확한 머리 위치 추적을 위한 고정밀 센서 등의 VR 요구 사항에 맞춰 제작된 Daydream 스마트폰과 같이 Daydream 지원 기기만 지원합니다. Daydream 스마트폰 앱은 Google의 고품질 VR 체험용 헤드셋 및 모션 컨트롤러인 Daydream View와 함께 Daydream 스마트폰에서 사용할 수 있습니다. Daydream은 디자인 제조업체에서 직접 제조하는 Daydream Standalone HMD도 지원합니다. Daydream Standalone은 Android OS가 설치되어 있고 더 풍부한 컨트롤러 입력과 모션 추적을 지원하는 무선 헤드 마운트 디스플레이입니다.
Cardboard와 Daydream의 요구 사항 및 기능에 대한 자세한 내용은 Google의 VR 문서를 참조하십시오.
여기에서는 Google VR SDK를 사용하는 데 필요한 최소 및 권장 하드웨어 및 소프트웨어 요구 사항을 설명합니다.
Google VR SDK 지원을 위한 최소 플랫폼 요구 사항과 중요하게 고려해야 하는 몇 가지 사항은 다음과 같습니다.
Android API SDK 버전 21(일명 “롤리팝”)이 설치되어 있어야 합니다.
Google VR 애플리케이션을 개발하려면 Cardboard 또는 Daydream을 지원하는 스마트폰이 있어야 합니다.
Android 스마트폰을 Daydream 개발에 사용할 수 있게 설정하는 방법에 대해 알아보려면 Daydream 하드웨어에 대한 Google 문서를 참조해야 합니다.
여기에서는 Google VR SDK를 사용하여 개발하는 데 필요한 최소 하드웨어 및 소프트웨어 요구 사항을 설명합니다.
디바이스 | 하드웨어 | 소프트웨어 |
---|---|---|
Cardboard | - Android 4.1 이상이 탑재되어 있고 자이로스코프가 있는 기기 - iOS 8 이상이 탑재되어 있고 자이로스코프가 있는 기기 - Cardboard와 호환되는 뷰어 기기 |
- Unity Cardboard 통합에는 Android 롤리팝 이상이 요구됩니다. - Google Cardboard 애플리케이션이 설치된 iOS 기기 |
Daydream | - Daydream 호환 기기. Daydream과 호환되는 기기의 목록은 Google Daydream 하드웨어 페이지를 참조하십시오. |
여기에서는 Google VR SDK를 사용하여 개발하는 데 필요한 권장 하드웨어 및 소프트웨어 요구 사항을 설명합니다.
디바이스 | 하드웨어 | 소프트웨어 |
---|---|---|
Cardboard | - Android: 호환되는 전체 기기 목록은 Cardboard 뷰어와 함께 제공된 문서를 참조하십시오. - iOS: iPhone 5 시리즈 이상의 스마트폰 - Cardboard와 호환되는 뷰어 기기 |
- Android 5.0 이상 - Google Cardboard 애플리케이션이 설치된 iOS 8 이상 |
Daydream | - Daydream 사양과 호환되는 기기. Daydream과 호환되는 기기 목록은 Google Daydream 하드웨어 페이지를 참조하십시오. | Android 7 이상 |
Google VR 개발에 관한 자세한 내용은 Google VR 개발자 웹사이트에서 확인할 수 있습니다. 이 웹사이트는 SDK, 설명 자료, API, 스토어 퍼블리싱 문서로 연결되는 링크를 제공합니다.
여기에서는 Unity를 사용하여 Google VR 애플리케이션을 개발하려고 할 때 참고할 수 있는 정보를 제공합니다. Google VR 콘텐츠 개발 지침의 대부분은 Google VR 개발자 웹사이트에서 확인할 수 있습니다.
Unity을 설치하고 플랫폼별 Google VR SDK 설정 지침을 안내하는 외부 링크를 사용하려면 다음 절차를 따르십시오.
Unity 설치 매뉴얼 가이드를 사용하여 Unity 에디터를 설치합니다.
i ) Android가 타겟인 경우 Unity installer 를 통해 Unity Android Support를 설치해야 합니다.
ii ) iOS가 타겟인 경우 Unity Installer 를 통해 Unity iOS 지원을 설치해야 하고, 컴파일하고 기기에 배포하기 위해 사용할 수 있는 macOS 컴퓨터가 있어야 합니다.
Google VR 개발자 웹사이트에서 타겟 플랫폼에 해당하는 지침을 따릅니다.
Google는 Unity를 사용하여 Android 및 iOS용 Google VR 애플리케이션을 모두 개발하는 데 유용한 초보자 가이드를 제공합니다. 특정 가이드로 연결되는 링크는 다음과 같습니다.
여기에서는 Google VR 애플리케이션을 빌드하기 위해 Unity 프로젝트를 설정하는 방법을 단계별로 설명합니다.
아래에서 설명한 절차를 따라 Unity 프로젝트에서 타겟 Google VR 기기를 대상으로 빌드할 수 있도록 하십시오.
Unity 에디터는 Cardboard 지원 기기를 타겟으로 애플리케이션을 빌드하는 데 사용할 수 있는 여러 플랫폼별 빌드 옵션을 제공합니다.
To access these settings, open the Player Settings (menu: Edit > Project Settings > Player) and navigate to either the Android or iOS section__ (click either on the iPhone or Android icon) depending on which device you want to build to. Navigate to XR Settings__ and make sure the Virtual Reality Supported checkbox is ticked. Next, navigate to the Virtual Reality SDKs list and click the plus__ (+)__ button. Select Cardboard to add it to the list.
Cardboard 를 Virtual Reality SDKs 목록에 추가했다면 옆에 있는 펼치기 화살표를 클릭하여 자세한 Cardboard 설정을 확인합니다.
아래 표에는 Cardboard 설정에서 사용 가능한 프로퍼티와 각 프로퍼티의 기능에 대해 설명되어 있습니다.
프로퍼티 | 설명 |
---|---|
Depth Format | 이 드롭다운 메뉴는 Z 버퍼 뎁스를 설정하는 데 사용합니다. Unity 에디터는 이 설정을 사용하여 가시 데이터를 정렬하고 화면에 무엇이 실제로 렌더링되는지 결정합니다. |
Enable Transition View | 전환 뷰는 Google VR에서 사용자에게 기기를 Cardboard 호환 뷰어에 삽입해야 한다고 알리기 위해 제공하는 뷰입니다. 이 뷰를 활성화하면 사용자가 기기를 뷰어에 삽입할 여유 시간을 어느 정도 얻을 수 있습니다. 기본적으로 비활성화되어 있지만, 활성화하여 사용자에게 기기를 뷰어에 삽입할 여유 시간을 어느 정도 부여할 수 있습니다. |
Cardboard의 최소 플랫폼 요구 사항은 Android 5.0(롤리팝)(SDK API 레벨 21)입니다.
Unity 에디터가 올바른 APK를 사용하고 최신 Android 버전으로 업그레이드된 기기에서만 실행되도록 하려면 Minimum API Level 을 변경해야 합니다.
변경하려면 플레이어 설정으로 이동한 후 Other Settings 로 이동합니다. Identification 에서 Minimum API Level 드롭다운 목록을 사용하여 최신 API로 설정합니다.
Cardboard의 경우에만 Target API Level 을 API 레벨 21 이상으로 설정합니다. Daydream이 타겟인 경우 레벨이 24 이상이어야 합니다. 기본적으로 이 프로퍼티에는 설치된 최고 레벨이 사용됩니다. Android의 API 레벨에 대한 자세한 내용은 Android PlayerSettings 문서를 참조하십시오.
이제 Cardboard에 사용할 Unity 콘텐츠를 생성할 준비가 되었습니다. 일반적인 Android 또는 iOS 개발 시와 동일한 워크플로를 따르십시오. 자세한 내용은 Android 개발 또는 iOS 개발 문서를 참조하십시오. 게임을 Cardboard 지원 기기에서 빌드하고 실행(메뉴: File > Build & Run)해야 합니다.
Unity 에디터는 Daydream 지원 기기를 타겟으로 애플리케이션을 빌드하는 데 사용할 수 있는 여러 플랫폼별 빌드 옵션을 제공합니다.
To access these settings, open the Player Settings (menu: Edit > Project Settings > Player) and navigate to the Android section (click the Android icon marked in the figure below). Navigate to XR__ Settings__ and make sure the Virtual Reality Supported checkbox is ticked. Next, navigate to the Virtual Reality SDKs list and click the plus (+) button. Select Daydream to add it to the list.
Daydream 을 Virtual Reality SDKs 목록에 추가했다면 옆에 있는 펼치기 화살표를 클릭하여 자세한 Daydream 설정을 확인합니다.
아래 표에는 Daydream 설정에서 사용 가능한 프로퍼티와 각 프로퍼티의 기능에 대해 설명되어 있습니다.
프로퍼티 | 설명 |
---|---|
Depth Format | 이 드롭다운 메뉴는 Z 버퍼 뎁스를 설정하는 데 사용합니다. Unity 에디터는 이 설정을 사용하여 가시 데이터를 정렬하고 화면에 무엇이 실제로 렌더링되는지 결정합니다. |
Foreground Icon | VR Google Play 스토어에 표시할 전경 아이콘을 설정합니다. |
Background Icon | VR Google Play 스토어에 표시할 배경 아이콘을 설정합니다. |
Use Sustained Performance Mode | XR 체험 시간을 연장하려면 Sustained Performance Mode 를 활성화합니다. 이렇게 하면 성능을 낮춰서 배터리 수명을 늘릴 수 있습니다. |
Enable Video Surface | Enable Asynchronous Video Reprojection. For more information, see the documentation about Asynchronous Video Reprojection for more information. |
Enable Protected Memory | Enables memory protection for DRM protected content when using Asynchronous Video Reprojection. This option only appears if Enable Video Surface has been selected. For more information, see Asynchronous Video Reprojection |
Unity 플레이어 설정에서 사용 가능한 Daydream 관련 프로퍼티
Daydream만 타겟인 경우 최소 플랫폼 요구 사항은 Android 7.0(누가)(SDK API 레벨 24)입니다. Daydream과 함께 Cardboard도 타겟인 경우 최소 지원 API 레벨은 21입니다.
Unity 에디터가 올바른 APK를 사용하고 최신 Android 버전으로 업그레이드된 기기에서만 실행되도록 하려면 Minimum API Level 을 변경해야 합니다.
플레이어 설정에서 이 작업을 수행하려면__Other Settings__ 로 이동합니다. Identification 에서 Minimum API Level 드롭다운을 사용하여 목록에서 최신 API를 선택합니다.
Daydream의 경우 Target API Level 을 API 레벨 24로 설정해야 합니다. 기본적으로 이 프로퍼티에는 설치된 최고 레벨이 사용됩니다. Android의 API 레벨에 대한 자세한 내용은 Android PlayerSettings 문서를 참조하십시오.
이제 Daydream용 Unity 콘텐츠를 생성할 준비가 되었습니다. 일반적인 Android 개발의 경우와 동일한 워크플로를 따르십시오. 자세한 내용은 Android 개발 문서를 참조하십시오. 게임을 Daydream 지원 기기에서 빌드하고 실행(메뉴: File > Build & Run)해야 합니다.
여기에서는 Unity 에디터에서 Google VR 콘텐츠를 생성할 때 기억해야 하는 중요한 고려 사항에 대해 설명합니다.
Unity용 Google VR로 작업할 때에는 다음 사항을 참고하십시오.
특정 기기에서 XR을 활성화하려면 daydream 및 cardboard 기기 이름을 사용하여 기기를 로드합니다. 이 작업을 수행하려면 XRSettings.LoadDeviceByName을 호출하고 기기의 문자열 이름에서 패스해야 합니다.
Unity에 Daydream을 통합하면 Unity 작업 뷰 계층 구조가 무시됩니다. 즉, Unity용 Daydream을 초기화하기 전에 뷰 계층 구조에 적용한 수정 사항은 XR 모드일 때 제거됩니다.
Daydream 과 Cardboard 는 Virtual Reality SDKs 목록(File > Project Settings > Player > XR Settings)에 각각 별개의 항목으로 표시됩니다. Unity 에디터는 적합한 기기 설정을 찾을 때까지 목록을 맨 위에서부터 아래로 읽습니다.
목록에서 SDK를 제거하거나 순서를 변경하면 빌드되는 최종 애플리케이션의 기능에 영향을 미칩니다. 자세한 설명은 다음과 같습니다.
Virtual Reality SDKs 목록에 Daydream 과 Cardboard 가 모두 있으면 비동기 재투영이 지원되는 하드웨어에서 실행 중인 경우 활성화됩니다. Sustained Performance Mode 는 지원 가능한 하드웨어에서 실행 중이고 Player Settings 에서 활성화한 경우에 활성화됩니다. Daydream이 타겟인 경우에 대한 앞 섹션을 참조하십시오. 앱은 모든 Google Play 스토어에 표시됩니다.
Virtual Reality SDKs 목록에서 Cardboard 가 Daydream 보다 위에 있는 경우 Daydream 하드웨어에서도 애플리케이션이 Daydream 모드로 실행되지 않을 수 있습니다.
Daydream 이 Virtual Reality SDKs 목록의 유일한 항목인 경우 앱이 XR 관련 Google Play 스토어에 표시되도록 XR Android 매니페스트 항목이 추가됩니다. Daydream에는 비동기 재투영이 필수이므로 Daydream을 지원하는 모든 기기는 비동기 재투영도 지원합니다.
Cardboard 가 Virtual Reality SDKs 목록의 유일한 항목인 경우 앱이 VR Google Play 스토어에 표시되지 않습니다. 비동기 재투영과 Sustained Performance Mode 가 지원 가능한 하드웨어에서도 비활성화됩니다.
Daydream과 Cardboard와 함께 GearVR도 지원할 계획이라면 목록 맨 위에 Oculus 를 추가해야 합니다. GearVR을 지원하는 스마트폰은 GearVR SDK를 통해 실행되고 지원하지 않는 스마트폰은 Daydream 또는 Cardboard 를 통해 실행됩니다.
None 을 목록의 첫 기기로 추가하면 Unity 에디터가 일반 애플리케이션으로 실행되고, 스크립트를 통해 XR을 토글할 수 있습니다. 자세한 내용은 XRSettings.enabled 및 XRSettings.LoadDeviceByName API 문서를 참조하십시오.
Google은 Cocoapods 라이브러리 관리 시스템을 통해 iOS용 Cardboard Native Development Kit(NDK)를 배포합니다. Unity에 통합된 Google VR은 Cocoapods 관리자를 통해 배포된 특정 Cardboard NDK 버전을 사용하고, 이 NDK는 XCode 프로젝트를 생성하는 데도 사용됩니다.
따라서 일반 Unity 프로젝트에서 생성되는 프로젝트와 다르게 프로젝트가 생성됩니다. Cocoapods는 Unity 프로젝트와 Cardboard NDK 라이브러리용 프로젝트 및 그 종속성이 포함된 래핑 XCode 작업 영역을 생성합니다. 프로젝트뿐만 아니라 작업 영역도 항상 열거나 사용하여 Cocoapods에 없는 라이브러리로 인한 링커 오류를 방지해야 합니다.
개발 중에 머리 위치 추적을 이용하는 비양안(non-stereoscopic) 뷰 가 있으면 좋습니다. 이 뷰는 사용자가 2D 이미지를 XR 에서 봐야 하는 경우나 XR 애플리케이션 의 2D 미리보기를 제공하는 데 유용합니다. 프로모션 자료에도 유용할 수 있습니다. XRSettings.enabled 프로퍼티가 false고 XRSettings.loadedDeviceName이 daydream 또는 cardboard 로 설정된 경우 head tracking data 에 액세스하면 가능합니다.
다음은 XRSettings 를 사용하여 양안 뷰를 비활성화하면서 XR 머리 위치 추적을 사용하여 씬의 메인 카메라를 회전하는 C# 코드의 예제입니다.
UnityEngine.XR.XRSettings.enabled = false;
Camera.main.GetComponent<Transform>().localRotation = UnityEngine.XR.InputTracking.GetLocalRotation(XRNode.CenterEye);
위에 대한 자세한 내용은 XRSettings.LoadDeviceByName API 문서를 참조하십시오.
Unity용 Daydream SDK는 네이티브 운영체제(OS)에서 기기의 음량 컨트롤에 액세스하는 것을 방지합니다. 따라서 XR 모드일 때는 OS에 음량 UI가 표시되지 않습니다. 기기의 음량 컨트롤에 수동으로 액세스하려면 기본 UnityPlayerActivity(Unity 플레이어의 기본 Java 클래스)를 확장하고 onKeyDown 및 onKeyLongPress 키 이벤트 함수를 직접 오버라이드해야 합니다.
이 방법에 대한 자세한 내용은 Java를 통한 UnityPlayerActivity 클래스 확장 Unity 기술 자료를 참조하십시오.
참고: Unity 에디터는 Daydream 컨트롤러의 음량 컨트롤을 차단하지 않으므로 컨트롤러를 게임에만 사용할 예정인 경우 UnityPlayerActivity 를 전혀 확장하지 않기로 결정할 수 있습니다.
Unity용 Daydream SDK 는 Daydream 기기용 앱 개발을 지원하기 위해 다음 두 가지 라이브러리를 제공합니다.
Daydream 네이티브 라이브러리: gvr.aar
Google Protobuf Nano Java 라이브러리: libprotobuf-java-nano.jar
프로젝트의 Assets/Plugins/Android 폴더에 버전이 다른 라이브러리 파일을 저장하여 위의 두 라이브러리 중 하나를 대체할 수 있습니다. 라이브러리 파일을 올바르게 오버라이드하려면 파일 이름이 정확하게 일치해야 합니다.
멀티 패스 렌더링은 모든 Google VR 플랫폼에서 지원됩니다. 싱글 패스 렌더링은 드라이버 수준의 인스턴스화를 지원하는 플랫폼에서 Daydream을 통해서만 지원됩니다.
여기에서는 Unity를 사용하여 Google VR 애플리케이션을 개발할 때 지원되는 API 및 SDK가 요약되어 있습니다.
다음 API는 Unity용 Google VR에서 지원되지 __ 않습니다__.
Android 및 iOS 기기와 관련하여 Unity 에디터에서 지원되는 __ 그래픽스__ API 는 다음과 같습니다.
Android
iOS
Metal
OpenGL
Daydream 컨트롤러는 3의 자유도를 지원하며, 회전 및 위치 정보, 듀얼 축 터치/클릭 컨트롤러, 2개의 추가 버튼을 제공합니다. 이 장치의 입력을 사용하는 방법에 대한 내용은 Google Daydream 컨트롤러 문서를 참조하십시오.
Google VR에서 제공하는 구체적인 기능에 대한 전체 내용은 Google의 Daydream 개발자 문서를 참조하십시오. Unity용 Google VR SDK에서 지원하는 기능의 개요는 Google의 Unity용 Google VR 문서를 참조하십시오.
여기에서는 Google VR 지원 기능을 간단하게 요약하여 설명합니다.
아래 표에는 Unity 에디터에서 Google VR 작업을 수행할 때 각 타겟 모바일 VR 기기에서 지원되는 기능이 요약되어 있습니다.
기기 | 플랫폼 | 렌더링 | 입력 |
---|---|---|---|
Cardboard | Android 롤리팝 이상 |
- OpenGL - 스테레오 인스턴스화 렌더링 - 스테레오 렌더링 |
|
Cardboard |
iOS |
- OpenGL - Metal - 스테레오 인스턴스화 렌더링 - 스테레오 렌더링 |
|
Daydream | Android 누가 이상의 호환 하드웨어 | - OpenGL - 스테레오 인스턴스화 렌더링 - 스테레오 렌더링 |
Daydream 컨트롤러 |
여기에서는 Google VR 개발 주제에 대한 추가 정보를 습득하는 데 유용한 링크가 몇 개를 제공합니다.
여기에서는 Google VR SDK를 사용하여 개발할 때 발생할 수 있는 가장 일반적인 문제를 살펴봅니다.
문제 | 권장 해결 방법 |
---|---|
GvrController/GvrViewer/GvrXXXX/Instant Preview에 문제가 있습니다. 이 문제를 해결하려면 어떻게 해야 합니까? |
이런 종류의 문제는 Unity용 Google VR SDK에서 발생하는 것으로, Google에서 책임지고 지원합니다. Unity 커뮤니티로부터 질문에 대한 답변을 얻을 수 있지만, 기술적인 문제에 대해서는 GitHUB의 Unity용 Google VR SDK 웹사이트를 참조해야 합니다. |
Daydream 키보드는 언제 릴리스될 예정입니까? | Google VR용 Daydream 키보드는 코어 Android 시스템의 향후 버전에서 릴리스될 예정인 Google 기술입니다. 이 기술의 사용 여부는 전적으로 Google과 Unity용 Google VR SDK에 좌우됩니다. |
iOS용 Cardboard 프로젝트를 빌드하려고 하는데 Xcode에서 링커 오류가 보고됩니다. | Google은 iOS용 Cardboard NDK(Native Development Kit)를 Cocoapods 라이브러리 관리 시스템을 통해 배포합니다. Unity 에디터는 Cocoapods 관리자에서 배포한 해당 Cardboard NDK의 특정 버전과 통합되고, 이 NDK를 사용하여 XCode 프로젝트를 생성합니다. 따라서 일반 Unity 프로젝트에서 생성되는 프로젝트와 다르게 프로젝트가 생성됩니다. Cocoapods는 Unity 프로젝트와 Cardboard NDK 라이브러리용 프로젝트 및 그 종속성이 포함된 래핑 XCode 작업 영역을 생성합니다. 프로젝트뿐만 아니라 작업 영역도 항상 열거나 사용하여 Cocoapods에 없는 라이브러리로 인한 링커 오류를 방지해야 합니다. |
Cardboard 및 Daydream 문제 해결에 관한 자세한 내용은 공식 Google VR 개발자 웹사이트를 참조하십시오.
2017–11–21 편집 리뷰를 거쳐 페이지 게시됨
Unity 2017.2의 새로운 기능