🦍
OculusQuestに映像キャプチャデバイスから映像を入力する
はじめに
UVCカメラ(WEBカメラやUSBカメラと呼ばれているもの)や、キャプチャーボードを接続したスマホなどから映像を出力し、その映像をOculusQuestで表示するための方法を紹介します。
準備するもの
OculusQuestはすでに用意されているものとします。
- 映像出力元
- UVCカメラやスマートフォンなど
- キャプチャーボード
- 映像出力元がUVCカメラであれば不要
- TypeC-HDMI変換ケーブル・アダプタ
- 映像出力元のポートがTypeCの場合に必要
- 映像出力元がUVCカメラであれば不要
- TypeC-USB変換ケーブル・アダプタ
- キャプチャーボードの出力端子がTypeCではない場合に必要
- UVCカメラの出力端子がTypeCではない場合に必要
構成
- 映像出力元がUVCカメラの場合
- UVCカメラ + ④ + OculusQuest
- 映像出力元がスマートフォンの場合
- スマートフォン + ③ + ② + ④ + OculusQuest
Unity
UnityProject
- Unity Projectを上記バージョンで作成します。
- Build SettingsやPlayerSettingsをOculusQuest用に設定します。
- NuGetForUnityをGithubからダウンロードし、Unityにインポートします。
- ダウンロードしたNuGetForUnity.2.0.1.unitypackageをダブルクリックします。
- ツールバーのNuGetからManage NuGet Packagesを選択し、System.Text.Jsonを検索してインストールします。
- 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
- Oculus Integrationをアセットストアからインポートします。
- シーン内のMainCameraを削除します。
- シーン内にUI>Raw Imageを追加します。
- シーン内にOVRCameraRig.prefab(Assets/Oculus/VR/Prefabs)を追加します。
- シーン内にUVCDrawer.prefab(Assets/UVC4UnityAndroidPlugin/Prefabs)を追加します。
- シーン内に追加したUVCDrawerに下記の設定をします。
- アタッチされているコンポーネントのUVCDrawer.csのRenderTargetsのSizeを1にして、シーン内のRawImageを設定します。
- UVCManager.csのDefaultWidth、DefaultHeight、UVCDrawer.csのDefault Width、Default Heightに適当な値を設定します。
- 映像表示先の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カメラや他端末から映像を入力することができます。
参考
-
フレームシンセシス VR開発メモ Unity+Oculus Quest 開発メモ
- OculusQuestの最初の環境を作る際に参考にしてます。
-
車輪の再発見みたいな? AndroidのUnityでUVC機器からの映像をTextureとして使うためのプラグインプロジェクトを公開した\(^o^)/
- AndroidOSの端末にUVC機器を接続して映像を表示する際にお世話になりました。
- キャプチャーボード
- TypeC-HDMI変換ケーブル
- TypeC-USB変換アダプタ
Discussion