🦍

OculusQuestに映像キャプチャデバイスから映像を入力する

2020/09/27に公開

はじめに

UVCカメラ(WEBカメラやUSBカメラと呼ばれているもの)や、キャプチャーボードを接続したスマホなどから映像を出力し、その映像をOculusQuestで表示するための方法を紹介します。

準備するもの

OculusQuestはすでに用意されているものとします。

  1. 映像出力元
    • UVCカメラやスマートフォンなど
  2. キャプチャーボード
    • 映像出力元がUVCカメラであれば不要
  3. TypeC-HDMI変換ケーブル・アダプタ
    • 映像出力元のポートがTypeCの場合に必要
    • 映像出力元がUVCカメラであれば不要
  4. TypeC-USB変換ケーブル・アダプタ
    • キャプチャーボードの出力端子がTypeCではない場合に必要
    • UVCカメラの出力端子がTypeCではない場合に必要

構成

  • 映像出力元がUVCカメラの場合
    • UVCカメラ + ④ + OculusQuest
  • 映像出力元がスマートフォンの場合
    • スマートフォン + ③ + ② + ④ + OculusQuest

Unity

UnityProject

  1. Unity Projectを上記バージョンで作成します。
  2. Build SettingsやPlayerSettingsをOculusQuest用に設定します。
  3. NuGetForUnityをGithubからダウンロードし、Unityにインポートします。
    • ダウンロードしたNuGetForUnity.2.0.1.unitypackageをダブルクリックします。
  4. ツールバーのNuGetからManage NuGet Packagesを選択し、System.Text.Jsonを検索してインストールします。
  5. UVC4UnityAndroidをGithubからダウンロードし、Unityにインポートします。
    • ダウンロードしたUVC4UnityAndroid_0.1.0.unitypackageをダブルクリックします。
  • AndroidUtils.cs 329-333行
AndroidUtils.cs
	} // class AndroidUtils
#endif // #if UNITY_ANDROID

} // namespace Serenegiant
	} // class AndroidUtils

#endif // #if UNITY_ANDROID 
} // namespace Serenegiant 
  1. Oculus Integrationをアセットストアからインポートします。
  2. シーン内のMainCameraを削除します。
  3. シーン内にUI>Raw Imageを追加します。
  4. シーン内にOVRCameraRig.prefab(Assets/Oculus/VR/Prefabs)を追加します。
  5. シーン内にUVCDrawer.prefab(Assets/UVC4UnityAndroidPlugin/Prefabs)を追加します。
  6. シーン内に追加したUVCDrawerに下記の設定をします。
    • アタッチされているコンポーネントのUVCDrawer.csのRenderTargetsのSizeを1にして、シーン内のRawImageを設定します。
    • UVCManager.csのDefaultWidth、DefaultHeight、UVCDrawer.csのDefault Width、Default Heightに適当な値を設定します。
  7. 映像表示先のCanvas、Raw Imageに以下の設定をします。
    • CanvasのRenderModeをScreen Space - CameraにしてOVRCameraRig内のカメラコンポーネントがアタッチされているGameObjectをアタッチし、RenderModeをWorldSpaceにします。
    • Raw ImageのRectTransformのWidth、Heightに適当な値を設定します。

コンポーネントなどの設定は以下を参考にしてください。


Build

上記のシーンをBuild SettingsのScenes In Buildに追加して、Build And Runで完了です。
親の顔より見たスカイボックスに、スマートフォンの映像やUVCカメラで撮影している映像が表示されます。

  • OculusQuestにAndroidスマートフォンを接続した場合
  • OculusQuestにUVCカメラを接続した場合

備考

ちなみにOculusQuestでなくとも、AndroidOSが搭載されたスマートフォンであれば、UVCカメラや他端末から映像を入力することができます。

参考

Discussion