見出し画像

UE5でComposureプラグインを使う

いままでUE4でバーチャルスタジオ使った配信を作ってきましたが、そろそろUE5にも慣れたいなということでUE5を触ってみようと思います。

バージョンはUE5.02です。

UE5でComposureを使ってみる

もともと、今まではMediaBuldleを使っていたんですが、Composureを使っての表現も模索したいと思っていました。感覚として実写をより活かしたARっぽい表現では、Composureのほうが良さそうです。

せっかくなので慣れるためにUE5でやってみました。

UE5のドキュメントにもComposureの項目があるんですが、中身はUE4のまま。

クイックスタートを開始

下記のクイックスタートに沿って進めます。今回はVirtualProductionテンプレートを読み込んでます。細かい流れは公式ドキュメントを見ながら進めるのがオススメです。

Blankから作り始めてもよいのですが、Atmospheric FogがComposureを使う際に邪魔になるので

Atmospheric Fogがあると、光の影響でうまくレイヤリングできないの注意。
Virtual Productiontテンプレートから開始

Composureウィンドウを表示

UE5からは、Composureのウィンドウは、バーチャルプロダクションという項目にまとめられているようです。

MediaTextureの用意

予め撮影した動画でもよいのですが、今回はSDI入力まで試したかったのでMediaBundleを作りました。グリーンバックの動画でいいやという人はMediaPlayerを作成すると、一緒にMediaTextureも作れます。

メディアバンドルを作成。同時にメディアバンドルの名前の後ろにInnerAssetsというsuffixのついたフォルダが自動で作られる。
このフォルダの中にMediaTextureやMediaPlayer、マテリアルインスタンスが自動で生成されている
MediaBundleの設定。DeckLink1枚目のSDI端子1に設定。1080p 59.94fpsという、いつもの配信で使ってる設定に

MediaBundleを作ると自動でMediaTextureができるので、クイックスタートの手順通りドラッグアンドドロップなりで設定。

MediaPlayerでMP4の動画が再生されない問題

MediaTextureをテストするてっとり速い方法は、紐付けられたMediaPlayerで動画を再生する方法です。

しかしどうやらUE5.02ではMP4をそのままでは再生できないようです。その場合はプラグインから「Electra Player」にチェックを入れて再起動してみてください。詳しくは以下のリンクのページで。

上記のプラグインを有効にすることで、Media Playerで動画を再生できるようになりました。

動画を再生すると、紐づいているメディアテクスチャーが更新される。

SDI入力にカメラを接続してる場合は、作成したメディアバンドルをレベルマップの適当なところにドラッグ&ドロップすればカメラの映像がアクティブになるはずです。

カメラに写り込まないようなところにドラッグ&ドロップしておくと良いです。
メディアを再生するよう要求というボタンが選択(グレーアウト)されていると、カメラからの映像が来ているはずです。もし写っていない場合は、MediaBundleを開いてMediaSourceがちゃんと設定されているかどうか確認。解像度やフレームレートがカメラが出力する映像と合ってないと移りません。※ドロップフレームの場合、カメラ側が60fpsという表示になっていても、UE5側の設定は59.94fpsにする必要があります。

クロマキーの設定

クイックスタートの手順通り。カラーピッカーを開く。この時点では四隅の角は緑のまでOK。後ほど消します。ピッカーでクリックしまくって良い感じに抜けるところを選択。

Dispillも設定できます。Dispillに関しては「ディスピル」で検索してもらえると詳しい解説があります。グリーンバックの緑色が反射して人物などが緑がかって見えるのを緩和してくれます。

実例をあげていうと、下の画像では指先やズボンのエッジを見ると薄っすらと緑のラインが見て取れます。
さらに、もともとは白い服なのですが、薄っすらと緑がかっているのがわかるでしょうか?反射によってグリーンバックの緑が乗ってしまっています。

※照明のあたり具合や照度、壁からの距離などを調整することで緑を押さえることができますが、今回は検証のためやや雑に撮った素材を使ってます。

白い服なのに緑っぽく、エッジも緑なので目立つ。
上記の動画はGIFアニメにしています。Erodeの効果。Dispillで緑のエッジは目立たない色になったが、それでも少しだけ細いラインが残る。Erodeで人物のエッジを少し削ると軽減できるが、指などの細かい部分まで削れてしまうのでほどほどに。

四隅の角の部分に表示されてる白(元も緑だったがクロマキーで抜くと白になります)を消していきます。DevignetteOuterを1にすると四隅が消えます。

DevignetteOuterを1に設定

Cine Camera Actorの設置

カメラを設置します。UE5だと下記のアイコンからCine カメラアクタを選択します。

UE5レイアウトだとアイコンから選択。

他にも、ビューポートの、バーガーアイコン(線三本のアイコン)をクリックすると現在の表示に合わせてカメラを設置できます。これは知っておくと便利。

ここにカメラを作成を選択すると、現在の見え方でCineCameraActorを設置することができる。

CineCameraActorが、レベルマップに複数ある場合は、Composureの各CG レイヤーのInput設定から、カメラを選択することができる。Camera Sourceの設定をOverrideにするとカメラの候補が選択可能になる。

レイヤーを設定
レイヤーにアクターを追加するために、レイヤーウィンドウを表示。

アクターを選択して、アウトラインからレイヤーにドラッグ&ドロップするか追加するか、右クリックで「新規レイヤに選択したアクタを追加」。

円柱と円錐をマップに設置して、2つを選択して新規レイヤに選択したアクタを追加して、レイヤーを作成。
fg_element(手前のforeground)のCapture Actorsの設定。Inclusion TypeをIncludeにして、先程の球と円錐のレイヤーを指定すると、その2つだけがレンダリングされる。

バックグラウンドも設定。クイックスタートの日本語訳がおそらく間違っていて正確は以下の通りだと思われます。

必要な数の [Capture Actors (キャプチャ アクタ)] レイヤーをいくつでもエレメントに追加できます。[Include (含める)] と [Exclude (除外)] を混在および組み合わせることができます。 バックグラウンドのエレメントでは、 [ConeAndCylinder] レイヤー以外はすべて必要であるため、同じレイヤーを使用しますが、 [InclusionType] を [Exclude (除外)] に切り替えます。

影だけ残っちゃってるけど一旦気にしない。
bg_elementは、ConeAndCylinderを除くなので、Excludeを選択。

このあとも、公式のスクショのリンクが外れているけど、[Enable alpha channel support in post processing (ポストプロセスでアルファ チャンネル サポートを有効にする)] を [Linear color space only enable (線形色空間のみ有効)]にしていおく。

コンポジット マテリアルをセットアップする

コンポジットのマテリアルを設定していくんですが、「Transform Passes/Compositing Passes」の項目で、新規Transform Passesを追加するとデフォルトのエントリは [Custom Material Pass (カスタム マテリアル パス)]と書かれていますが、UE5ではCompositting Element Material Passでした。

Compositting Element Material PassでOK。クイックスタートの手順通りMaterialから新規マテリアルを作成。
TextureSampleParameter2Dを3つ作って、Overでつなげる。名前をれComposureのレイヤー名と同じにする。マテリアルの種類をPostProcessにする。

SDIへ出力

SDIへの出力設定をしておしまいです
カラーグレーディングも可能です。

Color ConversionはCompositing Tonemap Passを選択しているけど、いくつか選択が可能。OpenColorIOを選ぶこともできる。

複数のコンポジットを用意して、Capture Outputを同じに設定することも可能です。ただ、その場合はEnabledにチェックが自動で外れる仕組みになっているようです。

便利な機能としてプレビューウィンドウの左上のアイコン。押すと大きな別ウィンドウで表示してくれます。

大きな画面で一時的にプレビューしたい時は右上のアイコンをクリック。ちなみに左下のピンアイコンをクリックするとピン留めできます。


この記事が気に入ったらサポートをしてみませんか?