HP Reverb G2 Omnicept Editionを札幌で預かった話
こんにちは、じゅんです。
Hokkaido MotionControl Network (#DoMCN)というHoloLens・VR技術好きの技術者コミュニティの勉強会を運営していて、開発者の知見の交流を促進しています。また、元・物性研究者として、研究機関に所属する若手研究者でxRに興味を持つ人を見つけてはHoloLensを被せに行き、開発者コミュニティへの橋渡しを行う事を続けています。これらを適切に表現する職名が無いので、勝手にScientist/Developer Relations と名乗っています。
2月の記事で紹介したHP Reverb G2 (以下、G2無印)の動作検証(↓のリンク)に引き続き、一般未流通の(北米では一昨年販売開始済み)の法人・研究機関向けヘッドマウントディスプレイHP Reverb G2 Omnicept Edition(以下、Omnicept)をお借りすることが出来ましたのでまとめておこうと思います。今回は地元でのお触り会が年度明けの混乱もあってできなかったので、ハック遊びは次回以降のレンタルの時に持ち越しです。
今回もご対応いただいている日本HP 島﨑さんに感謝申し上げます。なお、法人であればHP社のお問い合わせページでOmnicept Editionを購入可能になっています(注:オンラインストアではありません)。
企業向けレンタルからコミュニティ向けレンタルへの拡張
前回のReverb G2貸し出しの時に、Omnicept Edition貸し出し先の候補探しも実は並行で行われていました。先にニーズがあったホロラボさんにいったん案内をさせていただき、そちらでの社内検証が終わったのでハードウェアが札幌に届くことになりました。
(なお、ここで今回紹介する同梱物はデモ用なので正式発売後の同梱物とは異なる可能性があります。後日正規のものを手に入れた方はそちらのガイドに従ってみてください。)
上のツイートに、Omnicept関連で私がチェックした内容をすべてツリー形式で雑にぶら下げてありますので興味のある方はそちらに飛んでみてください。その中で役立った項目のつぶやきなどありましたらRTなどして頂けると嬉しいです。コミュニティ向け需要の発掘のためにもぜひぜひご協力おねがいします。
装着者の挙動をPCに送るセンサてんこ盛りデバイス
OmniceptにはIMU、フェイスカメラ(鼻と口)、心拍測定センサ、アイトラッキングセンサなどが仕込まれています。これらのセンサによって、通常のインサイドアウト型VRゴーグルで行われている自己位置検出と全く別系統で装着者からのデータをPCに送るようになっています。VR空間内で直面した出来事などによっておこる装着者のパフォーマンス変化を調べるためのツールとも言えます。また言い換えると、Vtuberの動きの生々しさを作り出すツールにもなりえます。まばたきとか視線が連動するのでちょっとドキッとします(後述)。
ゴーグルから生えるケーブルは計三本です。駆動用電源のACアダプター、PCへの情報通信用のUSB Type-Cコネクタ、 映像信号表示用のDisplayPortです。この構成はG2無印版と一緒です。
技適表示がちゃんと書いてあったので、日本でも売ってくれるつもりがあることが分かり、密かに安心しました。
ヘッドストラップの構造が変更されていました。以前はこめかみ近くのベルクロを留めて左右のバンドの長さを調節する形式でしたが、今度のは後頭部のダイヤルを回すと左右のバンドが同時に長さ調節できるタイプになりました。コントローラは前と同じタイプのように感じました。
コントローラのトラッキング範囲が初期型のG2無印よりかなり改善しました。VRChatのスタート地点に置いてある鏡を正面に捉えた状態で自分の両手をうごかし、アバターの両手の軌道が非連続に動くところ(ロストする領域)を調べている様子です。顔の正面より上方向と、真下で見失っています。以前のG2無印(初期型)の検証では、腰の高さに来たコントローラはだいたい見失ってしまっていたので、それに比べて死角が本当に減ったことが分かりました。
せっかくなので開発の真似事もしてみた
ここまではビューアとしての変化を調べていましたが、現状ではセンサに対応した公開アプリなどは知らないため、Unityでの通信の確立までを試してみる事にしました。
①SDKの導入
開発者サイト(https://developers.hp.com/omnicept)に行き、開発者登録をして、センサ類をプロジェクト内で動かせるようにするためのSDK(2022/5/3時点でver1.13.1)をダウンロードします。Setupファイルからインストールして、インストーラの最後に出てくるチェックボックスにチェックを入れて終了です(これを忘れてPC二台目のセットアップでハマった)。
Unityプロジェクトを新規で作って、Assetsのインポートをします。テストで試したUnity Editorのバージョンは2020.3.33f1を選んでみました(2022/4/10時点)。
②アプリ用のCliant IDとアクセスキーの発行
HPのサイトの開発者コンソールのマイページからアプリのSDKに組み込むためのCliant IDとaccess keyを発行します。
③UnityプロジェクトにIDとキーを組み付ける
作ったプロジェクトのOmnicept設定を開くとIDとキーに対応する二か所の入力欄が空欄になっているので、②で発行したIDとキーを入力すると、そのキーに対応したライセンスのセンサ情報取得の準備が終わります。
ヘッドセットのセンサと具体的な通信のやりとりを担当してくれる部品がインポートしたAssetsの中にprefabとして出来ているので、それをシーンに配置してやればOKです。
④うごかす
導入説明ビデオの手順に従って、センサーから取得した値をログで吐き出すアプリをひとまず作りました。実行プレビューを開始した時に、初回にのみ画面に現れる↓の許可画面でAcceptをすると、作成したアプリとヘッドセットの信号が開通して、Unity内にログが流れてくるようになります。
⑤ハマったところ
①のSDKインストールの最後に出てくるこの画面の規定値が空になっているのですがこのことに気づかずにインストーラを閉じた場合、センサ情報の取得がすべてOFFのままになります(④は通信の流れのバルブみたいなもので、⑤は元栓が開いてるかどうか)。28日のイベントに持ち込もうとノートPCにセットアップしてみた所うんともすんとも言わなくなってて泣きました。センサを使うためのSDKを入れていった結果デフォルトがOFFって、直観と合わないので、これに気づくまでにだいぶ時間がかかりました。
現在のセンサの状況確認・変更には、Windows ツールバーアイコン領域にHP Omniceptってメガネアイコンが居るのでそこから設定画面に飛ぶことが出来ます。
ちなみに初回の後のSDK修復コマンドでは、取得可否を訊いてこないので、↑でハマってるとここでも気づくことが出来ませんw
サンプルツールを動かして遊んでみた
開発者サイトのDownloads-Toolsのところ(https://developers.hp.com/omnicept/downloads)にOmniceptの機能をいろいろ使ったサンプルプログラムが置いてあります。これらをダウンロードして動かして遊んでいました。もちろん各アプリは、初回起動時に通信許可をOmniceptに対して出しておく必要があります(④の手続き)。
口の動きを見て動作に反映させるSDKは今のところ見つけられずにいましたので、フェイスカメラの動作検証は赤外線カメラの映りの確認のみになっています。現時点でも、簡易のVtuberシステムに応用のありそうな目線・まばたきなどの動作確認にはなりました。ウインクとかも余裕で出来ます。
ハマったところその2
センサデータにとっての関所みたいな働き(④の管理)をする部分がこの、HP Omnicept Tray Appというプログラムなのですが、これが反応しない状態になる現象がデスクトップPC、ノートPC両方において発生しました。こうなると、センサデータを通す許可の画面も自動で出てこなくなったりしますし、許可出し済みの2回目以降起動アプリもデータを受け渡しできなくなるみたいです。
タスクマネジャーを開いてバックグラウンドプロセスのところからこのプログラムをOFFしたあと、WindowsのスタートメニューからHP Omnicept Trayを起動しなおすことで関所機能が復活します。
どうして動かなくなるのかまでは原因が突き止められませんでしたが、次のバージョンで改善されていると嬉しいです。
その他の確認事
・UE4版のパッケージもある
未検証に終わりましたが、サンプルツールのソースは、Unity、UE4版の両方がダウンロード可能です。
・電力が足りてないかもしれない方のグラボ側USB端子でも動作確認
一部のPCでは駆動に必要な電力を供給できないUSB穴があるらしく、HPからはグラボ側から開いてるUSB端子を使う事は不推奨というドキュメントがあります。ただケーブルの取り回しの自由度がある方が私は嬉しいので、ノートPCのすべての端子で試してみて大丈夫であったことを確認しました。
・VRゲーミングリュックで運べるかどうかのチェック
前回同様、リュックに詰めてみました。ガジェット収納部分は10センチ程度の深さがありますが、この条件でぴったりめに収納可能でした。残り1/3くらいのすき間に別のスタンドアロン系ゴーグルも入ります。余談ですが、このリュックLVL-3 PACKはツクモネットショップで5999円→4999円での在庫処分セール中です。すでに2つ買ってますがもう1個買おうかな…。
・気になっている謎の端子がある
フェイスクッション表面のおでこ近辺に心拍センサーがあって、ゴーグル本体とはフェイスクッションを外したときに現れる電極を介してつながっています。心拍センサは付属のクッションとゴーグル上部の12端子でつながっているようですが、ゴーグル下部の8端子×2セットのクッション側が塞がれており、これは機能拡張用の端子と思われます。そのうちカスタムされたフェイスクッションが出そうですが今のところ用途は謎です。においVRのユニットとくっつけて嗜好性のデータとか取ったりかなとかはすぐ思いつきますが果たして。。?こういうのがあると、ゴーグル→装着者への刺激提示のオプションなのか、装着者→PCへの新たな生体データの取得ルートなのか想像が膨らみますね。
・最新情報はブログに書かれている
ハードウェアに関する最新情報は開発者ページのBlogに随時追加されていきます。
メールマガジンも届くので必要な事はここでも知ることが出来そうです。
・アプリの多重起動に対応しているのか確認し忘れた
たとえば心拍だけを表示・記録するアプリをOmniceptと連動させたとして、他のVRソフトも同時に実行できるのかどうかは未検証です。例えばBeat Saberやってる時にその状況にして、特定曲の同じ部分をミスるのは精神的なものが原因なのかただの疲れなのか、みたいなのが取れたら技能向上に役立つんじゃないかとふと思いました。本日返却したので、確認しておけば良かったです。
まとめ
日本HP社から激レアなHMDをしばらくお借りして、わからんなりに触ってみた結果をまとめてみました。Omnicept Editionの用途は産業・研究が多そうですが、一般人でも触る機会をいただけましたので、次回の機会がまた巡ってきたときにはUnityエンジニアの本職さんと一緒に触ってSDKの中身いじってみるとかチャレンジしてみたいと思っています。その方が深い知見が皆さんに共有できそうです。
ビューアとしての使い勝手に関してはReverb G2の無印版とほとんど同じ印象がありましたので、過去記事の方も比較参照していただければと思います。
(2022/5/4 初稿 4898字 初稿 360 min
2022/5/6 チェック完了・修正完了)