このガイドでは、Unity の Google Cardboard XR Plugin for Unity を使用して、独自のバーチャル リアリティ(VR)エクスペリエンスを作成する方法について説明します。
Cardboard SDK を使用すると、スマートフォンを VR プラットフォームに変えることができます。モバイル デバイスは、立体視レンダリングで 3D シーンを表示し、頭の動きをトラッキングして反応し、ユーザーがビューア ボタンを押したタイミングを検出してアプリを操作できます。
まず、Cardboard SDK のコア機能を示すデモゲームである HelloCardboard を使用します。このゲームでは、ユーザーは仮想世界を探索してオブジェクトを見つけ、収集します。次の方法について説明します。
- 開発環境を設定する
- デモアプリをダウンロードしてビルドする
- Cardboard ビューアの QR コードをスキャンしてパラメータを保存する
- ユーザーの頭の動きをトラッキングする
- 左右の目に正しい歪みを設定して立体画像をレンダリングする
- VR モードをオンまたはオフにする
開発環境を設定する
ソフトウェア要件:
- Unity 2021.3.44f1 以降
- インストール時に、Android と iOS の Build Support が含まれていることを確認してください。
- パッチ バージョン 44f1 以降をインストールしてください。
- Git がインストールされており、
git
実行可能ファイルがPATH
環境変数に存在している必要があります。詳しくは、Unity の Package Manager の git サポートのドキュメントをご覧ください。
SDK をインポートして新しいプロジェクトを作成する
Unity SDK をインポートして新しいプロジェクトを作成する手順は次のとおりです。
- Unity を開き、新しい 3D プロジェクトを作成します。
- Unity で、[Window] > [Package Manager] に移動します。
- [+] をクリックし、[Add package from git URL] を選択します。
- テキスト入力フィールドに
https://github.com/googlevr/cardboard-xr-plugin.git
を貼り付けます。
パッケージがインストール済みパッケージに追加されている必要があります。 - Google Cardboard XR Plugin for Unity パッケージに移動します。[試聴する] セクションで、[プロジェクトにインポート] を選択します。
サンプル アセットはAssets/Samples/Google Cardboard/<version>/Hello Cardboard
に読み込む必要があります。
HelloCardboard シーンを構成する
Assets/Samples/Google Cardboard/<version>/Hello Cardboard/Scenes
に移動し、[Add Open Scenes] を選択して [HelloCardboard] を選択して、サンプル シーンを開きます。- [レイヤ] メニューを開き、[レイヤを編集...] を選択します。
- [インタラクティブ] という新しいレイヤを定義します。
- ゲームオブジェクト [Treasure] をクリックして、インスペクタ ウィンドウを開きます。レイヤを [インタラクティブ] に設定します。すべての子オブジェクトのレイヤをインタラクティブに設定するかどうかを尋ねるポップアップ ウィンドウが表示されたら、[はい、子を変更] をクリックします。
- [Player] > [Camera] > [CardboardReticlePointer] GameObject をクリックして、Inspector ウィンドウを開きます。「Cardboard reticle pointer」スクリプトで、[Reticle Interaction Layer Mask] として [Interactive] を選択します。
Android ビルド設定を構成する
[File] > [Build Settings] に移動します。
- [Android] を選択し、[Switch Platform] を選択します。
- [Open Scenes を追加] を選択し、[HelloCardboard] を選択します。
プレーヤー設定
[編集] > [プロジェクトの設定...] に移動します。
解像度と表示設定を構成する
[Player] > [Resolution and Presentation] に移動します。
- [デフォルトの向き] を [左向き] または [右向き] に設定します。
- [Optimized Frame Pacing] を無効にします。
その他の設定を構成する
[Player] > [Other Settings] に移動します。
- Graphics API で
OpenGLES2
、OpenGLES3
、Vulkan
のいずれか、またはそれらの組み合わせを選択します。 - [Minimum API Level] で
Android 8.0 'Oreo' (API level 26)
以上を選択します。 - [対象 API レベル] で
API level 33
以降を選択します。 - [Scripting Backend] で
IL2CPP
を選択します。 - [ターゲット アーキテクチャ] で
ARMv7
、ARM64
、またはその両方を選択して、目的のアーキテクチャを選択します。 - [インターネット アクセス] で
Require
を選択します。 - [Active Input Handling] で
Input System Package (New)
を選択します。 - [Package Name] に会社のドメインを指定します。
Vulkan
が [Graphics API] として選択されている場合:- [Vulkan の設定] で [レンダリング中に表示の回転を適用する] チェックボックスをオフにします。
- Unity のバージョンが 2021.2 以降の場合は、[テクスチャ圧縮形式] で
ETC2
を選択します。
- Unity のバージョンが 2023.1 以降の場合は、[Application Entry Point] で
Activity
を選択し、GameActivity
を消去します。
公開設定を構成する
[プレーヤー] > [公開設定] に移動します。
- [ビルド] セクションで、
Custom Main Gradle Template
とCustom Gradle Properties Template
を選択します。 Assets/Plugins/Android/mainTemplate.gradle
の dependencies セクションに次の行を追加します。implementation 'androidx.appcompat:appcompat:1.6.1' implementation 'com.google.android.gms:play-services-vision:20.1.3' implementation 'com.google.android.material:material:1.12.0' implementation 'com.google.protobuf:protobuf-javalite:3.19.4'
Assets/Plugins/Android/gradleTemplate.properties
に、次の行を追加します。android.enableJetifier=true android.useAndroidX=true
XR プラグイン管理の設定を構成する
[XR Plug-in Management] に移動します。
- [プラグイン プロバイダ] で
Cardboard XR Plugin
を選択します。
プロジェクトのビルド
[File] > [Build Settings] に移動します。
- [Build] を選択するか、デバイスを選択して [Build and Run] を選択します。
iOS プロジェクトの設定を構成する
[File] > [Build Settings] に移動します。
- [iOS] を選択し、[Switch Platform] を選択します。
- [Open Scenes を追加] を選択し、[HelloCardboard] を選択します。
プレーヤー設定
[編集] > [プロジェクトの設定...] に移動します。
解像度と表示設定を構成する
[Player] > [Resolution and Presentation] に移動します。
- [デフォルトの向き] を [左向き] または [右向き] に設定します。
その他の設定を構成する
[Player] > [Other Settings] に移動します。
- [Camera Usage Description] に「
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] に会社のドメインを指定します。
- [エッジでのシステム ジェスチャーを遅らせる] で
Top Edge
、Left Edge
、Right Edge
をオンにします。
XR プラグイン管理の設定を構成する
[XR Plug-in Management] に移動します。
- [プラグイン プロバイダ] で
Cardboard XR Plugin
を選択します。
プロジェクトのビルド
[File] > [Build Settings] に移動します。
- [Build] または [Build and Run] を選択します。
中心を再設定
Cardboard SDK では、Recenter()
を使用してヘッド トラッカーを再調整できます。
サンプル アプリケーションを使用して試す手順は次のとおりです。
- デバイスを、再調整する位置(新しい前向きの頭の向きとして使用)に移動します。
- Cardboard デバイスのトリガーを 3 秒以上長押しします。
- トリガーを離します。
- 初期ポーズがカメラの向きになりました。
VR モードをオンまたはオフにする
Unity XR Plugin Management API を使用すると、Google Cardboard XR Plugin for Unity の VR モードをオンまたはオフにできます。エンドユーザー向けのドキュメントと使用例については、Unity のエンドユーザー向けドキュメントをご覧ください。
HelloCardboard サンプルの VrMode シーンは、前述の API の基本的な使用方法を示しています。このシーンでは、[終了] をタップして VR モードをオフにできます。また、画面の任意の場所をタップするだけで再度オンにできます。詳細については、VrModeController.cs をご覧ください。