検索
Start typing to search...

AximmetryのUnrealにおけるVirtualScreen

Author:

導入

Aximmetryの動画をUnrealで表示するには、Blueprint内の Get Aximmetry Videoノードを使用し、その動画をオブジェクトの素材に適用します。

これにより、現実世界で動画を表示する画面、モニター、テレビ、デジタルバナー、またはその他の表面などの表示をレンダリングできます。

この実現方法として、3つの方法を説明します:

  • Aximmetry Virtual Screen Asset: AximmetryがUnrealに組み込んだアセットで、アンチエイリアシング(AA)効果なしで動画を表示し、クリアな動画表示を実現します。
  • 一般方法: この方法は、オブジェクトの既存のマテリアルに適用可能です。既存のアセットへの設定は簡単ですが、アンチエイリアシング(AA)効果により、動く動画でぼやけた画像が生じる可能性があります。また、この方法はアルファチャンネルを透明として表示する機能をサポートしています。
  • Media Plate Method: Unrealには、動画を再生するための特別なアクター「Media Plate」が組み込まれています。Media Plateはアンチエイリアシング(AA)から除外できます。

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

Aximmetry Virtual Screen Asset

Aximmetryバージョン2025.1.0以降、Unreal Editor for Aximmetryには、バーチャルスクリーンの作成を簡素化するアクターアセットが組み込まれています。

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

Place Actorsメニュー Place Actorsパネル

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

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

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

Virtual Screen アセットは、ビルボードと同じアンチエイリアシング(AA)除去方法を使用します。Virtual Screen の前にオブジェクトがある場合、それらのオブジェクトに対してカスタム深度書き込みを有効にする必要があります。詳細については、ビルボード前のオブジェクトドキュメントを参照してください。

プロジェクトをビルドした後、Aximmetry の Unreal モジュールに Virtual Screen のビデオピンが表示されます。次に、Aximmetry で以下の段落に記載されているとおりに動画を再生できます。

アスペクト比

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

ブループリントでFit ModeがStretchに設定されている場合、Screen Aspectは無視され、動画はテクスチャの領域に伸縮して表示されます:

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 をドラッグアンドドロップします:

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

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

ブループリントの設定

次に、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