検索
Start typing to search...

AximmetryのUnrealにおけるVirtualScreen

Author: Aximmetry

はじめに

Unrealシーン内でAximmetryからの動画を表示するには、AX Scene EditorのGet Aximmetry Videoノードをブループリントで使用し、オブジェクトのマテリアルに動画を適用します。

Aximmetryの動画は様々な方法で作成できます。例えば、静止画、動画ファイル、デバイスからのライブ映像入力、複雑な3DシーンからAximmetryがレンダリングしたグラフィックス、さらにはインフォグラフィックなどです。

これにより、スクリーン、モニター、テレビ、デジタルバナー、あるいは現実世界で動画を表示するあらゆる表面などのディスプレイをレンダリングできます。

これを実現する3つの方法について説明します:

  • Aximmetry 仮想スクリーンアセット:AximmetryがAX Scene Editorに組み込んだアセットで、アンチエイリアシング(AA)効果なしに動画を表示し、クリアな映像を実現します。逆トーンマップと輝度プロパティにより、仮想スクリーンは動画プレイヤーソフトウェアで表示される色に極めて近い色を仮想世界で再現します。
  • 汎用手法: オブジェクトの既存マテリアルに適用可能な手法です。既存アセットへの設定は容易ですが、アンチエイリアシング(AA)効果により動画再生時に画像がぼやける場合があります。また、この手法ではアルファチャンネルを透過表示としてサポートします。
  • メディアプレート手法: Unreal(およびAX Scene Editor)には、動画再生専用のアクター「メディアプレート」が用意されています。メディアプレートはアンチエイリアシング(AA)の対象外に設定可能です。

次に、Aximmetryからこれらの仮想スクリーンへの再生方法について説明します。

Aximmetry 仮想スクリーンアセット

AX Scene Editorには、仮想スクリーンの作成を簡素化するアクターアセットが含まれています。

Aximmetryの仮想スクリーンアセットは、[Place Actors]メニューまたはパネルから追加できます:

Place Actorsメニュー Place Actorsパネル

仮想スクリーンアセットをシーンに追加したら、レベルブループリントを開きます:

アウトライナーパネルから仮想スクリーンアセットをレベルブループリントにドラッグアンドドロップします。

次に、Set TextureノードとGet Aximmetry Videoノードを使用して動画を設定します:

バーチャルスクリーンアセットは、グリーンスクリーンカメラのビルボードと同じアンチエイリアシング(AA)除去方法を使用します。

重要: ビルボードと同様に、バーチャルスクリーンの前に表示されるオブジェクトはすべて、カスタム深度書き込みを有効にする必要があります。これにより、バーチャルスクリーンがオブジェクトの背後に正しくレンダリングされます。この設定の有効化に関する詳細は、ビルボードの前にあるオブジェクトのドキュメントを参照してください。

この設定後、プロジェクトをクックすると、AximmetryのUnreal Projectモジュールにバーチャルスクリーンのビデオピンが表示されます。その後、Aximmetryで下記のAximmetryからの再生段落に記載されている方法でビデオを再生できます。

アスペクト比とフィットモード

使用する動画のアスペクト比に合わせてScreen Aspectパラメータを設定します。例えば、解像度1920 x 1080の動画の場合、アスペクト比は1920/1080 = 1.777778となります。

通常、このアスペクト比に合わせてアクターのスケールを変更するか、同じアスペクト比を反映した寸法を持つメッシュを使用する必要があります。アクターのスケールやメッシュの寸法が動画のアスペクト比と一致しない場合(例えば、モデルのテクスチャアスペクト比が動画と異なる場合)、フィットモードプロパティを使用してテクスチャがアクターにマッピングされる方法を制御できます。

逆トーンマップと輝度

逆トーンマップは、仮想スクリーン上のトーンマッパー(ポストプロセス)の効果を打ち消すために使用されます。このパラメータは、Aximmetryにおけるビルボードの逆トーンマップパラメータと同一の機能を持ちます。

注記:逆トーンマップは現在、ARカメラやHDRレンダリングではサポートされていません。

自動輝度および輝度プロパティは画面の明るさを制御します:

  • 自動輝度が有効(デフォルト)の場合、画面の明るさは露出の影響を受けません。これにより、自動露出や露出補正を使用するシーンで画面が暗すぎたり明るすぎたりするのを防ぎます。
  • 自動輝度が無効の場合、輝度パラメータを使用して画面の明るさを手動で調整します。

Screen Mesh

バーチャルスクリーンアクターで、Screen MeshパラメーターからメッシュをPlaneから他のメッシュに変更できます:

一般的な方法

この例では、表示用にマテリアルを作成します。ただし、既存のマテリアルにもこの方法を使用できます。

この方法は、[Tutorials]:Unreal\Basic_Virtual_Screen.xcomp コンパウンドでも示されています。

マテリアルの作成

このマテリアルは、平面上のダイナミックマテリアルのベースとして機能します。

マテリアルに関する詳細情報は、Unreal Engine マテリアル ドキュメントを参照してください。

新しいマテリアルを作成するには、コンテンツブラウザで右クリックし、[Create Basic Asset / Material] を選択します:

私たちはこれを 『VirtualDisplay』 と名付けました。

コンテンツブラウザでこのマテリアルをダブルクリックして開きます。

新しいウィンドウの左側の詳細パネルで、マテリアルの Shading Model を Unlit に変更します:

NOTE: この設定は、現実の光を発する画面を模倣するために行います。

マテリアルグラフの右クリックメニューからTexture / TextureSampleParameter2Dノードを追加します。このパラメーター名は任意で構いませんが、後で作成するブループリントで正確な名前を使用する必要があります。私たちは「DisplayTexture」と名付けました:

テクスチャパラメーターのRGB出力をマテリアルのEmissive Color入力に接続します:

マテリアルを保存します。

NOTE: このマテリアルはさらにカスタマイズしてさまざまな効果を実現できますが、その詳細は本ドキュメントの範囲外です。

マテリアルをオブジェクトに適用する

次に、動画を表示するオブジェクトにマテリアルを適用します。例えば、コンテンツブラウザからマテリアルをドラッグアンドドロップして、アクターのMaterialsフィールドに配置します。今回はシンプルな平面アクターオブジェクトを使用しました。

ビデオはオブジェクトを自動的にリサイズしません。オブジェクトとビデオの寸法が一致していることを確認してください。

例えば、1:1の平面と1920x1080の解像度を持つビデオの場合、トランスフォームのスケールを1.92×1.08にリサイズできます:

ブループリントの設定

次に、Aximmetryからオブジェクトと動画を Level Blueprintに統合します。

アウトライナーからターゲットオブジェクトをドラッグしてLevel Blueprintに配置し、 ここのように参照を作成します。

Event BeginPlay、Create Dynamic Material Instance、Set Material、Event Tick、Get Aximmetry Video、およびSet Texture Parameter Valueノードを追加し接続します。

「Set Texture Parameter Value」ノードは、 コンテキスト依存検索がオフになっている場合のみ検索可能です。

同じ名前の「Create Dynamic Material Instance」ノードが2つあります。ターゲットが「Kismet Material Library」になっている2つ目のノードを選択します。

「Set Material」ノードがプリミティブ コンポーネントをターゲットにしていることを確認してください。ボリューム タイプではありません。これは、レンダリング / マテリアル グループ内のインデントで区別されます。

以下のノードピンを設定します:

  • Create Dynamic Material Instance - Parent ピン:最初のステップで作成したマテリアルを選択します。
  • Get Aximmetry Video - Name ピン:これはAximmetry内のビデオ入力ピンの名前になります。
  • Set Texture Parameter Value - Parameter Name ピン:これは、最初のステップで作成したマテリアルのTextureSampleParameter2Dパラメーターの名前と完全に一致する必要があります。

NOTE: Set Materialノードは、ターゲットピンにスタティックメッシュコンポーネントが必要です。アクターを直接接続する場合、Unrealは必要なスタティックメッシュコンポーネント変換ノードを自動的に生成します:

上記のノードをUnrealのブループリントエディターにコピーアンドペーストするには、このボックスをクリックし、CTRL + Aで全テキストを選択し、CTRL + Cでコピーし、UnrealのブループリントでCTRL + Vで貼り付けます。

NOTE: シェーダーの数値計算に Get Aximmetry Video を使用する場合、S RGB オプションを無効にする必要があります。詳細はこちら here.

その後、以下の Playback from Aximmetry 段落に従って、Aximmetry から動画を再生できます。

Media Plate メソッド

Media Plate メソッドは、アンチエイリアシング(AA)から Media Plates を除外することで、動く動画でよりクリアな画像を提供できます。

これは、Unreal Engine 5.5 で導入された「Holdout Composite」技術を使用して実現されます。

注意:Holdout Composite 技術は、アルファチャンネルを透明として表示する機能をサポートしていません。

Media Plate Actor

まず、Media Plate アクターが必要です。Place Actors パネル(Window > Place Actors から開けます)から Media Plate をドラッグアンドドロップします:


Place Actors menu Place Actors panel
 (Window > Place Actors)

Holdout Composite テクニックを使用するには、アウトライナーパネルでメディアプレートアクターを右クリックし、Apply Holdout Compositeオプションを選択します:

メディアプレートに関する詳細情報は、Unrealのドキュメントを参照してください: The Media Plate Actor

このオプションを有効にすると、Unrealは追加アセットの適用とUnreal Editor/AX Scene Editorの再起動を促します。

メディアプレートに関する詳細は、Unrealのドキュメント(メディアプレートアクター)を参照してください。


ブループリントの設定

次に、Aximmetryからメディアプレートオブジェクトと動画を Level Blueprintに統合します。

メディアプレートのマテリアルを使用する必要があります。Unreal Engineのフォルダー内でマテリアルを探すには、アウトライナーパネルでメディアプレートアクターを選択し、詳細パネルの「Browse To Material」ボタンをクリックします:

この操作により、コンテンツブラウザがメディアプレートのマテリアルを含むフォルダーに移動します。ここから、M_MediaPlate_Opaqueマテリアルをブループリントの「Create Dynamic Material Instance」ノードの「Parent」ピンにドラッグアンドドロップします。さらに、アウトライナーパネルからMedia Plateアクターをブループリントにドラッグして参照を作成します。

上記のノードをUnrealのブループリントエディターにコピーして貼り付けるには、このボックスをクリックし、CTRL + Aで全テキストを選択し、CTRL + Cでコピーします。次に、UnrealブループリントでCTRL + Vで貼り付けます。

ブループリントノードを作成する際、同じ名前の「Create Dynamic Material Instance」ノードが2つあります。ターゲットが「Kismet Material Library」になっている2つ目のノードを選択してください。

「Set Material」ノードは、Primitiveコンポーネントをターゲットにしているものを選択し、Volumetricコンポーネントをターゲットにしているものは選択しないでください。

「Set Texture Parameter Value」ノードは、Context Sensitive検索がオフになっている場合のみ検索可能です。

以下のノードのピン設定は、上記のスクリーンショットと同じように設定してください:

  • Get Aximmetry Video - Name ピン:これは Aximmetry でのビデオ入力ピンの名前になります。
  • Set Texture Parameter Value - Parameter Name ピン:MediaTexture

アスペクト比

メディア プレートのアスペクト比は、Unreal でビデオを定義する際に Media Path を指定するか、Aspect Ratio パラメーターを設定することで定義できます:

Aximmetryからの再生

Aximmetryのビデオピンを活用するには、コントロールボードにビデオボタンを作成するなどの方法があります。

このようなボタンが実装された関連コンパウンドは、[Common_Studio]:Compounds\Overlays\Overlays_Vid_Ins_Logo_Crawl_Green.xcompにあります。

ビデオボタンを使用すると、異なるビデオの管理と切り替えが簡単になります:

記事内容

Loading
Close
Loading spinner icon
1/10