Raspberlyのブログ

Raspberlyのブログ

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

【Oculus Quest開発メモ】デバッグログをシーン空間内に出す OVR Debug Console編【Unity】

今回はOculus Questの開発ネタをやっていきます。
内容的にはOculus Rift Sなどにもそのまま応用できるかと思います。

 

デバッグログなどの数値を、VRシーン空間に配置して表示する方法について解説します。

f:id:Raspberly:20190610005827p:plain


 

 

 

 

開発環境

Windows 10

Unity 2018.4.1f

Oculus Integration ver1.37

Oculus Quest

 

 

 

先行研究

Oculus Questを開発されている多くの方が実感していると思いますが、
Questはデバッグ作業が非常に大変です。
Unity Editorのプレイボタンから実行できないので、毎回ビルドして実機で動かす必要がでてきます。
ですのでRift Sで開発をしたり、ALVRを使うと捗ります。

joytokey.net

bibinbaleo.hatenablog.com

 

 

これとは別にシーン空間内にインスぺクターの数値を表示してデバッグされている方もいました。

www.youtube.com

今回はこちらを試してみます。

 

 

 

 

セットアップ

前回と同様、基本的なセットアップをしておきましょう。
こちらのブログ様がとてもわかりやすい解説記事を投稿なさっています。

cycling.hateblo.jp

Oculusの開発には「Oculus Integration」というアセットが必須です。必ずインポートしましょう。

assetstore.unity.com

細かい設定は上のブログを参考にしてみてください。

 

 

 

 

 

OVR Debug Console

OVR Grabberのように、Oculus側でデバッグ用のコンポーネントが用意されています。
その名も「OVR Debug Console」です。
Assets/Oculus/VoiceMod/Scrips/Helpersの中にスクリプトがあります。

f:id:Raspberly:20190609234457p:plain

 

こちらをシーン内にある空のゲームオブジェクトにアタッチします。
するとインスペクターにはこのように表示されます。

f:id:Raspberly:20190609234729p:plain

 

インスペクターパラメーター

Max Message

 メッセージの最大表示数。表示数とありますが厳密には行数です。
デフォルトだと15行表示され、それ以降は古い順から消されていきます。

Text Msg

 メッセージを表示するためのText。つまるところUGUIのTextのこと。

 

 

Text Mesh Pro対応

UGUIのTextよりもText Mesh Proで出したい場合もあるかもしれません。
その場合、OVR Debug Consoleのスクリプトを書き換える必要がでてきます。
Text Mesh Proはプロジェクトにインポートしておきます。

 

 

Textの表示部分も書き換えましょう

 

 

 

 

 

 

実際に表示してみる

実際に使ってみましょう。
今回は試しに特定のOVR GrabbableがGrabberに掴まれているかどうかを表示してみます。
以下のテスト用のスクリプトを用意しました。
OVR Debug Consoleはstaticなオブジェクトなことに気を付けましょう。

 

 


インスペクターでTextまたはText Mesh Proを設定しておきましょう。
VRのUIの場合、TextにしろText Mesh Proにしろ、
CanvasのRender ModeがWorld Spaceになっていることが前提です。

f:id:Raspberly:20190610005436p:plain

 

無事表示できました。
懐中電灯を持っている時はTrueと表示され、持っていないときはFalseと表示されます。
Debug.Logと同様に関数を呼ぶだけで利用できるのでかなり手軽ですね。

f:id:Raspberly:20190610005506g:plain



 

 

まとめ

シーン空間上でデバッグログを出す場合はOVR Debug Consoleコンポーネントを使う。
当然Textも必須です。

 

 

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