UnityでOculus側とディスプレイ側に別々の視点の映像を表示する

  • 14
    いいね
  • 0
    コメント

Qiita初投稿記事です.よろしくお願いします.

はじめに

ので自分用メモとして記事にしました.

Oculusとは別のカメラの視点でディスプレイに表示したい!

VRゲーム開発などを行っていると,Oculus側に表示されるディスプレイのミラーリングではなく,固定視点や俯瞰視点の映像をディスプレイに表示したくなるときがあります.
今回はこのようなケースにおいて,Oculus側の視点の映像をOculusに,別カメラの視点を通常のディスプレイに表示する方法を紹介します.

注意

カメラが増えるほど同時にレンダリングするフレームが増えるので,マシンにかかる負荷が増大します.パフォーマンスに注意しましょう.

環境

  • Unity 5.3.1f1
  • Oculus Rift DK2
  • Oculus SDK 1.3.0

以上の環境で動作を確認しました.(CV1でもいけると思います)

やりかた

Hierarchy側の設定

Hierarchyに以下のオブジェクトを設置します.

  • Oculus側に表示するCamera
  • ディスプレイ側に表示するCamera

※Project Settings->Player->Virtual Reality Supportedにチェックを入れておきます.

Oculus側カメラInspectorの設定

  1. Target Eyeを"Both"に設定する.
  2. Target Displayを設定する.(デフォルトのDisplay 1で構いません)
  3. VRSettings.showDeviceViewでOculus側の映像をディスプレイにミラーしないように設定する.
VRmirrorSettings.cs
    UnityEngine.VR.VRSettings.showDeviceView = false;

image

ディスプレイ側カメラInspectorの設定

  1. Target Eyeを"None(Main Display)"に設定する.
  2. Target Displayの値をOVRCameraRigで設定したものと同じにする(ここで違う値にするとダメでした(ハマった原因))

image

さいごに

今回の手法を使って戦車を2人で協力して操作して戦うゲームの制作のお手伝いをさせていただきました.
Oculus側の人は戦車のキューポラから頭を出して周囲を索敵する役割を,ディスプレイ側の人は砲手の役割を担っています.

BitSummit4thに出展しました!@mn_chrome

(2017年1月20日追記)UnityEditor上で実行するとHMDの出力に残像が発生する問題

上記実行環境にてUnityEditor上でゲームを実行するとHMDへの出力に残像が発生する問題を確認しました.
また,DK2でなくHTC Vive利用時にも同様の現象を確認しました.

ビルドして実行すると上記の現象は確認されませんでした.
現在,原因を調査しています.