夜風のMixedReality

xRと出会って変わった人生と出会った技術を書き残すためのGeekなHoloRangerの居場所

Oculus Quest 2でMRTKを使う HoloLensアドベントカレンダー2020 14日目

本日はMRTK調査枠と初めてのOculus Quest記事です。

MixedRealityToolkitは2020年12月時点最新版であるv2.51ではOculusQuestをサポートしています。

〇環境 

今回は次の環境で実装します。

・MixedRealityToolkit v2.51

・Unity2019.3.9f1

 ・アンドロイド用のモジュール

〇実装

〇必要なパッケージの導入

①MRTKをUnityにインポートします。

f:id:Holomoto-Sumire:20201214092120j:plain

MRTKのダイアログが表示された場合[Apply]を押します。

 MixedRealityToolkitには主に以下の4種類が存在します。

 ・MixedRealityToolkit.Foundation

  MRTKのコアに当たるコンポーネントです。MRTKを使用するためには必須のパッケージです。 これは複数のプラットフォーム間でMRTKの機能が共通した動きを行うようなコードが導入されています。

  最初にこのパッケージをインポートしてください。

 ・MixedRealityToolkit.Extentions

 MRTKの機能を拡張するオプションパッケージです。 HandTrackingに物理サポートを追加する機能やHoloLensでのSLAMのLostに関する処理などが入っています。

 ・MixedRealityToolkit.Tools

 MRTKのUnityエディタでのユーティリティを提供するオプションパッケージです。

 ・MixedRealityToolkit.Examples

MRTKの機能サンプル集です。 Examplesで提供されている機能を流用することでノーコーディングでアプリを作ることもできます。

オプションですが筆者としては常にインポートすることをお勧めします。

すべてのMRTKコンポーネントがインポートされるとAssets/MRTK内は次のようになります。

f:id:Holomoto-Sumire:20201214093232j:plain

次にOculus Quest用のパッケージを導入します。

②上部ワールドタブから[Window]→[PackageManager]を開きます。

f:id:Holomoto-Sumire:20201214093339j:plain

③[Oculus XR Plugin]をインポートします。

f:id:Holomoto-Sumire:20201214093426j:plain

④[AssetsStore]から[Oculus Integration]をインポートします。

[Oculus Integration]はHoloLensでいうMRTKのようにQuestでの操作や機能を簡単に作成できる開発ツールです。

今回のMRTKはOculus Integrationを拡張するように使用します。

f:id:Holomoto-Sumire:20201214100005j:plain

以上で必要なコンポーネントが導入できました。

〇プロジェクトの設定

Oculus Quest用にプロジェクトを構築します。

①[Build Settings]を開き[Android]に[Switch Platform]を行います。

f:id:Holomoto-Sumire:20201214094232j:plain

 これでターゲットがアンドロイド(Oculus Quest)になります。

②[Player Settings]を開きます。

f:id:Holomoto-Sumire:20201214094538j:plain

③[XR Plugin Management]を開きます。

 [Initialize on Startup]を有効化します。

 f:id:Holomoto-Sumire:20201214101310j:plain

次にHandTrackingの設定を行います。

④プロジェクトウィンドウから[Assets]→[Oculus]→[OculusProjectConfig]を開きます。

f:id:Holomoto-Sumire:20201214101906j:plain

⑤[OculusProjectConfig]のinspectorウィンドウから[HandTrackingSupport]を[Hands Only]に設定します。

f:id:Holomoto-Sumire:20201214102222j:plain

⑥上部ワールドタブから[Mixed Reality Toolkit]→[Utilities]→[Oculus]→[Integrate Oculus Integration Unity Modules]を選択し導入します。

f:id:Holomoto-Sumire:20201214102511j:plain

これでプロジェクトの設定が終わりました。

〇シーンの構成

次にシーンの構成を行います。

①上部ワールドタブの[MixedRealityToolkit]から[Add to Scene and Configure...]を選択してシーンにMRTKのカメラなどの機能を配置します。

f:id:Holomoto-Sumire:20201214102734j:plain

②[MixedRealityToolkit]ゲームオブジェクトのinspectorウィンドウから[Clone]を選択します。

f:id:Holomoto-Sumire:20201214103203j:plain

③サイドタブから[Input]を選択して[Clone]を選択します。

f:id:Holomoto-Sumire:20201214191209j:plain

④[Input Data Probiders]を開き[+Add Data Provider]をクリックします。

f:id:Holomoto-Sumire:20201214191454j:plain

これにより新しいProviderが追加されます。

⑤新しいProviderの[Type]に[OculusSDKDeviceManager]を指定します。

また、[Device Manager Profile]に[OculusXRSDKDeciceManagerProfile]を指定します。

f:id:Holomoto-Sumire:20201214191852j:plain

以上でOculus Quest用のMRTKの構成が終わりました。②~④はMRTKの構成を行っています。

MRTKではデフォルトの構成を改変することはできず、デフォルトの構成を複製してここにカスタマイズします。

〇ビルド

 ビルドする前にシーンにオブジェクトを配置します。

 HoloLensの場合アプリ起動時のHoloLensデバイスの位置が原点(0,0,0)になりますが、Questの場合はユーザーの立っている床が原点になります。

 よって今回は原点に対してPlaneを配置しました。

 f:id:Holomoto-Sumire:20201214192636j:plain

 またアクションを起こすオブジェクトとしてPressableButtonとPinchSliderを配置しました。

 f:id:Holomoto-Sumire:20201214192724j:plain

ビルドします。

①[BuildSettings]を開き[Build]を選択します。

f:id:Holomoto-Sumire:20201214193150j:plain

 HoloLensの場合はソルリューションファイルが書き出されますが今回はAPKファイルが書き出されます。

 ダイアログではAPKファイル名をしてします。

APKファイルが作成されたらQuestへビルドします。 SideQuestを使用します。

②SideQuestを起動します。

PCとQuestがUSBでつながっている場合SideQuestの上部のステータスアイコンが緑になります。

③SideQuestの上部ワールドタブからタスクウィンドウを開きます。

f:id:Holomoto-Sumire:20201214193621j:plain

④APKファイルをタスクウィンドウにD&Dします。

f:id:Holomoto-Sumire:20201214194153j:plain

⑤正常にインストールが完了すると緑色の表示に変わります。

f:id:Holomoto-Sumire:20201214194310j:plain  

〇Questで確認

f:id:Holomoto-Sumire:20201214195933p:plain

f:id:Holomoto-Sumire:20201214195939p:plainf:id:Holomoto-Sumire:20201214195950p:plain

〇参考

今回宮浦さんの記事を参考にさせていただいています。 ありがとうございます

qiita.com

〇HoloLensアドベントカレンダーとは?

冒頭でもお知らせしましたが、本日の記事はHoloLensアドベントカレンダー14日目の記事になります。

qiita.com

明日は shiratori1221さんの『UE4のMRTKについてなんか』の記事があります。