見出し画像

UnityでVRゲーム製作!XR Interaction Toolkit セットアップ編 2024版

どうも皆様 Hello world!
Unityでゲームを作っております、天野スズランと申します。

ずっと前に、XR Interaction Toolkit のセットアップの仕方を記事にしたのですが、2年半ほど経過して随分と変わったようなので、自分用のメモがてらセットアップの方法をもう一度まとめてみます


今回やること

Unityのインストールから初めて、サンプルシーンを実際にVR機器で実行できるようになるまでやります。

また、個人的な目標として、XR Interaction Toolkit の進化した内容を理解し、私が以前書いた記事からアップデートしたいというのもありますね。
元の記事はこちらです。

開発環境

Unity 2022.3.46f1
Meta Quest3
Windows11

Meta Quest3 の開発者設定

今回は Meta Quest3 で開発をするわけですが、Quest3 を開発者モードにするのは少々面倒です。

長くなりますが、一つ一つは単純ですから、頑張ってついてきてください。

なお、Quest2 でも同様の手順で行けるはずです。

Meta Horizon のインストールとペアリング

まず、 Meta Horizon と呼ばれるアプリをスマホにインストールします。
App store や Play ストアにあります。

こんなやつ

起動するとログイン画面になるので、Quest3 にログインしているアカウントと同じアカウントでログインします。
別のアカウントでログインするとペアリングできないらしいので注意してください。試したことはないので、もしかしたらいけるかもしれませんが。

こんな感じの画面が出てきます。
ログイン方法はお好みで。

そして、画面下のユーザーアイコンを押す→「三」みたいなアイコンからメニューを開く→デバイス → 新しいデバイスを追加 を押します。

適当に設定したハゲ頭がまぶしいですね。
こうならないよう、皆さんは普段から身だしなみに気を付けておきましょう。

すると、ゴーグルの種類を設定する画面が出てきます。
私の場合は Quest3 ですのでそちらを選択しましたが、Quest2 や Quest3S の場合はそちらを選択してください。

次に接続方式です。
すでにヘッドセットを Wi-Fi に接続している場合、「ヘッドセットはすでに接続されています」を選択してください。
接続していない場合はよーわからんので各自やってみてください。

選択すると、ペアリングコード入力画面が出てきます。

次は、このペアリングコードを見ていきましょう。
ここからはヘッドセット側の操作になります。

まず、設定画面を開きます。
横長のバーの左の方にある、時刻の書いてあるボタンを押すと、クイック設定ウィンドウが出てきます。
その左上に、クイックじゃない方の設定画面を開くボタンがありますから、そこを選択してください。

次に「システム」を選択

そして、「基本データ」を選択したところに、ペアリングコードの欄があります。
ここに表示されている5桁の数字を、先ほどのペアリングコード入力画面に入力しましょう。

打ち込み終わると以下のような画面になると思います。
ここで、「ヘッドセットの設定」を選択

「開発者モード 」を選択し、開発者設定画面に行って、「開発者モード」を ON にしましょう。

Quest2,3以外の場合

なお、Meta Quest2,3 以外の場合、AndroidOS と一緒で、ビルド番号を連打すると開発者モードに入れます。たぶん。

Unity のインストール

次は Unity のインストールです。

といっても、ほんとの最初からやっていると記事が一つ書けてしまいますから、Unity Hub のインストールとアカウントの登録は出来ているということで進めます

今回は、執筆時点での最新の LTS である 2022.3.46f1 をインストールしていきます。
まあたぶん 2022.3.x なら使えると思いますから、この記事を読んでる時点の最新版でも多分大丈夫です。知らんけど。

Unity Hub から「エディターをインストール」を選択します。

インストールするバージョンを選択する画面になりますから、Unity 2022.3.46f1 の横の「インストール」を選択します。

モジュール選択画面が出て来るので、「Android Build Support」と「OpenJDK」及び「Android SDK & NDK Tools」にチェックを入れて続行するを選びましょう。
Meta Quest3 などは Android ベースの OS を積んでいるので、Android 向けにビルドできないと VR 機器で動いてくれません。

次に利用規約の同意の画面になるので同意します。
あとは、長いインストール時間が終われば終了です。

なお、すでにインストールしてある Unity にモジュールを追加するには、インストールから歯車のマークをクリックして、モジュールを加えるで行けます。

新規プロジェクトの作成
(VRテンプレートを使う場合)

では、いよいよ Unity でプロジェクトを作っていきましょう。

今回は二つの作り方を書こうかと思っていますが、その二つのうちで簡単なのが、こちらのVRテンプレートを使う方法。
この方法だと、面倒な UnityPackage のインストールは不要です。

Unity Hub から「プロジェクト」→「新しいプロジェクト」を選択してください。

するとテンプレート選択画面になります。

まずは、エディターのバージョンを確認しましょう。
今回は 2022.3.46f1 でやりますから、設定を変更しておきましょう。

それから、「VR」のテンプレートを選択
確か、初めて選択する場合はダウンロードとかの必要があったかもです。

適当にプロジェクト名を入力して、「プロジェクトを作成」を押しましょう。

これで、VR開発のできるプロジェクトの作成が完了しました。
ただし、後述の「プロジェクト設定の変更」と「ビルド設定の変更」をする必要があるので、そちらも見てみてください。

新規プロジェクトの作成
(VRテンプレートを使わない場合)

次は、VRテンプレートを使わない場合の紹介です。
テンプレートを使って出来合いの物を…というのも少々味気ないような気がしたので、必要な UnityPackage の紹介もかねて書いてみます。

プロジェクトの作成

まず、Unity Hub から「プロジェクト」→「新しいプロジェクト」を選択してください。

するとテンプレート選択画面になります。

まずは、エディターのバージョンを確認しましょう。
今回は 2022.3.46f1 でやりますから、設定を変更しておきましょう。

それから、「Universal 3D」のテンプレートを選択
URP (Universal Render Pipeline) のテンプレートなのですが、URPはモバイル機器向けのレンダーパイプラインで、スマホゲームなどによく使われています。

Unity の古いレンダーパイプライン (Built-in Render Pipeline) よりも高性能であり、カメラの Stack 機能 (複数のカメラの映像を、レイヤーを重ねるようにして表示する機能) が使えたりと便利です。 

また、ゲーミングPC向けの HDRP に比べて低スペックでも動作します。今回使う Quest3 は、VRゴーグルとしては高性能ですが、さすがにハイスぺPCほどの性能はありません。

特に理由がない限り、URP を選んでおいて間違いはないかと思います。

それから、適当にプロジェクト名を入力して、「プロジェクトを作成」を押しましょう。

OpenXR Plugin のインストール

プロジェクトの作成が完了し、Unity の画面が開かれたら、次は必要なパッケージをインストールしていきます。

まずは、OpenXR から。

これが何かというと、Unity のマニュアルを見る限り、「開発者が幅広い AR/VR デバイスをターゲットにできるようにすることで、AR/VR 開発を簡素化することを目的としています。」とあります。
要は、Quest3 でも 他のVRデバイスでも、同じ感じで開発できるよってことです。

Unity のメニューバー 「Window」→「Package Manager」で、パッケージマネージャーウィンドウを開きます

そして、Packages で Unity Registry を選択
検索欄に「OpenXR」と入力すれば、「OpenXR Plugin」が出てきますから、それを選択後、「Install」ボタンを押してください。

今回は真面目に検索欄に入力してますが、
「XR」ってだけ入力すれば、今回必要なものは全部出てきます。

しばらくするとインストールが終わります。
この時、下のようなダイアログが出てきます。
意味は、「新しい入力システムへ置き換えるよ、そのために Unity を再起動するよ」です。Yes を選択しましょう。

出てこなければ、スルーで大丈夫です。

XR Interaction Toolkit のインストール

お次は「XR Interaction Toolkit」です。
同じように検索欄に入力すれば出てくるので、「Install」ボタンを押しましょう。

今回は真面目に検索してますが、「XRと」(ry

それからもう一つ。
サンプルのダウンロードをしておきましょう。

Package Manager の XR Interaction Toolkit の画面に、「Samples」という欄があるので押しましょう。
すると、サンプルやらデモやらいろいろ出てきます。

起動テストの時に使うので、「Starter Assets」を「Import」しておいてください。
残りは、まあお好みで。

Unity OpenXR Meta のインストール

次は、Meta 用のパッケージです。
Quest 以外で開発している人は、この項目は飛ばしても問題ありません。

この「Unity OpenXR Meta」パッケージは、OpenXR などでサポートしていない、Meta Quest2,3 用に用意された機能などを使いたい人向けのパッケージです。
OpenXR の汎用的な機能を使いつつ、さらに Quest 独自の機能も使えるようになります。

あと、古い「Oculus Integration」や「Oculus XR Plugin」とは、間違えないようにしてください。
え、何が違うかって?
正直よくは知りませんが、AI 曰く「Oculus Integration」 は OpenXR と連携してはいない、「Oculus XR Plugin」は単体で動作する代わりにAR やパススルー機能などは使えない…とのことです。

Package Manager の検索欄に「Meta」と入力すると、「Unity OpenXR Meta」パッケージが出てきますから、そちらを選択後「Install」ボタンを押してください。

検索欄には「XR」と(ry

プロジェクト設定の変更

次は、インストールしたパッケージを使うために必要な設定をしていきます。

Unity のメニューバーから、 Edit → Project Settings を選んで、プロジェクト設定画面を開いてください。

Quest でデバッグできるようにする

まずは、Quest でデバッグできるようにしていきます。

Unity で開発するときは、画面上の Play ボタンを押してデバッグすると思いますが、その時に 「Meta Quest Link」で Quest とリンクしていると、リンク先の Quest で動いてくれます。

まず、Project Settings の「XR Plug-in Management」を開きます。

次に、ディスプレイのアイコンをクリックします。Windows,Mac,Linux Setting という名前だそうですが、要はデスクトップ用の設定です。

そこの「Oculus」の項目にチェックを入れます。

Oculus は、Meta 社の旧名ですね。

すると、注意マークが表示されるかもしれません。場合によれば、エラーマークがつきます。

これを解決するには、ProjectValidation を選択し、FixAll ボタンを押しましょう。
全部ではないですが解決してくれます。

XR ヘッドセット用にビルドする

次は、XR デバイスで VR コンテンツとしてビルドできるようにしていきます。

同じく、Project Settings の「XR Plug-in Management」から、今度は Android のマークを選択します。

そして、「Oculus」の項目にチェック

同じように、注意マークがついた場合は、ProjectValidation を選択し、FixAll ボタンを押しましょう。

ビルド設定の変更

次はビルド設定です。
XRヘッドセット の OS はAndroid の派生ですから、それ用に設定していきましょう。

Unity の メニューバー → File → Build Settings で、ビルド設定画面を開きます。

Platform を Android へ変更し、Switch Platform を押します。長めの処理が走りますが、しばし待機。

次は、Run Device を変更します。
ドロップダウンリストから任意の XR ヘッドセットを選択します。私の場合は Oculus Quest3 ですね。
リストに出てこないときは、ヘッドセットと PC をつないでいるケーブルを抜き差しした後、Refresh ボタンを押すと、うまくいく時があります。

確認

これで設定が完了しました。お疲れさまでした。

しかし、人はミスをするものです(n敗)。
また、記事を書いた時から状況が変わっていることもあります(1敗)。

本当に動くか、しっかり確認しておきましょう。

デモシーン確認

さっき XR Interaction Toolkit をインストールした時についでについでに入れたサンプルに、デモシーンがあります。

XR Interaction Toolkit のコンポーネントとかを設定してくれているシーンで、このシーンをビルドするだけでテストになります

ただ、どんなことができるのか知らなければテストにはなりません。
いったんシーンの中身を見てみましょう。

Project ウィンドウの Assets -> Samples -> XR Interaction Toolkit -> 2.6.3 -> Starter Assets の中に DemoScene というシーンがありますから、それを開きます

シーンの中身をざっと解説してみます。

まず、机3つ。
これは、コントローラーでゲーム中のモノをつかんだりするデモです。
直接手を触れてつかむもの、遠くのものをつかむもの、ボタンを押したりできるものの3つです。

それから、奥の方にあるやつは、UI の操作のデモです。
ボタンを押したりスクロールしたり。

右のやつには、登ることができます。
ハシゴには2種類の登り方がありますし、壁のブツブツはボルダリングみたいに上ることができます。また、高いところにワープして登ることもできます。

それから、プレイヤーとなるオブジェクトを確認しておきましょう。
Hierarchy の XR Interaction Setup -> XR Origin (XR Rig) がそれです。

 VR コントローラーの右スティックで移動左スティックで旋回出来るように設定されています。

別の記事で解説しようかと思いますが、今のうちに Inspector を見たり、Position を変更してみたりしてもいいかもですね。

デモシーンでビルド

では、そのシーンをビルドしましょう。

Unity の メニューバー -> File -> Build Settings から、ビルド設定画面を開きます。

まず、今回関係ないシーンをビルドに含めないよう、削除していきます。
最初からある SampleScene が登録されていると思います。
右クリックから RemoveSelection を選択しましょう。

次は、デモシーンの登録です。

DemoScene を開いているのなら、Add Open Scenes を押せばリストに加わります。

開いていない場合、Project ウィンドウからデモシーンをドラッグアンドドロップでOKです。

準備が整ったら、下にある Build And Run を押しましょう。

Android 系ですから、ビルドするファイルの拡張子は .apk です。
名前を付けて保存するウィンドウが出てきますから、適当な名前を付けて、適当な場所に保存してください。

ビルド完了後、XR ヘッドセットでアプリが起動するので、デモシーンでのテストができるはずです。

なお、ビルドは出来たけどヘッドセットに入らないという場合は、ADB コマンドで調べてみてください。
コマンドプロンプトから、adb install コマンドを使えば、ヘッドセットにインストールできます。

いかがでしたか?うまくいきましたか?

うまく行きましたか、おめでとうございます。お疲れ様でした。

え、うまくいかなかった?それはそれは…
私の方だとうまく行っているので、私の方で何か設定を忘れているか、あなたの環境独自の問題か、それとも単純に記述を見逃しているか、それ以外か……
どれかは分かりませんが、もう少しのはずですから、頑張って調べてみてください。ひとまずは、私の記事をもう一度読み直す権利をあげます。

リンク

元の記事

次の記事:まだ

最後に

今回は、以前書いた記事の内容を最新の情報に更新するというものでした。
同じように古くなっている記事もあると思いますから、そういった記事も更新していきたいです。

それから、一応Vtuberやってますので、気が向いたらフォローしてやってください。
たまーにつぶやいて、ごく稀に配信してます。
Twitter:@Suzuran_Amano
Youtubeちゃんねる:スズランちゃんねる - YouTube

ここまでお読みいただき、ありがとうございました。
この記事が、あなたの開発の助けになることを祈っています。

いいなと思ったら応援しよう!