UE5のImagePlateは、CineCameraActorの画角と連動するので便利です。このImagePlateにNDI映像を貼る手順について書きます。
ImagePlateのプラグインをONにする(UE5を再起動する)
NDIのプラグインをONにする(UE5を再起動する)※NDIのインストール方法は参考文献を参照ください。
ImagePlateをレベルに配置する
ImagePlateをCineCameraActorに紐づける。ImagePlateの位置と回転をカメラと正対するように調整する
NDI Media Reciverを作成する(受信するNDIデータと参照するDI Media Texture 2Dをこれで指定できる。名前は任意でOK)
NDI Media Texture 2D を作成する(これにNDI映像が画像テクスチャとして貼られる)
NDI Media ReciverにNDI Media Texture 2D を指定する
ImagePlateに貼り付けるための空のMaterialを作る(名前は任意でOK)
上記で作った空のMaterialに先に作ったNDI Media Texture 2Dを紐づける(ImagePlateは通常のMaterialしか貼れないので、NDI Media Texture 2Dを貼りなおす感じ)
NDIはRGBAにも対応しているので、Material設定で「Output Alpha」をONにしておく。そうするとOpacity(AplhaCHの繋ぎ先)が出来る
Material設定は、Material Domain -> Post process, Blend mode -> Translucent, Shading model -> unit, Two Sided=onにしておく。これでRGBAを受けられるので、RGBをEmmisive colorに、AlphaをOpacityに繋ぐ
ImagePlateに上記で作ったMaterialを紐づける(参考画像では、NDI_Materialという名前にしている)
(手続き的な事実として) NDI Receive Actorをレベル上に配置しておかないとNDIが上手く受信できないので、配置する
NDI Receive ActorをCineCameraActorの画角外の遠いところに置いておく(NDIを上手く受信するために手続き的な事実として置いているだけなので)
Game Playすると、NDI受信した映像が正しくImagePlateに反映される
ImagePlateの位置Xを前後させれば、CineCameraActorの位置からとある距離にImagePlateを置くことが出来、それが2D映像の位置となる
ビューポートの解像度を1080以上に設定することも忘れずにやっておく
以上で、UE5でNDIを受信して、ImagePlateに貼ることが出来る。
[追記] NDI UnrealEngine SDKをインストールして、NDIIOのプラグインをProjectのPluginに置いてビルドする
- 最新のNDI UnrealEngine SDKインストーラーをダウンロードするhttps://ndi.video/for-developers/ndi-unreal-engine-sdk/