High Quality Media Export の概要

High Quality Media Export の概要および使用方法について簡単に説明します。

Windows
MacOS
Linux

High Quality Media Export は通常使用をしてフィードバックを提供できる状態ですが、内部 API はまだ開発中のため、システムの拡張時に問題が発生する可能性があります。また、すべての レンダー ムービーの機能 (Composure、GBuffer Channels、ProRes/AvidDNxHD、XML エクスポート) が今回の High Quality Media Export に入っているわけではありません。ベータ版のリリースに向けて、機能の更新および改善、High Quality Media Export の UI の安定化を継続します。

シーケンサーのレンダー ムービーの後継機能である High-Quality Media Export は、高品質、プロダクション パイプラインへの統合、および容易なユーザー拡張を意図して作成されています。High-Quality Media Export を使用することで、複数のレンダー サンプルをまとめて蓄積して最終的な出力フレームを作成できます。そのため、質の高いアンチエイリアシング、ラジアル モーション ブラー、レイトレーシングでのノイズ削減が可能になります。

また、GPU メモリとデバイス タイムアウトの制限を受けないタイルベースのレンダリングを可能にする新しい高画像設定など、質の高いレンダリングを生み出す新機能もサポートしています。さらに、(正しいプロジェクト/シーン設定による) 透過画像のエクスポート、リニアデータでの 16 ビット HDR 画像の作成、アセットへのレンダリング設定の保存およびデベロッパー間での共有も可能になります。最後に、バッチが新しいレンダー キューで管理されるようになり、Adobe After Effects のレンダリング プロセスと同様に、複数のシーケンスを簡単にバッチ レンダリングすることが可能になりました。

具体的には、この機能は既存のレンダー ムービー機能とは異なり、それを超える利点をさまざまなアンリアル ユーザーに提供します。

  • ゲーム:モーション ブラーとテンポラル アンチエイリアシングからの少ないアーティファクトで、質の高いゲーム トレーラーの制作が可能になります。

  • 自動車:テンポラル スーパーサンプリングによる車輪用の回転モーション ブラーと、高解像度のタイリングによる大型画像の出力が可能になりました。

  • バーチャル プロダクション:高品質のアンチエイリアシングとモーション ブラーにより出力コンテンツの外見が向上します。

  • アーキテクチャ ビジュアライゼーション:空間スーパーサンプリングにより、レイトレース ノイズのほとんどない、きれいにアンチエイリアス処理された画像にします。

レンダリング後の静止画 (8K) の例クリックして拡大表示

最終的には、既存のシーケンサーのレンダー ムービー機能は High-Quality Media Export に置き換えられる予定です。

High Quality Media Export を使用する

  1. Movie Render Pipeline パイプラインを有効にします (デフォルトはオン)。

  2. [Window] > [Cinematics] から [Movie Render Queue] を選択します。キューのポップアップが表示されます。

    navigation

  3. [+Render] を選択してシーケンスをキューに追加します。シーケンスをコンテンツ ブラウザにドラッグ&ドロップすることもできます。

    add sequence

  4. [Settigns (設定)] 列でリンクを選択してレンダー用の各種オプションを調節します。完了したら [Accept] で選択内容を確定します。[Preset] として設定を保存することもできます。

    settings column and links

  5. 次に [Render] を選択します。Render (Local) を使用して現在のセッションでレンダーの実行、あるいは Render (Remote) を使ってマシン上で新しいレンダー プロセスの作成ができます。

ローカルまたはリモートでレンダリングを行う

レンダリングは、ローカルまたはリモートの 2 通りで行うことができます。Render (Local) のレンダリング プロセスは Unreal Engine と同じで、Play In Editor (PIE) に似ています。変更を保存する必要がないため、作業をしながらレンダリングをプレビューするときに便利なオプションです。

Render (Remote) は、キューのすべてのシーケンスをレンダリングする外部プロセスを起動します。リソース重視で、レンダー中はエディタのコードを実行しません。そのため、外部プロセスがディスク ファイルを読み取るようにプロジェクトを保存する必要があります。

レンダリング オプションと使用できるカスタマイズ オプションもあります。これらのオプションのデフォルトの挙動はプロジェクト設定で指定され、Render (Remote) を取り入れてサードパーティ レンダリング ファーム管理ソフトウェアを使用するなど、独自のコードを実行するために調節することができます。さらに、別のプロセスを起動するために使用したコマンドラインは出力ログに書き出し、そこから独自の自動化レンダー ファームのビルドを開始します。

UMoviePipelineExecutorBase (MoviePipelineExecutor.h) から継承することで、独自のレンダー ファームを実装することができます。スタジオ固有のニーズに合わせてレンダリング システムをカスタマイズするためにこれらのオプションに対して独自の挙動を書き始める例は MoviePipelinePIEExecutor.hMoviePipelineNewProcessExecutor.h を参照してください。

レンダリング設定を調節する

High Quality Media Export には Output Format (出力フォーマット)、Rendering (レンダリング)、Settings (設定) の 3 種類のオプションが入っており、これらを調節することができます。これらのカテゴリからオプションを追加するには、[+Setting] を選択して追加するオプションを選択します。各設定はオンオフの切り替えが可能なので削除する必要はありません。また、ニーズに合わせてサブオプションを追加することも可能です。UMoviePipelineSetting (MoviePipelineSetting.h) クラスを実装することで、カスタム設定もこのリストに追加することができます。

設定を調節する時は、Output Format とレンダリング オプションをそれぞれ最低 1 つずつ有効にしておくことを推奨します。そうでない場合、High Quality Media Export は動作し続けますが、画像やファイルを生成せず、代わりにシステム全体を実行します。何もレンダリングせずに動作する独自の設定を書く際に便利です。

adding settings

現在の設定を今後のために保存しておくには、[Presets] > [Save as Preset (プリセットとして保存)] を選択します。プリセットに名前をつけて、今後のために保存することができます。

adding a new preset

Output Format オプション

Output Format オプションで出力ファイル形式を選択することができます。レンダー ムービーとは異なり、複数のファイル形式が一度に出力され、レンダリングしたデータには依存しなくなります。

バーンイン、UI ウィジェット、最終画像など、そのフレームでレンダリングされたすべての画像を含む出力フレームにコールバックを与える UMoviePipelineOutputBase を実装すれば独自の形式を作成することもできます。

出力形式

説明

.bmp Sequence (8bit)

シーケンスは [0-1] の幅にクランプされるので HDR 値は保存されません。sRGB ガンマ補正は 8 ビット ターゲットに適用されます。

.exr Sequence (16bit)

HDR 値は保存されますが、Tone Curve を有効にすると場合、最も明るい強調のみを使ってリニア値はおよそ [0-1] の範囲に再スケールされます。Tone Curve を無効にすると、ライトとその他の明るいオブジェクトの強度に応じて [0-100] 以上の範囲でリニア値を書きます。透明な画像を作成するには、[Output Alpha] にチェックを入れて [Enable Alpha Channel Support in Post Processing] を必ず「Linear color space only」に設定します。sRGB ガンマ補正は .exr ターゲットには適用されません。

.jpg Sequence (8bit)

sRGB ガンマ補正は 8 ビット ターゲットに適用されます。

.png Sequence (8bit)

透明な画像を作成するには、[Output Alpha] にチェックを入れて [Enable Alpha Channel Support in Post Processing] を必ず「Linear color space only」に設定します。sRGB ガンマ補正は 8 ビット ターゲットに適用されます。

.wav Audio

リアルタイムでセカンド パスをレンダリングせずにオーディオのエクスポートが可能になりました。ただし、-deterministicaudio 引数でエディタを起動する必要があります。Render (Remote) を使用する場合は、この引数は省略できます (自動的に外部プロセスに適用されます)。これにより、エディタでオーディオが聞こえることを防げますが、モーション ブラーのフレームとエンジン ウォームアップのフレームの起動フレームのために過ぎる時間のために、ショット間で音が聞こえてしまうアーティファクトが生成される場合があります。

画像を透明にするためには、透過処理を適用するシーンにあるすべての不透明なもの (スカイボックス、大気フォグ) を削除または非表示にしなければなりません。

ビデオ コンテナ (ProRes や Avid DNxHD など) は現時点ではサポートされていません。

レンダリング オプション

現在、レンダリングにはディファード レンダリングと UI レンダラー (コンポジットなし) の2 通りの方法があります。

ディファード レンダリング は編集中にビューポートで見た最終画像を作り出します。現時点でサポートされている唯一のレンダリング出力です。

UI Renderer (Non-Composited) は、UMG ウィジェットのレンダリング方法を補完するために作られたオプションです。High Quality Media Export はオフスクリーン ターゲット/ビューにレンダリングするので、ビューポートに追加された UMG ウィジェットはレンダリングには含まれません。このオプションは、ウィジェットをポスト プロダクションでコンポジットされる別の .PNG または .EXR ファイルにレンダリングします。

設定オプション

設定オプションには様々なレンダリング オプションが含まれています。たとえば、Anti-aliasing (アンチエイリアシング)、Burn In (バーンイン)、Camera (カメラ)、Console Variables (コンソール変数)、Game Overrides (ゲーム オーバーライド)、High Resolution (高解像度) です。

アンチエイリアシング

アンチエイリアシングは、最終フレームの生成に使用するサンプル数を調整します。最終フレームを生成するサンプリングには、空間方向と時間方向の 2 種類があります。時間方向のサンプリングでは、カメラのシャッターが開いてサンプルを該当時間にスライスにする時間を測ります。そして、エンジン モーション ブラーを使って小さなスライスの間を補間します。時間方向の各サンプルに対して N 回レンダリングが蓄積されます (N は空間サンプル数の変数によって決定されます)。通常は単一方向のモーション ブラーによって表される時間周期が多くの小さな方向性のあるモーションブラーで表されるようになるため、回転モーション ブラーが有効になります。

空間方向と時間方向のサンプリングを組み合わせることで、アンチエイリアシングに使用される補正と同じパターンが生み出されます。つまり、動かないオブジェクトは同じアンチエイリアシングを受け取り、動くオブジェクトはぼやけるのでエイリアシングを隠すため、空間方向のサンプリングよりも時間方向のサンプリングの方が一般的には効率がよいことを意味します。

アンチエイリアシングには他にも、Override Anti-Aliasing (アンチエイリアシングのオーバーライド)、Render Warmup Count (レンダー ウォームアップ カウント)、Engine Warmup Count (エンジン ウォームアップ カウント) など注目すべきオプションがあります。

アンチエイリアシングのオーバーライド で他のアンチエイリアシング手法を選ぶことができます。None、MSAA (フォワード レンダリング)、FXAA、Temporal AA (TAA) から選択できます。

MSAA と FXAA を使ってアンチエイリアシングの結果を試すことができますが、現時点で MSAA または FXAA を使用することは推奨していません。

TAA を使って空間/時間サンプリングの結果を試すことができますが、ほとんどのケースではこの方法を推奨しません。TAA を有効にすると、アンチエイリアシング用に選択できるユニークな要素の位置数が限られます。この制限数は r.TemporalAASamples によって定義されます (デフォルトは 8)。TAA を有効にして、かつサンプル数が 8 以上の場合、[Override Anti-Aliasing] を有効にして [None] に設定して TAA を無効にすることを推奨します。

Render Warmup Count は、レンダリング開始前に時間履歴を作成するために使用するサンプル数を制御します。カメラカットまたはカメラショットが発生すると、以前のカメラ角度の出現によるゴーストを防ぐために TAA が使用した時間履歴がクリアされます。最初のフレームでアンリエイリアシングを使用するために、この履歴を再度作る必要があります。すべてのサンプルは、サンプル間でエンジンをティックせずに同時に作成されます。

Engine Warmup Count は、レンダリング開始前にエンジンを実行するためのフレーム数を示します。これらのフレームは GPU には送信されず、かなり高速で実行します。ウォームアップは通常、クロス物理、パーティクル、レンダリング開始前に正しい位置に定めるダイナミクスに時間が必要な場合に便利です。

アンチエイリアシングとモーション ブラーの例クリックして画像を拡大します。

バーンイン

デフォルト バーンインまたはカスタム バーンインを使うか指定するオプションです。独自の UGM ウィジェットを実装して、後で最終画像にコンポジットされるバーンインとして使用することができます。

カメラ

シャッターを変更してモーション ブラーの表現方法を変えるオプションです。0 はモーション ブラーなし、そして 360 はフレーム中モーション ブラーが継続することを表します。デフォルトは 180 度シャッターです。手動露光は、自動露光を切る必要がある時に、高解像度などさまざまな効果に使用されます。

コンソール変数

レンダリングを開始する時に実行するコンソール変数を追加できるオプションです。レイトレース サンプル カウントを増やす場合や、設定の負荷がエディタでのリアル タイム プレビューには高すぎる場合に便利です。それらが High Quality Media Export が使用するオフスクリーンではなくプレイヤー ビューポートとして実行されているため、すべてのコンソール コマンドが評価されるわけではありません (表示フラグなど)。

ゲーム オーバーライド

ゲーム モードとシネマティックス品質設定などの一般的なゲーム関連設定のいくつかをオーバーライドします。ゲームの標準モードがキャプチャしたくない UI 要素やロード画面を表示する場合に便利です。

高解像度

高解像度設定は、タイルベース レンダリングを使って、最大テクスチャ サイズまたは GPU のメモリ制限によって通常可能とされる大きさよりも大きい画像を作ることが可能になります。高解像度設定で、タイル数、オーバーラップ率、テクスチャ感の鮮明度バイアスを調整できます。

Tile Count (タイル数) はレンダリング中に画像を分割するタイル数です。例えば、7680x4320 出力解像度でタイル数が 4 の場合、1 タイルを 1920x1080 でレンダリングします。

タイル数の仕組みを視覚化した様子クリックして画像を拡大します。

Overlap Ratio (オーバーラップ率) は別のタイルとのオーバーラップ数を調整します。つまり、値が 0.1 だと一緒にブレンドされている画像間で 10% のオーバーラップを生じます。これは、一般的に画像の端の近くの結果が異なる被写界に特に便利です。

Texture Sharpness Bias (テクスチャの鮮明度バイアス) は、通常よりも高めの解像度のテクスチャを見つけるために、テクスチャ ミップマップにバイアスをかけます。負の数が多いほど、バイアスは高めの詳細ミップマップを選択する傾向が強くなりますが、値が高すぎると画像が荒くなります。テクスチャがすでに最高品質のミップマップを表示している場合、何も影響はありません。

現時点では、高解像度はテンポラル アンチエイリアシングとスクリーン空間エフェクトに依存する以下のレンダリング機能をサポートしていません。スクリーンスペース リフレクション、ブルームの畳み込み、レンズ フレア、高速で動くオブジェクトでのモーション ブラーなどです。

レイトレーシング

Unreal Engine は、時間的履歴に依存するノイズ除去技術を使用して、リアルタイムでのレイトレーシングを可能にします。高解像度タイリングを使用する場合、またはテンポラル アンチエイリアシングを無効にする場合、良い結果を得るために以下のコンソール変数を調節する必要があるかもしれません。

  • r.AmbientOcclusion.Denoiser.TemporalAccumulation 0

  • r.GlobalIllumination.Denoiser.TemporalAccumulation 0

  • r.Reflections.Denoiser.TemporalAccumulation 0

  • r.Shadow.Denoiser.TemporalAccumulation 0

これらの変数を 0 に設定することで、時間的履歴がなくてもノイズ除去がきれいに行えるようになります。サンプル数が多い場合 (64 以上) は、以下の Denoiser を完全に無効にすることを検討しても良いかもしれません。

  • r.AmbientOcclusion.Denoiser 0

  • r.DiffuseIndirect.Denoiser 0

  • r.Ray tracing.SkyLight.Denoiser 0

  • r.Reflections.Denoiser 0

  • r.Shadow.Denoiser 0

調整するノイズ除去設定をコンソール変数に追加すると、レンダリング中のみ適用されます。

ray tracing denoiser console variable settings

独自の出力設定を調整する

[Output Setting (出力設定)] はシーケンサーのレンダリングに関するほぼすべての設定を調整します。[File Output (ファイル出力)] 設定では、出力ディレクトリ、ファイル名フォーマット、シーケンスをレンダリングするカスタム フレームレートを選択できます。ファイル名フォーマットには、可能なフォーマット オプションとそれらの値の例が表示されるようになりました。レンダリング中にディスクに書きこむ場合、フレーム数に指定した数字を追加することで、[Frame Number Offset (フレーム数オフセット) を調整することもできます。これにより、ほとんどのソフトウェアを混乱させている、フレームのラベル付けでの負の数に関連する問題を解消することができます。ディスクに「-2, -1, 0, 1」と書くところを、[Frame Number Offset] を 100 に設定すれば「98, 99, 100, 101」と書くことができます。

[Frames] 設定はレンダー ムービーからも更新できます。N フレームごとにレンダリングする Output Frame Step (出力フレーム ステップ) を指定することもできるようになりました。飛ばされたフレームに対しても、毎フレームのレンダリング結果と N フレームごとのレンダリング結果の整合性をはかるため、ゲームはそのままティックします。画質の違いが目に見えてしまう場合もありますが (時間履歴が異なるため)、このオプションは必要であればドラフト タイプのレンダリングも可能です。

[Misc (その他)] の [Tone Curve] を無効にします。これにより、Post Processing パイプラインから送られて、通常は表示用に行われる [0-~1] 範囲への再スケールがされないリニア データを格納する .exf ファイルの出力が可能になります。

settings panel

Select Skin
Light
Dark

Welcome to the new Unreal Engine 4 Documentation site!

We're working on lots of new features including a feedback system so you can tell us how we are doing. It's not quite ready for use in the wild yet, so head over to the Documentation Feedback forum to tell us about this page or call out any issues you are encountering in the meantime.

We'll be sure to let you know when the new system is up and running.

Post Feedback