Unity 用 Google Cardboard のクイックスタート

このガイドでは、Unity 用 Google Cardboard XR プラグインを使用して、独自のバーチャル リアリティ(VR)エクスペリエンスを作成する方法について説明します。

Cardboard SDK を使用すると、スマートフォンを VR プラットフォームに変えることができます。モバイル デバイスは、立体視レンダリングで 3D シーンを表示し、頭の動きを追跡して反応し、ユーザーがビューア ボタンを押したことを検出してアプリを操作できます。

まず、Cardboard SDK のコア機能をデモするゲーム HelloCardboard を使用します。ゲームでは、ユーザーは仮想世界を探索してオブジェクトを見つけて収集します。このガイドでは、次の方法について説明します。

  • 開発環境を設定する
  • デモアプリをダウンロードしてビルドする
  • Cardboard ビューアの QR コードをスキャンしてパラメータを保存する
  • ユーザーの頭の動きをトラッキングする
  • 各眼の歪みを正しく設定して立体視画像をレンダリング
  • VR モードのオンとオフを切り替える

開発環境を設定する

ソフトウェア要件:

  • Unity 6000.0.23f1 以降
    • インストール時に Android と iOS のビルド サポートを含めるようにしてください。
    • パッチ バージョン 23f1 以降をインストールしてください。
  • Git がインストールされ、git 実行可能ファイルが PATH 環境変数に設定されている必要があります。詳しくは、Unity のパッケージ マネージャーの Git サポートのドキュメントをご覧ください。

SDK をインポートして新しいプロジェクトを作成する

Unity SDK をインポートして新しいプロジェクトを作成する手順は次のとおりです。

  1. Unity を開き、新しい 3D プロジェクトを作成します。
  2. Unity で、[Window] > [Package Manager] に移動します。
  3. [+] をクリックし、[Add package from git URL] を選択します。
  4. テキスト入力フィールドに https://github.com/googlevr/cardboard-xr-plugin.git を貼り付けます。
    パッケージがインストール済みパッケージに追加されます。
  5. Google Cardboard XR Plugin for Unity パッケージに移動します。[サンプル] セクションで、[プロジェクトにインポート] を選択します。
    サンプル アセットは Assets/Samples/Google Cardboard/<version>/Hello Cardboard に読み込まれます。

HelloCardboard シーンを構成する

  1. Assets/Samples/Google Cardboard/<version>/Hello Cardboard/Scenes に移動し、[Add Open Scenes] を選択して [HelloCardboard] を選択し、サンプル シーンを開きます。
  2. [レイヤ] メニューを開き、[レイヤの編集...] を選択します。
  3. 「Interactive」という新しいレイヤを定義します。
  4. [Treasure] GameObject をクリックして、インスペクタ ウィンドウを開きます。レイヤを「Interactive」に設定します。すべての子オブジェクトのレイヤもインタラクティブに設定するかどうかを尋ねるポップアップ ウィンドウが表示されたら、[はい、子を変更します] をクリックします。
  5. [Player > Camera > CardboardReticlePointer] GameObject をクリックして、[Inspector] ウィンドウを開きます。「Cardboard reticle pointer」スクリプトで、Reticle Interaction Layer Mask として「Interactive」を選択します。

Android ビルド設定を構成する

[File] > [Build Settings] に移動します。

  1. [Android] を選択し、[Switch Platform] を選択します。
  2. [Add Open Scenes] を選択し、[HelloCardboard] を選択します。

プレーヤー設定

[Edit] > [Project Settings...] に移動します。

解像度とプレゼンテーションの設定を構成する

[Player] > [Resolution and Presentation] に移動します。

  1. [デフォルトの向き] を [左横向き] または [右横向き] に設定します。
  2. Optimized Frame Pacing を無効にします。

その他の設定を構成する

[Player] > [Other Settings] に移動します。

  1. [Graphics APIs] で OpenGLES2OpenGLES3Vulkan、またはそれらの任意の組み合わせを選択します。
  2. [Minimum API Level] で Android 8.0 'Oreo' (API level 26) 以上を選択します。
  3. [Target API Level] で API level 35 以上を選択します。
  4. [Scripting Backend] で IL2CPP を選択します。
  5. [Target Architectures] で ARMv7ARM64、またはその両方を選択して、必要なアーキテクチャを選択します。
  6. [Internet Access] で Require を選択します。
  7. [Active Input Handling] で Input System Package (New) を選択します。
  8. [Package Name] に会社のドメインを指定します。
  9. Vulkan が [Graphics API] として選択されている場合:
    • [Vulkan 設定] で [レンダリング中に表示の回転を適用する] チェックボックスをオフにします。
    • [テクスチャ圧縮形式] で ETC2 を選択します。
  10. [Application Entry Point] で Activity を選択し、GameActivity をオフにします。

公開設定を構成する

[Player] > [Publishing Settings] に移動します。

  1. [ビルド] セクションで、Custom Main Gradle TemplateCustom Gradle Properties Template を選択します。
  2. 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'
    
  3. Assets/Plugins/Android/gradleTemplate.properties に、次の行を追加します。

      android.enableJetifier=true
      android.useAndroidX=true
    

XR プラグイン管理の設定を行う

[XR Plug-in Management] に移動します。

  1. [プラグイン プロバイダ] で Cardboard XR Plugin を選択します。

プロジェクトのビルド

[File] > [Build Settings] に移動します。

  1. [ビルド] を選択するか、デバイスを選択して [ビルドして実行] を選択します。

iOS プロジェクトの設定

[File] > [Build Settings] に移動します。

  1. [iOS] を選択し、[Switch Platform] を選択します。
  2. [Add Open Scenes] を選択し、[HelloCardboard] を選択します。

プレーヤー設定

[Edit] > [Project Settings...] に移動します。

解像度とプレゼンテーションの設定を構成する

[Player] > [Resolution and Presentation] に移動します。

  1. [デフォルトの向き] を [左横向き] または [右横向き] に設定します。

その他の設定を構成する

[Player] > [Other Settings] に移動します。

  1. [カメラの使用状況の説明] に「Cardboard SDK requires camera permission to read the QR code (required to get the encoded device parameters).」と入力します。
  2. [Target minimum iOS Version] に 12.0 と入力します。
  3. [Package Name] に会社のドメインを指定します。
  4. [エッジでのシステム ジェスチャーを遅延させる] で Top EdgeLeft EdgeRight Edge を確認します。

XR プラグイン管理の設定を行う

[XR Plug-in Management] に移動します。

  1. [プラグイン プロバイダ] で Cardboard XR Plugin を選択します。

プロジェクトのビルド

[File] > [Build Settings] に移動します。

  1. [ビルド] または [ビルドして実行] を選択します。

中心を再設定

Cardboard SDK を使用すると、Recenter() を使用してヘッド トラッカーを再センタリングできます。

サンプル アプリケーションを使用して試す手順は次のとおりです。

  1. デバイスを再センタリングしたい位置に移動します(新しい前方頭部ポーズとして使用します)。
  2. Cardboard デバイスのトリガーを 3 秒以上長押しします。
  3. トリガーを離します。
  4. 初期ポーズがカメラの向きになりました。

VR モードのオンとオフを切り替える

Unity XR Plugin Management API を使用すると、Google Cardboard XR Plugin for Unity の VR モードをオンまたはオフにできます。エンドユーザー向けドキュメントと使用例については、Unity のエンドユーザー向けドキュメントをご覧ください。

HelloCardboard サンプルの VrMode シーンは、前述の API の基本的な使用例を示しています。このシーンでは、[終了] X ボタン をタップして VR モードをオフにできます。また、画面の任意の場所をタップするだけで VR モードを再びオンにできます。この処理の実行方法について詳しくは、VrModeController.cs をご覧ください。

次のステップ