Media Plate アクタ は、ビデオを再生するシーン、画像シーケンス、および Media Framework でサポートされるアセットへの URL に追加できる、事前にビルドされたアクタです。
Media Plate アクタは以下をサポートします。
- ビデオをインポートするシンプルなプロセス
- 組み込みの Sphere (球体) および Plane (平面) メッシュ を含む、タイル処理された EXR 画像シーケンス向けに最適化されたストリーミング (DX12 以上が必要)
- メディア プレイリスト
- アセットとアクタのドラッグアンドドロップ
- シーケンサーの統合
- 視錐台カリング
Media Plate アクタを作成する
Media Plate アクタを作成する方法はいくつかあります。
次のような方法での作成が可能です。
- ビューポートに直接メディア ファイル (ビデオ ファイルかシーケンスの画像) をドラッグする。
- コンテンツ ブラウザからビューポートに メディア ソース アセット をドラッグする。
- [Place Actors (アクタの配置)] メニュー を使用する。
メディア ソースをインポートする
Media Plate は、ビデオ ファイルと画像シーケンスの両方をサポートします。使用するメディア タイプにより、Unreal Editor でそれらをインポートして関連するアセットの参照パスを示す方法は異なります。
これら両方の方法に共通するのは、Media Plate コントロール を使用して設定できる Media Plate アクタがすぐに作成されるという点です。
ビデオ ファイルをインポートする
ビデオ ファイルをインポートするには、次の手順に従います。
- コンテンツ ブラウザ を開きます。
- ビデオ ファイルを コンテンツ ブラウザ にドラッグしてドロップします。
- コンテンツ ブラウザ から ビューポート にファイルをドラッグします。これで Media Plate アクタが作成されます。
メディア シーケンスをインポートする
メディア シーケンスをインポートするには、次の手順に従います。
- コンテンツ ブラウザ で 画像メディア ソース を作成します。
- [Sequence (シーケンス)] > [Sequence Path (シーケンス パス)] で、画像を含むフォルダにパスを割り当てます。
- 任意:[Advanced (詳細設定)] > [Frame Rate Override (フレームレートのオーバーライド)] で、画像シーケンスのフレームレートを設定します。ここで何も指定しない場合、Media Plate アクタはグローバル設定のデフォルトのフレームレートを使用します。
- コンテンツ ブラウザ から ビューポート に 画像メディア ソース をドラッグします。これで Media Plate アクタが作成されます。
Media Plate の設定
Media Plate アクタの設定では、ビデオまたは画像シーケンスの表示と再生を調整できます。メディア テクスチャやメディア プレイヤーを作成する必要はありません。
Media Plate には以下の設定があります。
Mesh (メッシュ)
この設定では、[Plane]、[Sphere]、または [Custom (カスタム)] メッシュを使用するのかを選択できます。いずれかのメッシュを選択すると参照されるメッシュが自動的に表示され、そのメッシュ タイプに関連する設定を行えるようになります。
タイル処理された EXR 画像シーケンスを使用し、DX12以上のグラフィックス機能を持つ場合は、[Plane] または [Sphere] メッシュを選択することをお勧めします。これら両方の事前にビルドされたメッシュは、Media Plate アクタの最適化されたストリーミングを使用するため、カメラに映るタイルのみがストリーミングされます。一方 [Custom] メッシュは、カメラに映るかどうかにかかわらず、すべてのタイルをストリーミングします。メディアを EXR 形式に変換したい場合は、Process EXR ツール を使用できます。
Playlist (プレイリスト)
ビデオか画像シーケンスを追加すると、Unreal Editor は自動的に メディア プレイリスト を作成してビデオ アセットの参照を保持し、[Media Playlist (メディア プレイリスト)] セクションに表示します。このセクションには、内部のメディア ソースへの参照とメディア パスも表示されます。
このセクションには、プレイリストを 再開する、巻き戻す、再生する、一時停止する、早送りする、開く、閉じる のに使用できる、クリック可能なアイコンも含まれています。
[Open Media Plate (Media Plate を開く)] ボタンを使用すると、平面のメッシュを含む Media Plate ウィンドウが開き、メディアの詳細情報が表示されます。このウィンドウでは、[Previous (前へ)] アイコンと [Next (次へ)] アイコンを使用してプレイリストの他のメディアにアクセスすることも可能です。
General Settings (一般設定)
プロパティ | 説明 |
---|---|
Media Details (メディア詳細) | これを展開すると、メディアの解像度、フレームレート、サイズ、メソッド、形式、詳細度バイアスの組み合わせ、ミップとタイルの数の詳細が表示されます。 |
Play on Open (開いたときに再生) | ビデオまたは画像を開いたときに自動的に再生が開始されるようにします。 |
Auto Play (自動再生) | ゲームモードに入ると、ビデオまたは画像シーケンスを自動的に開きます。 |
Enable Audio (オーディオを有効化) | オーディオ トラックがある場合、この設定によってアクティブなビデオ デコード エンジンのオーディオが有効になります。 |
Start time (起動時間) | これを使用してカスタムの起動時間を設定できます。これにより、同じソース ビデオを使用するさまざまな Media Plate アクタを別の時間に起動することが可能になります。そうすると、レベルの複数のインスタンスでループ可能な同じクリップを使用し、毎回表示を変えることができます。 |
Play Only when Visible (表示されているときにのみ再生) | アクタが錐台の範囲外になるとビデオのデコードとストリーミングがすべて停止するよう、Media Plate アクタに錐台カリングを適用します。 これは通常、nDisplay のようなクラスタ化されたレンダリングを含む大規模インストールで役に立ちます。リソースを大量に消費する大きい Media Plate を複数使用している場合に特に有用です。 |
Loop (ループ) | 最終フレームに到達したらビデオを自動的にループします。 |
Advanced Settings (詳細設定)
プロパティ | 説明 |
---|---|
Sound Component (サウンド コンポーネント) | 使用しているサウンド コンポーネントの詳細が含まれています。 |
Static Mesh Component (スタティックメッシュ コンポーネント) | 使用しているメッシュ コンポーネントの詳細とプロパティが含まれています。 |
Letterboxes (レターボックス) | 使用しているレターボックスの詳細が含まれています。 |
Cache Settings (キャッシュ設定) | [Override (オーバーライド)] を有効にすると、Media Plate のキャッシュ設定によってグローバル キャッシュ設定がオーバーライドされます。この設定はデフォルトで有効になっています。[Time to Look Ahead (先読みする時間)] は秒で示されます。キャッシュを適切に行うには、2 ~ 4 フレームにすることをお勧めします。24fps では、2 フレームで 0.084 秒になります。デフォルト値は 0.2 秒です。 タイルのキャッシュでは、バランスを調整する必要があります。キャッシュするフレームが増えると、カメラが移動するときに無効にしてリロードしなければならないフレームが多くなります。 |
Visible Mips Tiles Calculations (表示可能なミップとタイルの計算) | デフォルトでは、この設定は選択したスタティックメッシュと一致します。Plane か Sphere を使用したいが、Media Plate でカメラに映るピクセルだけをストリーミングすることは望ましくない場合は、これを [None (なし)] に設定できます。 これはデバッグで役に立つことがありますが、プロダクションでは使用しないことをお勧めします。 |
Mip Map Bias (ミップ マップ バイアス) | シーケンスがタイルとミップに分けられていたとしても、帯域幅が原因となって PC で特定の EXR シーケンスを再生できないことがあります。この設定を使用すれば、より高いミップ (低解像度) をロードするために何らかの形で Media Plate アクタにヒントを与えることができ、入出力の帯域幅が抑えられます。 推定ミップ レベルはデフォルトでレンダラと一致しており、FOV/解像度に依存します。 |
Transform Settings (トランスフォーム設定)
[Transform (トランスフォーム)] セクション では、Media Plate アクタの位置、スケール、向きを調整できます。これらの設定の詳細については、「Unreal Engine でアクタをトランスフォームする」を参照してください。
Materials (マテリアル)
[Materials] セクションでは、別のマテリアルを選択して既存のデフォルトの Media Plate マテリアルをオーバーライドできます。デフォルトは、エミッシブ チャンネルでピクセルをレンダリングする、ライティングなしの透過マテリアルです。このマテリアルは、Media Plate プラグイン コンテンツ ディレクトリ 内でバンドルされます。
デフォルトかカスタムのマテリアルを Media Plate アクタの [Materials] セクション内にドラッグできます。
Media Plate アクタは、メディア テクスチャ と呼ばれる 特殊なテクスチャ パラメータ を探します。このパラメータは、ビデオ デコーダのメディア テクスチャから受け取ったピクセルをバインドしてそれらにアクセスできるよう、選択したマテリアルに含める必要があります。
Media Plate のデフォルトのマテリアルは次のとおりです。
2D 平面の場合
マテリアル名 | 説明 |
---|---|
M_MediaPlate | 透過マテリアルです。これはデフォルトで選択されています。 透過マテリアルを変更すると、TSR ゴースト アーティファクトが発生する可能性があります。 |
M_MediaPlateCC | 色補正マテリアルです。 |
空の場合
マテリアル名 | 説明 |
---|---|
M_Sky | 不透明で IsSky ブールが有効になっています。 |
M_SkyCC | 空の色補正マテリアルです。 |
シーケンサーの統合
シーケンサー の統合は、ビデオまたは画像シーケンス クリップを開始、終了、ループするタイミングを正確に制御するうえで重要です。また、シーケンサーを統合してすべてのクリップを正確なシーケンサー時間にフレームロックすることにより、全体的なレベルのアニメーションとロジックでシーケンスをきめ細かく制御できます。
Media Plate アクタをシーケンサーに追加するには、次の手順に従います。
- ワールド アウトライナー 内から アクタ をドラッグし、シーケンサー トラック にドロップします。
シーケンサーで適切に同期されるように、Media Plate コントロールでオーディオを無効にする ([General Settings] で [Enable Audio (オーディオを有効化)] をオフにする) か、Electra Media Player を使用して手動で作成したブループリントを無効にする必要があります。
留意事項と制限事項
Media Plate アクタを使用するときは、次の留意事項と制限事項に注意してください。
- メディア プレイヤー:同期をサポートしているプレイヤーは、Electra と ImgMedia のみです。デフォルトでは、エンジンは最初に見つけたプレイヤーを選択します。再生を確実に同期するには、[FileMediaSource] > [Player Overrides (プレイヤーのオーバーライド)] > [Windows] > [Electra player (ElectraPlayer) (Electra プレイヤー (ElectraPlayer))] で Electra を選択することにより、手動で Electra をプレイヤーに設定します。
- ゲンロック:クラスタ化されたセットアップを使用しており、画像再生フレームの精度を最適化したい場合は、ロック解除されたカスタム時間ステップを使用するか、[Genlock (ゲンロック)] > [Custom Time Step (カスタム時間ステップ)] > [Genlocked Fixed Rate (ゲンロックされた固定レート)] を選択する必要があります。固定レートのデルタタイムで常に時間を増分したい場合は、[Force Single Frame Delta Time (単一フレームのデルタタイムを適用)] を選択します。
- リアルタイムのスカイライトと反射:リアルタイムのスカイライトと反射に寄与するためにビューポイントの外側でミップとタイルを使用したい場合は、[anchor link upscalehigherlevelmip] コンソール変数を使用する必要があります。
便利なコンソール変数
-
ImgMedia.FieldOfViewMultiplier: (
ImgMedia.FieldOfViewMultiplier=1
)Media Plate は、現在のビューで表示可能なタイルのみをロードするため、高速パン ショットによってエッジ周辺のタイルが一時的に消えることがあります。このコンソール変数を使用すれば、ビューのエッジ周辺にロードされるタイルの数を増やすことができます。
-
ImgMedia.MipMapLevelPadding: (
ImgMedia.MipMapLevelPadding=0
)ミップマップの推定が十分な精度でレンダラと一致しない場合は、計算された最小および最大ミップマップ レベルにこの値が追加されます。これによってロードされるタイルの数は増えますが、例外的な条件下でのアーティファクトの発生を抑えることができます。
-
Concert.EnableLoopingOnPlayer: (
Concert.EnableLoopingOnPlayer=1
) (Default)デフォルトでは、シーケンサー プレイヤーでループが有効になっていると、Multi-User Sequence Manager によってメディアの再生が確実にループされます。5.1 より前の Multi-User では、nDisplay シーケンス プレイヤーでループが有効にならず、ループはシーケンサーによる再生ヘッドのリセットで処理されます。これにより、再生ヘッドと ICVFX ウォールのコンテンツの同期状態を維持できます。エディタと nDisplay クラスタ間で再生ヘッドを同期させたい場合は、この値を 0 に設定します。
-
r.EXRReaderGPU.UpscaleHigherLevelMip: (
r.EXRReaderGPU.UpscaleHigherLevelMip=-1
)Media Plate は通常、ビューポートに必要な品質のミップとタイルのみをロードします。ただし反射やスカイライトなどでは、ライティングや反射に寄与させるために、データが入っていない EXR テクスチャのエリア用として、質の低いタイルをビューポートの外側にロードしなければならないことがあります。
たとえば、このコンソール変数をミップ レベル 3 に設定すると、ミップ レベル 3 が完全に読み込まれてロードされ、ミップ 0、1、2 にアップスケールされます。(4、5、6 など) 3 以上のミップ レベルはテクスチャに完全に読み込まれます。レコーディング時には、カメラに映るエリアに適切な品質のミップが含められますが、アクティブ ビューで直接表示できないエリアには質の低いミップが含められます。
デバッグ
Media Plate アクタのデバッグには、次の Stat コマンドを使用できます。
- Stat Media:現在再生中のメディアの情報を表示します。
- ImgMedia.MipMapDebug 1:ゲーム モードの画面に表示可能なタイルとミップのデバッグに関する情報を出力します。
.exr
メディア形式のファイルでのみ使用できます。 - Log LogImgMedia Verbose:ImgMedia に固有の詳細なログ データを取得できるようにします。