Raspberlyのブログ

Raspberlyのブログ

Unityネタをメインとした技術系ブログです。にゃんこ大戦争や日常なども。そろそろブログタイトル決めたい

【Oculus Quest開発メモ】開発初期設定まとめ Oculus Integration【Unity】

今回はOculus Questの開発ネタをやっていきます。
 

UnityでOculus Integrationを利用したVR開発をする時の初期設定のまとめです。
Unityプロジェクトの作成からサンプルシーンを動かす所まで解説します。
(定期的に更新していく予定です)

最終更新 : 2021/3/20 Oculus Quest2で動作確認済み(Oculus Link込み)

最近更新が滞っており申し訳ありません。。。。

 

 

疑問点、間違いなどがありましたらお気軽にコメントまでどうぞ

f:id:Raspberly:20200218001037p:plain

これまでOculus Integrationのアップデートで初期設定が変わることが何度かあったため、
他の開発メモと独立して執筆しました。

 

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にチェックを入れます。

f:id:Raspberly:20201111004708p:plain

 

 

Unity側の初期設定

Oculus Integrationのインポート前に設定しておきます。
インポート後でもできますがアセットの再インポートが走るためかなり時間がかかります。

Target Platformの変更(Questの場合)

Build SettingsからTarget PlatformをAndroidSwitch Platformします。
この時、Texture CompressionをASTCに変えておきます。

f:id:Raspberly:20210320171649p:plain

Oculus Linkでのみ動作させる場合はAndroidに変える必要はありません。

 

XR Plugin Managementのインストール

Project Settings/XR Plugin Managementからインストール。(PackageManagerからもできます)
Plug-in ProvidersのOculusにチェックを入れます。

f:id:Raspberly:20210320134709p:plain

 

 

Oculus XR Pluginのインストール

PackageManagerからOculus XR Pluginをインストールします。

f:id:Raspberly:20210320133638p:plain

 

インストール時にエラーが出る場合

従来のOculus AndroidとXR Plug-in Managementは互換性がありません
そのため、キャッシュなどが残っていると以下のようなエラーがでます。

f:id:Raspberly:20201111005636p:plain

これはUnityを終了させ、Library/PackageCacheを削除すると解決します。

f:id:Raspberly:20201111005831p:plain

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にします。

f:id:Raspberly:20201116013435p:plain

 

Graphics APIsからVulkanを削除

Project Settings/Player/Other SettingsのGraphics APIsからVulkanを削除

f:id:Raspberly:20210320164958p:plain

 

Unity側の設定は以上です。

 

 

 

Oculus Integrationのインポート

インポート

Oculus IntegrationはUnityで開発するためのツール・スクリプト・プレハブが統合されたパッケージです。
AssetStoreからOculus Integrarionをダウンロードしインポートします。

f:id:Raspberly:20210320140323p:plain

かなり大きいアセットです。
AvatarとLipSyncは必ずしも必要ではないためチェックを外してもよい。

f:id:Raspberly:20210320140424p:plain

インポート後、いろいろダイアログが出てくるのでそれに従っていきます。

f:id:Raspberly:20210320140728p:plain

最終的にUnityの再起動が促されるため従います。 再びUnityを立ち上げて完了です。
(自動で再起動しない場合があります。その時は手動でUnityを再起動しましょう)

 

以上でOculus Quest開発を行う初期設定は完了です。

 

 

サンプルシーンの確認

Oculus IntegrationのサンプルシーンはAssets/Oculus/SampleFramework/Usageにあります。

f:id:Raspberly:20210320141729p:plainPCにOculus Questをつないである状態であれば、Build And Runですぐに実機確認ができます。

f:id:Raspberly:20210320172215p:plain

 


コントローラやハンドモデルを確認できるシーン

CustomControllersシーンはコントローラのモデルを確認できるシーン

f:id:Raspberly:20210320152116g:plain

CustomHandsシーンは手のモデルが確認できるシーン

f:id:Raspberly:20210320152146g:plain

DinstanceGrabは離れた場所にあるものを掴んでなげることができるシーンです
こちらはキャラクターコントローラーもありスティックで移動することができます

f:id:Raspberly:20210320155643g:plain

 

以上となります。
Unityプロジェクトの作成からサンプルシーンを動かすところまで解説しました。

 

 

 

 

 

 

参考資料

framesynthesis.jp

qiita.com

blogs.unity3d.com

cycling.hateblo.jp

 

 

 

 

 

番外編: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クライアントソフトウェアをダウンロードします。

www.oculus.com

インストール後はOculus Questを接続し、画面に従ってセットアップをすればPC側の準備は完了です。

 

最後にOculus Questの設定/クイックアクションに進みOculus Linkを有効にします。

f:id:Raspberly:20210320175917p:plain

ここまで問題なければホーム画面が表示されます。

f:id:Raspberly:20210320180052p:plain

この状態でUnityのプレイモードを有効にするとそのままOculus Quest側ですぐに動作確認ができます。
毎回ビルドするよりも開発イテレーションが爆速なのでオススメです。

f:id:Raspberly:20210320154733g:plain

 

 

 

番外編:AvatarGrabの復活方法 

昔のOculus Integrationには物を掴んで投げる挙動を学習するのに最適なAvatarGrabシーンが存在していました
ただし、この方法もいつまで使えるかはわかりません。


AvatarGrabについてはこちら

raspberly.hateblo.jp

開発環境

今回はこちらの環境にインポートします。

Unity2019.3.0f6
Oculus Integration 13.0

 

旧バージョンのOculus Integrationを入手

旧バージョンのOculus Integrationを入手します。
古いものはアーカイブされているので、下のリンクからダウンロードします。

Unity Integration Archive | Developer Center | Oculus

f:id:Raspberly:20200216212336p:plain

今回ダウンロードするのは1.42.0です。
ちなみに1.42.0と書かれた所をクリックするとバージョンを変更することができます。

f:id:Raspberly:20200216212517p:plain

 

インポート

先ほどダウンロードしたOculus Integration 1.42.0のUnityPackageを実行します。
まずは一番上にあるOculusのチェックを外した状態で、

f:id:Raspberly:20200216212937p:plain

Oculus/SmapleFramework/Core/AvatarGrab
Oculus/SmapleFramework/Usage/AvatarGrab.unityにチェックを入れインポートします。

f:id:Raspberly:20200216213016p:plain

これで完了です。特にエラーもなくAvatarGrabシーンを実行できると思います。

 

AvatarGrabとその活用についてはこちら

raspberly.hateblo.jp

 

 

 

 

 

 

番外編:Oculus QuestをPCにつないでも認識されなくなる(情報求)

私の環境でたまに起こる現象。
PCにOculusQuestを付属のケーブルでつないでも認識されなくなることがあります。
当然Build And Runはできないし、中のスクショを読み込むこともできません。
気がついたら治ってたりしますが・・・・

ケーブルは問題なさそうだったので、PC側かQuest側の問題っぽいのですが、
いまいち解決方法がわかりません。何か知見をお持ちの方はコメントなどで教えていただければ幸いです。

 

同じ症状の方が結構いらっしゃいまして調べるといろいろでてきました。

ch.nicovideo.jp

qiita.com

qiita.com

 

 

 

 

 

 

 

 

他間違っている箇所、わかりにくい所がありましたらコメントにお願いします。