今回はOculus Questの開発ネタをやっていきます。
UnityでOculus Integrationを利用したVR開発をする時の初期設定のまとめです。
Unityプロジェクトの作成からサンプルシーンを動かす所まで解説します。
(定期的に更新していく予定です)
最終更新 : 2021/3/20 Oculus Quest2で動作確認済み(Oculus Link込み)
最近更新が滞っており申し訳ありません。。。。
疑問点、間違いなどがありましたらお気軽にコメントまでどうぞ
これまでOculus Integrationのアップデートで初期設定が変わることが何度かあったため、
他の開発メモと独立して執筆しました。
- Unityプロジェクトの作成
- Unity側の初期設定
- Oculus Integrationのインポート
- サンプルシーンの確認
- 参考資料
- 番外編:Oculus Linkのススメ
- 番外編:AvatarGrabの復活方法
- 番外編:Oculus QuestをPCにつないでも認識されなくなる(情報求)
Unityプロジェクトの作成
今回は以下のバージョンを使用します。
Unity 2020.3.0f1
Oculus Integration 25.0
XR Plugin Management 4.0.1
Oculus XR Plugin 1.8.1
(Builtinプロジェクト、URPプロジェクト両方で動作確認済み)
Unityインストール時にAndroid Build Supportにチェックを入れます。
Unity側の初期設定
Oculus Integrationのインポート前に設定しておきます。
インポート後でもできますがアセットの再インポートが走るためかなり時間がかかります。
Target Platformの変更(Questの場合)
Build SettingsからTarget PlatformをAndroidにSwitch Platformします。
この時、Texture CompressionをASTCに変えておきます。
Oculus Linkでのみ動作させる場合はAndroidに変える必要はありません。
XR Plugin Managementのインストール
Project Settings/XR Plugin Managementからインストール。(PackageManagerからもできます)
Plug-in ProvidersのOculusにチェックを入れます。
Oculus XR Pluginのインストール
PackageManagerからOculus XR Pluginをインストールします。
インストール時にエラーが出る場合
従来のOculus AndroidとXR Plug-in Managementは互換性がありません。
そのため、キャッシュなどが残っていると以下のようなエラーがでます。
これはUnityを終了させ、Library/PackageCacheを削除すると解決します。
Unityを終了させてから削除しないとうまくいかないので気を付けましょう。
参考元:Unity cannot remove com.unity.xr.oculus.android package - Unity Answers
Minimum API Levelの変更
Project Settings/Player/Other SettingsのMinimum API LevelをAPL Level 23にします。
Graphics APIsからVulkanを削除
Project Settings/Player/Other SettingsのGraphics APIsからVulkanを削除
Unity側の設定は以上です。
Oculus Integrationのインポート
インポート
Oculus IntegrationはUnityで開発するためのツール・スクリプト・プレハブが統合されたパッケージです。
AssetStoreからOculus Integrarionをダウンロードしインポートします。
かなり大きいアセットです。
AvatarとLipSyncは必ずしも必要ではないためチェックを外してもよい。
インポート後、いろいろダイアログが出てくるのでそれに従っていきます。
最終的にUnityの再起動が促されるため従います。 再びUnityを立ち上げて完了です。
(自動で再起動しない場合があります。その時は手動でUnityを再起動しましょう)
以上でOculus Quest開発を行う初期設定は完了です。
サンプルシーンの確認
Oculus IntegrationのサンプルシーンはAssets/Oculus/SampleFramework/Usageにあります。
PCにOculus Questをつないである状態であれば、Build And Runですぐに実機確認ができます。
コントローラやハンドモデルを確認できるシーン
CustomControllersシーンはコントローラのモデルを確認できるシーン
CustomHandsシーンは手のモデルが確認できるシーン
DinstanceGrabは離れた場所にあるものを掴んでなげることができるシーンです
こちらはキャラクターコントローラーもありスティックで移動することができます
以上となります。
Unityプロジェクトの作成からサンプルシーンを動かすところまで解説しました。
参考資料
番外編:Oculus Linkのススメ
サンプルシーンや開発途中の動作確認のたびに毎回ビルドするのは大変面倒です。
そこでOculus Linkを使った開発をオススメします。
Oculus Linkとは
Oculus QuestをPCに接続し、PCVR向けコンテンツをプレイできる機能です。
PCのスペックが要件を満たしていることと、データ転送と電力供給ができるUSBケーブルが必要になります。
コンポーネント 推奨スペック プロセッサ Intel i5-4590 / AMD Ryzen 5 1500X以上 グラフィックカード 以下のGPUの表を参照 メモリ 8GB以上のRAM オペレーティングシステム Windows 10 USBポート USBポートx1
Unityの実行方法
PCがスペックを満たしていて、対応するUSBケーブルがある場合すぐに動作させることができます。
こちらからOculusクライアントソフトウェアをダウンロードします。
インストール後はOculus Questを接続し、画面に従ってセットアップをすればPC側の準備は完了です。
最後にOculus Questの設定/クイックアクションに進みOculus Linkを有効にします。
ここまで問題なければホーム画面が表示されます。
この状態でUnityのプレイモードを有効にするとそのままOculus Quest側ですぐに動作確認ができます。
毎回ビルドするよりも開発イテレーションが爆速なのでオススメです。
番外編:AvatarGrabの復活方法
昔のOculus Integrationには物を掴んで投げる挙動を学習するのに最適なAvatarGrabシーンが存在していました。
ただし、この方法もいつまで使えるかはわかりません。
AvatarGrabについてはこちら
開発環境
今回はこちらの環境にインポートします。
Unity2019.3.0f6
Oculus Integration 13.0
旧バージョンのOculus Integrationを入手
旧バージョンのOculus Integrationを入手します。
古いものはアーカイブされているので、下のリンクからダウンロードします。
Unity Integration Archive | Developer Center | Oculus
今回ダウンロードするのは1.42.0です。
ちなみに1.42.0と書かれた所をクリックするとバージョンを変更することができます。
インポート
先ほどダウンロードしたOculus Integration 1.42.0のUnityPackageを実行します。
まずは一番上にあるOculusのチェックを外した状態で、
Oculus/SmapleFramework/Core/AvatarGrabと
Oculus/SmapleFramework/Usage/AvatarGrab.unityにチェックを入れインポートします。
これで完了です。特にエラーもなくAvatarGrabシーンを実行できると思います。
AvatarGrabとその活用についてはこちら
番外編:Oculus QuestをPCにつないでも認識されなくなる(情報求)
私の環境でたまに起こる現象。
PCにOculusQuestを付属のケーブルでつないでも認識されなくなることがあります。
当然Build And Runはできないし、中のスクショを読み込むこともできません。
気がついたら治ってたりしますが・・・・
ケーブルは問題なさそうだったので、PC側かQuest側の問題っぽいのですが、
いまいち解決方法がわかりません。何か知見をお持ちの方はコメントなどで教えていただければ幸いです。
同じ症状の方が結構いらっしゃいまして調べるといろいろでてきました。
他間違っている箇所、わかりにくい所がありましたらコメントにお願いします。