Meta Horizon の Unity スタートガイド

以下から始まるスタートガイドをベースに進めていきます。

Unity の設定

VR開発用にUnityを設定する | Meta Horizon OS Developers

Androidビルドサポートモジュールを追加する

今回は Unity 6000.3.6f1 を使用します。

Unityプロジェクトを作成する

  • 手順通り Universal 3D のテンプレートで作成します。

ビルドプラットフォームを設定する

  • Meta Quest を有効化します。

XRプロバイダープラグインをインストールする

Unity OpenXRプラグインをインストールする

  • Install XR Plugin Management はすでに終わっていました
  • 以下のように OpenXR プラグインを PC / Android, Meta Quest で有効にします。
PCAndroid, Meta Quest
  • Package Manager に OpenXR Plugin が存在することを確認します。
    • バージョンも推奨の 1.15.1 よりも新しいため問題ありません。

Meta XR Core SDKをインポートする

Meta XR Core SDK | Integration | Unity Asset Store

  • Meta XR Core SDK は今回は 85.0.0 となります。
  • ドキュメント通り「Meta XR機能セット」の有効化のプロンプトが出てきたので Yes で進む。
  • この時点で Unity Editor に以下のような機能が追加されています。

Open XRの機能が有効になっていることを確認する

  • ドキュメントで有効化するよう指示されている中で、足りていなかったのは Meta XR Subsampled Layout のみでした。

プロジェクト設定ツールを使ってプロジェクトの依存関係を管理する

  • Meta のメニューから Project Setup Tool を起動します。
  • この時点では以下のようになっています。
Fix All / Apply All 前Fix All / Apply All 後
  • この時点でのプロジェクト構成は以下のようになっています。
    • Settings や XR の空フォルダが多く作られているのは何故なのか分かりません。

開発用のヘッドセットを設定する

開発用のヘッドセットを設定する | Meta Horizon OS Developers

このセクションは部分的に実行します。

ヘッドセットをMeta Horizonモバイルアプリとペアリングする

  • モバイルアプリとのペアリングは済ませておきます。

開発者モードを有効にする

  • 接続の検証から進みます。
  • ドキュメントにはありませんが、名前の重複を避けるために Package Name を変更しておきます
  • ドキュメントでは Android プラットフォームが指定されていましたが、 Meta Quest プラットフォームで試します。
    • Run Device に自身のデバイスが表示されない場合には、 接続や Meta Horizon LinkOpenXRランタイム の設定を見直してみてください。
  • Build And Run を実行して実機 (今回は Quest 3) で実行できるか確認できます。
    • デフォルトの Sample Scene はただ地平線を見回すことしかできませんが、実機でアプリが起動できれば OK です。

Linkを設定する

このドキュメント以外にも以下にも参考となる資料があります。 更新日時は古いのですが、以下の資料は現在の Meta Horizon Link の名前に変っています。

アプリ開発でLinkを使う | Meta Horizon OS Developers

この辺りは Open XR か Meta XR かには関わらないため play-in-quest-with-link-in-development の方を見てもらってもいいかもしれません。

Meta XR Simulator を OpenXR ランタイムにすると

おそらく、この時点 (Meta XR シミュレーター起動前) では実機転送できると思います。 注意して欲しいのは、Meta XR シミュレーターのトグルを有効化し、OpenXR ランタイムにすると、Meta Horizon Link が OpenXR ランタイムとして認識されません。


Meta XRシミュレーターのスタートガイド

Meta XRシミュレーターのスタートガイド | Meta Horizon OS Developers

  • アプリの Play ボタンの右側の Meta マークの横に Meta XR Simulator 用のボタンがあります
    • これをクリックすることで、activated / deactivated を切り替えられます。
    • ただ、以下のドキュメントにもあるように、見た目からは分からず、Console ログを確認するしかありません。
      • シミュレーターをUnityのOpenXRランタイムとして設定している場合、シミュレーターUIのスライダーは、Meta XRシミュレーターが正常に接続されていてもアクティブであることを示しません。これは想定された動作です。

      • コンソールにMeta XR Simulator is activated (Meta XRシミュレーターがアクティブ化されました)というタイトルのログメッセージが表示され、アクティブ化が成功したかが示されます。

      • コンソール以外にも Meta のツールウィンドウからも確認できます。
    • 一度 activated にして Play すると、シミュレーターが起動します。
      • シミュレーターがインストールされていない場合には、ダウンロードが始まるかもしれません。
  • Meta XR Simulator が起動すると以下のような別アプリが立ち上がります。
    • 左上のトグルが以下の画像のように「無効状態 (非アクティブ)」になっていますが、Unity 開発の場合は、Unity Editor から activate / deactivate を切り替えるため、このままで OK です。
    • トグルをクリックすると以下のダイアログが表示され、 OpenXR Runtime にするか問われます。ここで進んでしまうと、Meta Horizon Link が OpenXR Runtime ではなくなり、実機での実行ができなくなります。
      • つまり、このトグルは非アクティブのままにしておいてください

Meta XRシミュレーターを非アクティブ化する

ドキュメントには以下のようなガイドがあります。

物理ヘッドセット上での開発に戻るには、Meta > Meta XR Simulator (Meta XRシミュレーター) > Deactivate (非アクティブ化) を選択して、Unityのシミュレーターを非アクティブにします。 Unity内からシミュレーターを停止することをおすすめします。このアプローチでは、今後の反復作業のためにシミュレーターウィンドウを保持して再初期化する必要を排除するため、より迅速に作業を開始できます。

上記でも述べましたが、Meta XR Simulator 自体のトグルを有効化 (アクティブ化) してしまうと、OpenXR Runtime 自体が変ってしまいます。

あくまで、Unity Editor での Meta XR Simulator の設定での切り替えということを間違えないでください

Meta メニューからMeta XR Tools から

サンプルシーンを試す

ここからはドキュメントにあるものではありません。

  • 今回は、実機転送してもコントローラーが表示・動作しない状況になりました
    • 確認すると、Validation の警告が追加で出ており、それを解消したら動作しました。
PCAndroid / Meta Quest

以下はハンドトラッキングのデモである HandTest です。すばらしい。