Oculus GoをUnity Editor上でデバッグしたい
Oculus Goを買って早速Unityで開発するぞ!と思って始めたのですが、ビルドして実機でプレイしないとHMDやコントローラーの動きの確認ができずとても面倒です。Unity Editor上で動作できればいいのに、と思っていたのですが、ちょうどVRカノジョを遊ぶためのOculus Riftを持っていたので、それを使って開発できないかと思いました。
HMDの向き
RiftをPCに接続し、OVRCameraRigをHierarchyに配置すると、Riftの動きがそのままUnity Editor上で確認できます。ただ、Goは3DoF(HMD自体の位置は取れない)のに対して、Riftは6DoFでHMDの位置自体も動いてしまうので、Goの場合とのずれが発生します。なので、微調整は実機で行う必要があります。
コントローラー
Oculus Touchは位置は認識されるものの、コントローラーが表示されません。なので,
OVRTrackedRemoteを少し修正し、無理やり表示させるようにしました。
void Update()
{
bool controllerConnected = OVRInput.IsControllerConnected(m_controller);
// 下記ifブロック追加
if (!controllerConnected)
{
controllerConnected = OVRInput.IsControllerConnected(OVRInput.Controller.RTouch);
m_isOculusGo = true;
}
(略)
}
m_cotrollerにはGo向けプロジェクトの場合はR Tracked Remoteをインスペクタから指定するのが一般的ですので、Editor上でOculus Touchが接続されているときの処理を加えています。(簡易版なので左コントローラーは無視しています)
コントローラーについてもHMD同様、3DoFと6DoFの違いがありますので、Goでのコントローラーの位置がどこになるかは実機で確認が必要です。
おわりに
もっと簡単な方法があるよ、という場合にはぜひお知らせください。
また、そこそこいいグラボを積んだPCでないとRiftは動作しませんのでご注意ください。