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

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

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

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

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

開発環境をセットアップする

ソフトウェア要件:

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 をクリックして、[Inspector] ウィンドウを開きます。そのレイヤを「インタラクティブ」に設定します。すべての子オブジェクトについてもレイヤをインタラクティブに設定するかどうかを尋ねるポップアップ ウィンドウが表示されたら、[Yes, change children] をクリックします。
  5. [Player] > [Camera] > [CardboardReticlePointer] GameObject をクリックして、[Inspector] ウィンドウを開きます。「カーボード レチクル ポインタ」スクリプトで、[レチクル操作レイヤマスク] として [インタラクティブ] を選択します。

Android プロジェクトを構成する

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

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

プレーヤー設定

解決策と表示方法

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

  1. [Default Orientation] を [Landscape Left] または [Landscape Right] に設定します。
  2. [最適化されたフレーム ペーシング] を無効にします。

その他の設定

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

  1. グラフィック API で、OpenGLES2OpenGLES3Vulkan、またはこれらの任意の組み合わせを選択します。
  2. [Minimum API Level] で Android 8.0 'Oreo' (API level 26) 以上を選択します。
  3. [対象 API レベル] で API level 33 以上を選択します。
  4. [Scripting Backend] で [IL2CPP] を選択します。
  5. [ターゲット アーキテクチャ] で ARMv7ARM64、またはその両方を選択して、目的のアーキテクチャを選択します。
  6. [Internet Access] で Require を選択します。
  7. [Package Name] に会社のドメインを指定します。
  8. [Graphics API] で [Vulkan] が選択されている場合:
    • [Vulkan Settings] で、[Apply display rotation during render] チェックボックスをオフにします。
    • Unity のバージョンが 2021.2 以降の場合は、[Texture compression format] で [ETC2] を選択します。
  9. Unity のバージョンが 2023.1 以降の場合は、Activity を選択し、[Application Entry Point] で GameActivity をクリアします。

公開設定

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

  1. [ビルド] セクションで、Custom Main Gradle TemplateCustom Gradle Properties Template を選択します。
  2. Assets/Plugins/Android/mainTemplate.gradle の依存関係セクションに次の行を追加します。

      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.6.1'
      implementation 'com.google.protobuf:protobuf-javalite:3.19.4'
    
  3. Assets/Plugins/Android/gradleTemplate.properties に次の行を追加します。

      android.enableJetifier=true
      android.useAndroidX=true
    

XR プラグイン管理設定

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

  1. [Plug-in Providers] で [Cardboard XR Plugin] を選択します。

プロジェクトのビルド

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

  1. [Build] を選択するか、デバイスを選択して [Build and Run] を選択します。

iOS プロジェクト設定の構成

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

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

プレーヤー設定

解決策と表示方法

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

  1. [Default Orientation] を [Landscape Left] または [Landscape Right] に設定します。

その他の設定

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

  1. [Camera Usage Description] に「Cardboard SDK requires camera permission to read the QR code (required to get the encoded device parameters).」と入力します。
  2. [ターゲットの最小 iOS バージョン] に「12.0」と入力します。
  3. [Package Name] に会社のドメインを指定します。

XR プラグイン管理設定

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

  1. [Plug-in Providers] で [Cardboard XR Plugin] を選択します。

プロジェクトのビルド

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

  1. [Build] または [Build and Run] を選択します。

中央揃え

Cardboard SDK を使用すると、Recenter() を使用してヘッド トラッカーの中心を再設定できます。

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

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

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

Unity XR Plugin Management API を使用すると、Unity 用 Google Cardboard XR プラグインの VR モードのオンとオフを切り替えることができます。エンドユーザー向けのドキュメントと使用例については、Unity のエンドユーザー ドキュメントをご覧ください。

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

次のステップ