Unity VR PCディスプレイに第三者カメラを表示

Unity VR開発で、PCディスプレイにはHMDではなく、別カメラの映像を表示したいということがよくあります。
以下の方法でPCディスプレイには別カメラ映像を表示することが可能です。

プロジェクトセットアップ

今回の環境は以下の通りです

  • Windows11
  • HTC Vive
  • Unity 2020.3.25f
  • SteamVR 2.7.3

まずはプロジェクトを作成してSteamVRプラグインを取り込みます

SteamVR PluginからCamera Rigを設定します

動きが分かりやすいように、CameraRig配下のleft、right、cameraに適当なオブジェクトを設定しておきます

最初から配置されているMain Cameraを変更していきます。
好きな位置に移動したのち、以下のプロパティを変更します

Depthのプロパティを1、具体的にはHMD側のCameraのDepthプロパティより大きい値を指定することでPCディスプレイ側にはMain Camera側(Depthが大きいほう)が優先されて表示されます。
もちろん、HMDにはHMD側のカメラの映像が表示されます。
Target EyeはNoneを指定します。

以上

ひとまずPCディスプレイにHMD以外のカメラ映像を表示する場合、上記の設定だけで実現することができます。
アバターなどを利用するゲームの場合、プレイヤーにはHMDの映像を、PCディスプレイには他カメラの映像を映すことでVRゲームを遊ぶ人、遊んでいる人を見てる人、両方とも楽しめるゲームが作れるかもしれませんね