こんばんは。Oculusを使ったイベントで、Oculusを体験している人の映像を他の客とも共有できたほうが楽しそうという話になり、Oculusのヘッドトラッキングと連携しその前後の映像をプロジェクターで、会場の前後面に表示する仕組みを用意しました。
構築にはNora@Stereoartsさんの開発されたOVRMirrorを利用しています。Nora@Stereoartsさん、構築にあたりアドバイスありがとうございました。
また私の以前書いたエントリー「Oculus使用時に第三者視点のカメラを別ウィンドウで表示する」も参考にしてください。
OVRMirrorは
任意のカメラ(RenderTexture)を、別ウィンドウに描画するコンポーネントです。
OVRMirrorの現バージョンでは、2つの外部出力ウィンドウを生成することができないので、前の映像、後ろの映像を2つつなげて一つのウィンドウに表示し、そのウィンドウを2つのモニタ横断的に表示することで、モニタ1に前映像を、モニタ2に後ろ映像を表示するということを実現しました。
設定のキモは2つのカメラで撮った映像を1つのRenderTextureに表示し、OVRMirrorへ受け渡すところです。主要箇所の設定は下記のとおりです。
今回のプロジェクトで利用したOculusカメラとOVRMirrorを組み合わせて適切に設定を行ったパッケージを下記からダウンロードできるようにしてあります。
Oculusカメラは相性の問題で0.4.4を利用。
OVRMirrorは現時点の最新版であるOVRMirror_20150215を利用しています。
OVRCameraRig_with_2Projectors.unitypackage
パッケージをインポート後に/Assets/OVRCameraRig_with_2Projectors
をシーンに追加することで利用が可能です。OVRMirrorはエディター上では標準では表示されないので、ビルドすることで出力ウィンドウが表示されます。
Oculusで見た映像がこんなかんじの場合、
OVRmirrorで出力した左半分にはOculusで見ている映像。右半分には後ろ側の映像が表示されます。これを左右別のプロジェクターに表ずることでOculusを装着している人と観客の一体感を作り出します。
下記の設定で表示の微調整を行いました。
OVRMirrorで表示するCameraのField of Viewを60から75に変更することで、Oculusで見ている視野に近い映像を表示するようにしています。
OVRMirrorで表示する画角はRenderTextureのサイズで指定します。
また表示を高速にするために、OVRMirror表示のAnti-AliasingをNoneに設定していますが、こちらは環境によりオンにしてもいいかと思います。