UnityでVR開発する際の基礎知識

こんにちは、くのへ@MasazaneKunoheです。

UnityでVR開発を行うに際しての基礎知識を紹介します!

VR開発の基礎知識

VR開発を行うにあたってそもそも理解しておくべき基礎知識を整理してみました。
私はMeta Quest2を持っているので、Meta Quest2をメインに紹介します。

VRデバイスは色々ある

VRデバイスは色んなメーカが色々出しています。
また、そのVRデバイスは連携しているプラットフォームソフトがあります
有名どころはこんな感じです

Meta Quest ⇒ Oculus Questプラットフォーム
HTC Vive ⇒ Steam VRプラットフォーム
HP Reverb G2 ⇒Windows Mixed Realityプラットフォーム
PlayStation ⇒PlayStation VRプラットフォーム

たとえばMeta Quest2を起動すると、Oculus Questというソフトウェアが起動し、そのOculus Questが他のソフトウェアを開く架け橋になったりします。

↓Oculus Questのトップ画面

工夫をすれば、MetaQuest2でSteamVRのVRソフトで遊ぶことも頑張れば可能です。
幾つか方法がありますが、私はVertual Desktopを使うという方法を使っています(その他はググってみてね)。

具体的には、まずパソコンに「Vertual Desktop Streamer」というソフトをインストールしつつ、MetaQuest2に「Vertural Desktop」と言うソフトをインストールします。
そのうえで、両方とも起動すると、MetaQuest2デバイスをかぶって見てみると、目の前の3D空間にパソコンの画面が表示されます。

↓ググったらこんな画像が手に入りました。マジでこんな感じでパソコンのデスクトップをVR画像としてVRデバイスで見ることが出来ます

そしてこの状態でSteamVRアプリをパソコンに起動するとSteamVRで遊ぶことが出来ます。
(ちなみにSteamVR用のVRファイルは、.exeの拡張子のファイルです。これを起動するとまずSteamVRが起動して、その中でVRファイルが起動します)

つまり、
MetaQuest2デバイス→OculusQuestプラットフォーム→Virtual Desktop→SteamVR→SteamVRのソフト
という順番でMetaQuest2デバイスでSteamVRソフトを動せます。
リモートパソコンから別のリモートパソコンを開く感じで動いている感じに近いかな~。

いずれにせよ、ここで言いたいのは、デバイスによってプラットフォームソフトが異なるということです。そのため、以前まではUnityでVR開発する際は、そのプラットフォームにあったライブラリ的なものが必要だったんです。

が、なんと、Unity社がどのデバイス・プラットフォームでも共通して開発が出来るよう、XR Interaction Tool Kitという仕組みを開発してます。これを使うと、自作のVRデータをどのデバイス向けにでもビルド(*)できます!!
(*)ビルド:プログラムコードを元に実行ファイルを生成すること

ということで、これから勉強するなら、個別デバイスのプラグインを使った開発ではなく、XR Interaction Tool Kitで勉強すればいいのかな~と思います。

ただし、XR Interaction Took Kitでは、各デバイス固有の機能を操作することはできないそうです。
(具体的にどんな機能が使えないかは、私は理解できてません💦)

それでも、今から入門する人は、まずはXR Interaction Tool Kitを勉強すればいいんじゃないかな~、と思います。

MetaQuest2向けで開発したVRソフトの拡張子について

MetaQuest2で開発する際には、MetaQuest2に搭載されているOSがAndroidなので、Android向けのアプリとして開発することになります。

初めて開発した時、私はここで???となりました。

あの携帯電話で有名なAndroidです。

開発したファイルの拡張子はAndroidのアプリファイルである「.apk」になります。これをMetaQuest2に転送して動かすことになります。

Unityで「Android Build Support」というAndroid向けにビルドできるようになるツールがあるので、Unityエディタをインストールするときに一緒にダウンロードします。またはUnity Hubで後から追加もできるのでダウンロードします。

これでAndroid向けのビルドができるようになるので、Meta Quest2向けのファイル(拡張子は.apk)を作れるようになります。

MetaQuest2で自作apkファイルを動かすためには、まずは「開発者モードにします」

MetaQuest2で自作VRアプリを動かすためには、「開発者モード」にする必要があります。

開発者モードにする方法は、他の記事でも多く紹介されています。

例えばこちらのサイト様にて公開されていますので、参照してみて下さい。

開発者モードにすると、MetaQuest2に転送された自作VRファイル(拡張子は.apk)を開けるようになります。

MetaQuest2にapkファイルを転送するには

私はMetaQuest2にパソコンからapkファイルを転送する際に「SideQuest」というアプリを使っています。

この方法も他の記事で多く紹介されています。

例えばこちらのサイト様こちらのサイト様の記事を参照してみて下さい。

記事に記載の通り、SideQuestとMetaQuest2の通信のためにADBと呼ばれるドライバソフトもインストールが必要ですので合わせてインストールします。

インストールしてソフトを起動出来たら、画面の上の「箱に矢印が付いたボタン」を押します。

すると、ファイル選択ダイヤログボックスが出てくるので、自作したVRファイル(apkファイル)を選択すると、MetaQuest2に転送されます!

後は、MetaQuest2の方で、アプリボタンを押して、検索ボックスを押して「未登録アプリ」を選択すると自作のVRファイルを開くことができます!

MetaQuest2はOculusQuestをどんどん自動更新していくので、今後も自作ファイルへのアクセス方法が変わっていく可能性がありますが、基本的な動かし方はこんな感じです。

XR Interaction Tool Kitの勉強のしかた

XR Interaction Tool Kitは2019年12月ころから公開されているとのことです。
しかし2023年6月現在はまだまだ新しい技術であるため、なかなか情報を得るのが難しく、そして技術の進歩スピードも速いので情報がすぐに古くなってしまいます。

そのため、勉強方法が確立していないと思いますが、私は次のように勉強しました。

①技術書典本で勉強

技術書典でこの本を見つけて、早速購入して勉強しました。

https://techbookfest.org/product/6367536926949376

この本の内容もちょっと古新聞になっているところがあったりしますが、それでもかなり勉強になりました。まずはこれから勉強してみるといいと思います。

②サンプルデータを頑張って分析する

XR Interaction Toolkit にはサンプルデータがいくつか含まれています。

その中のSamples→2.X.X→Starter Assets →DemoSceneをダブルクリックすると、こんな画面が開かれます。

これをそのままビルドしてVRデバイスで見ると、色々動かせます。(物をつかんだり、UIを触れたり)

一通り遊んでみたら、対象の物体を分析します。

例えば、輪っかはVRハンドデバイスのビーム(?)が当たった状態でつかむと、持ち上げたり動かしたりできます。
そこで、この輪っかを3D画面でクリックすると、ヒエラルキーウィンドウで対象のオブジェクトが分かります。
そいつのインスペクターウィンドウをみて、XR~~~と書いてあるスクリプトを見つければ、そいつがVR用のスクリプトです。設定がどうなっているか、じっくりと観察させてもらいましょう!!

③趣味のUnity VRアプリ制作入門

この本も購入しましたが、私個人の感想としては、この本は中級者向けかな~。
ちょっと初心者には厳しいと思います。
でも中級者にはすごくいいと思います。色んなアセットの使い方も紹介されていて、①②を勉強したあとならすごく勉強になると思います!!
https://amzn.asia/d/2qTSTep


今日はVR開発のを紹介しました。

サンプルデータを分析できるところまで実力が付くと、しっかりと理解が出来て面白いですよ。

ではまた別の記事で会いましょう。
ではでは~

🦅バサバサ~