前回USBカメラ3台をNDI化してネットワークに送信しました。それら3本の映像を受信して、点キーでカメラを切り替える表示アプリをUE5で作ってみます。
前回USBカメラ3台をNDI化してネットワークに送信
https://riragon.com/ubuntu22-04-gstreamer-ndi-sdk-gst-plugin-ndi/
UE5(Unreal Engine 5)でNDIを受信して表示する方法
https://riragon.com/unreal-engine-5-ndi-reception-display-guide/
UE5.2を起動して、次のようなプロジェクトを作りました。CameraActorを4つ。NDIスクリーンを3つです。
事前にNDIプラグインをONにしております。
NDIの受信設定も3つ作成しておきました。
点キーを押すとカメラが切り替わるブループリントを作成しました。
0なら全体。1なら左のカメラ、2なら中央、3なら右といった感じです。最初だけ全体を表示します。
映像に残像が出るので以下をNoneにしています。
こんな感じにNDIカメラの映像を切り替えできました。実用性という点では、あまり良い使い方ではないかもしれません。
しかしNDIIOのエラー出てしまい、、アプリの書き出しができず。。。断念。それから30時間ぐらい思考錯誤にて解決しました。まず以下のNDIIOエラーが出てBUILD FAILEDします。
Expecting to find a type to be declared in a module rules named ‘NDIIO’… This type must derive from the ‘ModuleRules’ type defined by Unreal Build Tool
UATHelper: パッケージ化 (Windows): BUILD FAILED
正しくNDIIOプラグインをパッケージ化できていないようです。そこでUE_5.2のフォルダー内にあったNDIIOをプロジェクト内に移動しました。コピーではなく移動です。元のフォルダーを残さないで移動します。
C:\Program Files\Epic Games\UE_5.2\Engine\Plugins\NDIIO\
↓UE5.2のプロジェクトフォルダーndiplayer05だった場合
C:\Users\—-\Documents\Unreal Projects\ndiplayer05\
にPluginsを作成して、NDIIOフォルダーを丸ごと移動しました。これでビルドできました。
以上からプラグインを移動したことで認識しました。