このガイドでは、Unity 用の Google Cardboard XR Plugin for Unity を使用して、独自のバーチャル リアリティ(VR)体験を創出する方法について説明します。
Cardboard SDK を使用して、スマートフォンを VR プラットフォームにすることができます。スマートフォンは、立体画像レンダリングで 3D シーンを表示し、頭の動きを追跡して反応し、ユーザーがボタンを押したことを検知してアプリを操作できます。
まず、HelloCardboard を使用します。これは、Cardboard SDK の主な機能のデモを実施するデモゲームです。このゲームでは、ユーザーは仮想世界を見回り、オブジェクトを見つけて収集します。次の方法について説明します。
- 開発環境をセットアップする
- デモアプリのダウンロードとビルド
- Cardboard ビューアの QR コードをスキャンして、パラメータを保存します
- ユーザーの頭の動きをトラッキングする
- 左右の目の歪みを適切に補正することで、立体画像をレンダリングする
- VR モードのオンとオフを切り替える
開発環境をセットアップする
ソフトウェア要件:
- Unity 2020.3.36f1 以降
- インストール時には、Android と iOS の Build サポートを必ず含めてください。
- Git をインストールし、
git
実行可能ファイルをPATH
環境変数に配置する必要があります。詳細については、Unity のパッケージ マネージャー git サポートのドキュメントをご覧ください。
SDK をインポートして新しいプロジェクトを作成する
Unity SDK をインポートして新しいプロジェクトを作成する手順は次のとおりです。
- Unity を開き、新しい 3D プロジェクトを作成します。
- Unity で [Window] > [Package Manager] に移動します。
- [+] をクリックし、[Add package from git URL] を選択します。
- テキスト入力フィールドに
https://github.com/googlevr/cardboard-xr-plugin.git
を貼り付けます。
パッケージは、インストール済みのパッケージに追加する必要があります。 - Unity 用 Google Cardboard XR プラグインのパッケージに移動します。[サンプル] セクションで、[プロジェクトにインポートする] を選択します。
サンプル アセットはAssets/Samples/Google Cardboard/<version>/Hello Cardboard
に読み込む必要があります。 Assets/Samples/Google Cardboard/<version>/Hello Cardboard/Scenes
に移動して [Add Open Scenes] を選択し、[HelloCardboard] を選択してサンプルシーンを開きます。
Android プロジェクト設定の構成
[File] > [Build Settings] に移動します。
- [Android]、[Switch Platform] の順に選択します。
- [Add Open Scenes] を選択して [HelloCardboard] を選択します。
プレーヤー設定
解決策とプレゼンテーション
[プロジェクト設定] > [プレーヤー] > [解像度とプレゼンテーション] に移動します。
- [デフォルトの向き] を [左横向き] または [横向き] に設定します。
- 最適化フレーム ペースを無効にします。
その他の設定
[プロジェクト設定] > [プレーヤー] > [その他の設定] に移動します。
OpenGLES2
、OpenGLES3
、Vulkan
、または Graphics API でそれらの組み合わせを選択します。- [Minimum API Level] で [
Android 7.0 'Nougat' (API level 24)
or more] を選択します。 - [対象 API レベル] で
API level 31
以上を選択します。 - [Scripting Backend] で [
IL2CPP
] を選択します。 - ターゲット アーキテクチャで
ARMv7
、ARM64
、またはその両方を選択して、目的のアーキテクチャを選択します。 - [Internet Access] で [
Require
] を選択します。 - [Package Name] に会社のドメインを指定します。
- Graphics API として
Vulkan
が選択されている場合:- [Vulkan の設定] で、[レンダリング中にディスプレイの回転を適用する] チェックボックスをオフにします。
- Unity のバージョンが 2021.2 以上の場合は、テクスチャ圧縮形式で
ETC2
を選択します。
公開設定
[プロジェクト設定] > [プレーヤー] > [公開設定] に移動します。
- [ビルド] セクションで、
Custom Main Gradle Template
とCustom Gradle Properties Template
を選択します。 Assets/Plugins/Android/mainTemplate.gradle
の依存関係セクションに次の行を追加します。implementation 'androidx.appcompat:appcompat:1.4.2' implementation 'com.google.android.gms:play-services-vision:20.1.3' implementation 'com.google.android.material:material:1.6.1' implementation 'com.google.protobuf:protobuf-javalite:3.19.4'
Assets/Plugins/Android/gradleTemplate.properties
に、次の行を追加します。android.enableJetifier=true android.useAndroidX=true
XR プラグイン管理設定
[Project Settings] > [XR Plugin Management] に移動します。
- [プラグイン プロバイダ] で [
Cardboard XR Plugin
] を選択します。
プロジェクトのビルド
[File] > [Build Settings] に移動します。
- [Build] を選択するか、デバイスを選択して [Build and Run] を選択します。
iOS プロジェクト設定の構成
[File] > [Build Settings] に移動します。
- [iOS] を選択し、[Switch Platform] を選択します。
- [Add Open Scenes] を選択して [HelloCardboard] を選択します。
プレーヤー設定
解決策とプレゼンテーション
[プロジェクト設定] > [プレーヤー] > [解像度とプレゼンテーション] に移動します。
- [デフォルトの向き] を [左横向き] または [横向き] に設定します。
その他の設定
[プロジェクト設定] > [プレーヤー] > [その他の設定] に移動します。
- [カメラの使用説明] に「
Cardboard SDK requires camera permission to read the QR code (required to get the encoded device parameters).
」と入力します。 - [Target minimum iOS Version] に「
12.0
」と入力します。 - [Package Name] に会社のドメインを指定します。
XR プラグイン管理設定
[Project Settings] > [XR Plugin Management] に移動します。
- [プラグイン プロバイダ] で [
Cardboard XR Plugin
] を選択します。
プロジェクトのビルド
[File] > [Build Settings] に移動します。
- [ビルド] または [ビルドして実行] を選択します。
リセンタリング
Cardboard SDK では、Recenter()
を使用してヘッドトラッカーを中央に戻すことができます。
サンプル アプリケーションを使用して手順を試す手順は次のとおりです。
- デバイスを中央に戻す位置に移動します(新しいフォワード ヘッド ポーズとして使用します)。
- Cardboard デバイスのトリガーを 3 秒以上押してください。
- トリガーを離します。
- 最初のポーズは、カメラが向いている方向にあります。
VR モードのオンとオフを切り替える
Unity XR Plugin Management API を使用すると、Unity 向け Google Cardboard XR プラグインで VR モードのオンとオフを切り替えることができます。エンドユーザーのドキュメントと使用例については、Unity のエンドユーザー ドキュメントをご覧ください。
HelloCardboard サンプルの VrMode シーンは、前述の API の基本的な使用方法を示しています。このシーンでは、終了アイコン をタップして VR モードをオフにし、画面上の任意の場所をタップするだけで VR モードをオンに戻すことができます。この方法について詳しくは、VrModeController.cs をご覧ください。
次のステップ
- Cardboard のブランドの取り扱いガイドラインをご確認ください。