アンチエイリアス とは、エッジやオブジェクトで本来滑らかなラインがジャギー (ピクセルのギザギザが見える状態) になっているところを取り除く処理です。このようなビジュアル アーティファクトを削除するために使用するアンチエイリアスに異なる方法があります。特定のレンダラやプラットフォームで使用できるように開発されたものもあれば、パフォーマンスと忠実度を改善するために優れたものもあります。


アンチエイリアスのメソッド
アンチエイリアスの多様な手法が開発されています。Unreal Engine では複数のメソッドを実装しており、プロジェクトのニーズと要件に応じて選択できます。デスクトップ/コンソール向けとモバイル プラットフォーム向けにアンチエイリアス メソッドから選択できます。
Unreal Engine では、プロジェクト用に次のアンチエイリアス メソッドが提供されています。
アンチエイリアス メソッド | デスクトップ/コンソール:ディファード レンダラ | デスクトップ/コンソール:フォワード レンダラ | モバイル:ディファード レンダラ | モバイル:フォワード レンダラ |
---|---|---|---|---|
テンポラル スーパー解像度 (TSR) | あり | あり | なし | なし |
テンポラル アンチエイリアシング アップサンプリング (TAAU) | あり | あり | あり | なし |
高速近似アンチエイリアシング (FXAA) | あり | あり | あり | なし |
マルチサンプル アンチエイリアス (MSAA) | なし | あり | なし | あり |
下の画像スライダを使用して、アンチエイリアスなしと利用可能なアンチエイリアス メソッドを切り替えて、それぞれの結果を比較できます。これらは静的なシーンを示す単一フレームのキャプチャです。アンチエイリアスの最もクリアな結果を確認するには、異なるタイプのアセットとマテリアルをシーンに配置し、自由に動かしてテストします。
画像シーケンス AA なし、TSR、TAA、FAA、MSAA





スライダを動かして、アンチエイリアスなし、TSR、TAA、FAA、MSAA (フォワード レンダラ) それぞれでのシーンを確認します。
アンチエイリアス スケーラビリティ設定
アンチエイリアス設定にはそれぞれ独自のスケーラビリティ グループが [Engine Scalability Settings (エンジンの拡張機能設定)] にあり、各手法のアンチエイリアス品質に関する直接の GPU 負荷をスケーリングできます。スケーラビリティ グループは各アンチエイリアス メソッドのコンソール変数をコントロールします。
アンチエイリアス のスケーラビリティ設定にアクセスするには、[Settings (設定)] ドロップダウン メニューの [Engine Scalability Settings] を使用できます。

品質をコントロールするのに、[Low (低)] から [Cinematic (シネマティック)] のオプションを選択する、またはエディタでシステムをテストし、最適なオプションを選択する場合は、[Auto (自動)] を使用できます。他に、特定機能 (アンチエイリアスやシャドウなど) の品質を調整できます。

[Engine Scalability Settings] の各エントリは「DefaultScalability.ini」ファイルにある設定可能なコンソール変数のセットに対応します。希望する品質設定に基づいてプロジェクトに最適になるようにこれらを編集できます。
コンソール変数のセットアップと設定の詳細については、「スケーラビリティ設定」を参照してください。これは高度なワークフローです。
アンチエイリアス メソッドを選択
[Project Settings (プロジェクト設定)] をメイン メニューの [Window (ウィンドウ)] から開きます[Project Settings] ウィンドウの [Engine (エンジン)] > [Rendering (レンダリング)] にアンチエイリアス設定があります。
デスクトップ / コンソール プラットフォームでは、アンチエイリアス設定は [Default Settings (デフォルト設定)] セクションにあります。

モバイル プラットフォームでは、アンチエイリアス設定は [Mobile (モバイル)] セクションにあります。

テンポラル スーパー解像度
テンポラル スーパー解像度 (TSR) とはプラットフォームに依存しないテンポラルのアップスケール処理です。このアルゴリズムでは、GPU フレーム負荷全体を削減するために、フレームの GPU サイクルをテンポラル アップスケールによる品質を改善するために主に使用します。非常に低い内部解像度をレンダリングすることで実現し、Unreal Engine 4 のテンポラル アンチエイリアシング アップサンプリングよりも低くなっています。
TSR はネイティブの高品質アップサンプリング手法を採用し、Nanite マイクロポリゴン ジオメトリで可能な詳細度と忠実度のレベルは次世代ゲームの要求を満たすものです。
次の比較画像は、ネイティブの 4K でレンダリングされたフレームと、1080p の解像度を 4K にアップスケールしたフレームをキャプチャして、品質とパフォーマンスの違いを示したものです。TSR により、GPU フレーム時間を半分近くに削減しながら、ネイティブ 4K 解像度に近い品質の画像を実現しています。


ネイティブ 4K 解像度でレンダリングされた 4K フレーム | フレーム時間:57.50 ミリ秒 / 1080p 解像度でレンダリングされた 4K フレーム (r.ScreenPercentage=50) | フレーム時間:33.37 ミリ秒
この比較画像では 4K 画像がページ幅に制限されています。圧縮されていない完全な解像度を確認するには、対象を右クリックして、コンピュータに保存し、新しいブラウザ ウィンドウで開きます。
テンポラル スーパー解像度には次の特性があります。
- 1080p という低い入力解像度でネイティブ 4K レンダリングの品質に近いフレームをレンダリングできます。
- 高周波の (詳細な) 背景に対する「ゴースト」アーティファクトが、Unreal Engine 4 のデフォルト テンポラル アンチエイリアシング メソッドで表示されていたものよりも少なくなります。
- 複雑度の高いジオメトリでのちらつきが減少しました。
- 各コンソール プラットフォームでの 動的解像度 スケーリングがサポートされます。
- D3D11、D3D12、Vulkan、Metal、PlayStation 5、Xbox Series S | X をサポートするあらゆるハードウェアで実行できます。
- シェーダーは、特に PlayStation 5 と Xbox Series S | X の GPU アーキテクチャに向けて最適化されています。
レンダリング チェーンでは、TSR は被写界深度 (DOF) の後で処理され、その後ではすべてがアップスケールされています。

GPU 負荷スケーラビリティ
サポート対象プラットフォームでテンポラル スーパー解像度を使用できますが、プロジェクトのニーズに基づいて、各プラットフォームのアップスケール設定をカスタマイズする必要があります。
プロジェクトで TSR を試し、適切にスケーリングする方法の詳細については、次の各セクションを確認してください。
コンソール変数
[Engine Scalability Settings] で、すべてのプラットフォームに対する TSR の品質をスケーリングします。Low から Cinematic の事前定義スケーラビリティ グループを使用します。各グループは、アンチエイリアスに影響があるコンソール変数のセットにより、定義されます。
「DefaultScalability.ini」を編集して、対象プロジェクトに合わせてスケーラビリティを設定できます。異なるスケーラビリティ品質グループを利用して、各コンソール変数を編集、追加、削除できます。コンソールを開き、r.TSR
を検索すると、設定可能な TSR コンソール変数をエディタで確認できます。
プロジェクトを調整する場合の例として、TSR に空間アンチエイリアス アルゴリズムがあります。これは現在のフレームに誤差が入る可能性がある、古いデータを回避するために履歴データを除外する必要がある場合は常に使用されます。高解像度または高いフレームレートでレンダリングする必要があるゲーム プロジェクトでは、見えるエイリアシングは拒否対象にならないため、このオプションは必要ありません。
TSR の履歴データの拒否はコンソール コマンド r.TSR.RejectionAntiAliasingQuality
を使用してコントロールされます。
GPU 統計情報
TSR の主な目標は、アップスケールです。GPU 処理の大半は、指定された解像度に基づいてスケーリングされます。
コンソールに「stat GPU
」を入力して、GPU 統計表示を開きます。この統計表示を開いて、プライマリ スクリーン比率を調整し、パフォーマンスの差分を確認できます。古代の谷 サンプル プロジェクトで 100% と 50% のスクリーン比率でレンダリングした例を以下に示します。
~0.79 ミリ秒 (r.ScreenPercentage=100) | ~0.43 ミリ秒 (r.ScreenPercentage=50) |
クリックしてフルサイズ表示。 | クリックしてフルサイズ表示。 |
シネマティック TSR
テンポラル スーパー解像度には シネマティック スケーラビリティ オプションがあり、TSR の履歴スクリーン比率が「200」に設定されているときの出力解像度のおよそ 2 倍に解像度が設定されます。
テクスチャの自動化ビュー ミップ バイアス
スクリーン比率により、ジオメトリは低いピクセル密度でレンダリングされます。つまりテンポラル アップサンプルでは、出力で同じシャープネスを維持するために、サーフェス と ディファード デカール のマテリアル ドメインから、より多くのテクスチャ情報を取得する必要があります。
Texture Sample ノードを マテリアル グラフ で選択すると、[Details] パネルで、[Automatic View Mip Bias (自動化ビューミップバイアス)] を有効にできます。これにより、テンポラル アンチエイリアシング メソッド (TSR や TAAU など) による出力がシャープになるようにビューごとのミップ バイアス処理でテクスチャをサンプリングします。

自動化ビュー ミップ バイアスは、低いプライマリ スクリーン比率で結合するとき、シャープな細部が失われるため、小さな、つまり高周波細部を多く含むテクスチャで問題が発生することがあります。補正するために、[Details] パネルで [MipValueMode (ミップ値モード)] を「MipBias」に設定し、なんらかの値を Texture Sample の Bias 入力に適用する、または [Const Mip Value (ミップ値定数)] に適用することができます。あるいは、[Automatic View Mip Bias] を完全にオフにする方法もあります。

自動化ビュー ミップ バイアスは TAAU または TSR が有効であるときにのみ処理されます。他のアンチエイリアス メソッド (MSAA や FXAA など) はこの設定を使用しません。
TSR の後のポスト プロセス マテリアル
ポスト プロセス マテリアルは、使用する場所から [Blendable Location (ブレンド可能な位置)] を選択する必要があります。[After Tonemapping (トーンマッピング後)] オプションでは、レンダリング チェーンで TSR の後で トーンマッパの置換 が処理されます。つまり、フルの解像度で処理され、これはビュー サイズと異なります。

View Property (表示プロパティ) 式には、View Size (ビュー サイズ) と Render Target Size (レンダー ターゲット サイズ) 用のオプションがあり、パイプラインの TSR 処理の前にビューの解像度を返します。ただし実際には TSR の後に処理されます。TSR 後にビュー サイズとテクセル UV サイズを知るためには、PostProcessInput0 の Scene Texture (シーン テクスチャ) 式で Size と InvSize の出力を使用します。

ビューポート UV をピクセル位置から再計算する場合は、次のサンプルのとおり、SceneTexture:PostProcessInput0 を ScreenPosition で乗算します。

テンポラル アップスケーリングの見えない GPU 負荷の増加
テンポラル スーパー解像度と他のテンポラル アップスケールは、レンダラのポストプロセス チェーンの真ん中で処理されます。つまり、モーション ブラーやトーンマッパなどのパスは、TSR の後に実行され、プライマリ スクリーン比率でスケーリングされなくなります。空間アップスケール処理があるセカンダリ スクリーン比率がない場合、プライマリ スクリーン比率では、レンダリング解像度ではなく、表示解像度そのままで実行されます。
TSR がデフォルトで有効になっているため、TSR の後に処理される、パスにおける見えないテンポラル アップスケール負荷の削減に多くの作業が向けられます。
モーション ブラー
モーション ブラーの最適化では、低い解像度のテレビでも、常に 2160p バックバッファで表示される、PlayStation 5 と Xbox Series X プラットフォームで、モーション ブラー GPU パフォーマンス負荷が 3 倍改善されています。
stat gpu
を使用したときに TSR の負荷が増加:- モーション ブラーの有効/無効を比較するとき
stat gpu
を使用すると、TSR の負荷が少し増加することがあります。 - モーション ブラーが有効であるとき、TSR は、一般に入力解像度で実行される Velocity Flatten (ベロシティ平坦化) パスを引き継ぎます。このオプションは、コンソール コマンド
r.MotionBlur.AllowExternalVelocityFlatten
でコントロールされ、デフォルトで有効になっています。 - TSR は半分の解像度でシーン カラーを出力し、大規模な指向性ブラー カーネルが発生することがあるメモリ帯域幅のボトルネックを削減します。このオプションは、コンソール コマンド
r.MotionBlur.HalfResInput
でコントロールされ、デフォルトで有効になっています。
- モーション ブラーの有効/無効を比較するとき
- 指向性ブラーでの半分の解像度:
- 表示解像度での指向性ブラー処理は、大規模な動きでは解像度が自動で半分になります。この機能を有効にすると、モーション ブラーの VALU 負荷を削減します。
- コンソール コマンド
r.MotionBlur.HalfResGather 1
でこの最適化を有効にします。
- モーション ブラーの半分および 1/4 の解像度:
- モーション ブラーを半分または 1/4 の解像度で出力できます。これは、すべてのモーションブラーの後に実行されるガウスおよびコンボリューション ブルーム、レンズフレア、明暗順応 (自動露出)、ローカル露出に対して重要です。
対応プラットフォーム
テンポラル スーパー解像度は、シェーダー モデル 5 をサポートする、あらゆるデスクトップ ハードウェアのデスクトップ レンダラで使用できます。テンポラル スーパー解像度は次のプラットフォームでサポートされています。
- Windows D3D11 SM5、D3D12 SM5、D3D12 SM6 および Vulkan SM5
- Linux Vulkan SM5
- Mac Metal SM5
- PlayStation 5 と Xbox Series S | X
TSR のアップスケール品質と動作はすべての対応プラットフォームでまったく変わりません。ただし、TSR は PlayStation 5 と Xbox Series S | X コンソールで使用される AMD RDNA GPU に対して特に最適化され、16 ビットの型とパック命令を利用します。
テンポラル アンチエイリアシング アップサンプリング
テンポラル アンチエイリアシング アップサンプリング (TAAU) とは、各フレーム内の異なる場所からサンプリングし、過去のフレームを使用して、サンプルをブレンドすることで、エッジからジャギーな部分を取り除き滑らかにします。


TAAU の品質はコンソール変数 r.TemporalAA.Quality
を使用してコントロールされます。次の値から選択できます。
- 0: 入力フィルタリングを無効にする。
- 1: 入力フィルタリングを有効にする。
- 2: 可動性ベースのアンチゴースト処理ありで入力フィルタリングを有効にする (デフォルト)
[Engine Scalability Settings] を使用して、アンチエイリアスの品質を変更できます。
レンダリング チェーンで、TAAU はデフォルトでは、スクリーン比率とともにテンポラル アップスケーラー設定を使用します。

テンポラル アップサンプリングを無効にする
Unreal Engine 4 から Unreal Engine 5 にプロジェクトを移行するプロセスを簡単にするために、プライマリ スクリーン比率に対して空間アップスケーラーをテンポラル アップサンプリングで使用するのを無効化できます。
これを実行するには、UE5 のプロジェクト設定で、[Engine (エンジン)] > [Rendering (レンダリング)] > [Default Settings (デフォルト設定)] に移動し、[Temporal Upsampling (テンポラル アップサンプリング)] 設定を無効にします。

この設定を無効にすると、テンポラル アンチエイリアシングのレンダリング チェーンは次のようになります。

スクリーン比率に対する TAAU 固有のシェーダーの置換
TAAU には次のとおり、プライマリ スクリーン比率の範囲に対する独自のシェーダーの置換があります。
- 50 ~ 70 は、小さい LDS タイルをメモリで使用するため、高速にレンダリングします。
- 71 ~ 100 は、デスクトップやベース コンソールで「普通の」DPI レンダリングに便利です。
プライマリ スクリーン比率 を レベル エディタの [Viewport Options (ビューポートオプション)] ドロップダウン メニューで設定できます。

高速近似アンチエイリアシング
高速近似アンチエイリアシング (FXAA) とは、空間専用アンチエイリアス手法です。ピクセル エッジ間をブレンド (ディザ) することにより、エッジを見つけ、滑らかにするため、高いコントラストのフィルタを使用する、ポストプロセス エフェクトです。この手法の名前が示すとおり、レンダリングが高速で、ローエンド デバイスやデスクトップに最適です。
この手法はレンダリングが高速ですが、最終イメージでは、他のアンチエイリアス手法と比較したときに忠実度が下がる可能性があります。


FXAA のディザ品質は、コンソール変数 r.FXAA.Quality
を使用してコントロールされます。ジャギーがあるエッジを取り除くためディザで使用するサンプリング数を設定できます。サンプル数を増やすと、忠実度が高くなりますが、GPU 負荷が増加します。
次のオプションから選択します。
- 0: コンソール
- 1: PC 中間ディザリング (3 サンプル使用)
- 2: PC 中間ディザリング (5 サンプル使用)
- 3: PC 中間ディザリング (8 サンプル使用)
- 4: PC 低ディザリング (12 サンプル使用、デフォルト設定)
- 5: PC 高ディザリング (12 サンプル使用)
[Engine Scalability Settings] を使用して、アンチエイリアスの品質も変更できます。
空間とテンポラル アップサンプリング チェーンで、空間アップスケーラーは、プライマリ スクリーン比率のポストプロセス チェーンの最後で処理されます。

マルチサンプル アンチエイリアス
このアンチエイリアス手法は、フォワード レンダラ を使用するときに、モバイルとデスクトップ / コンソールでのみ使用できます。
マルチサンプル アンチエイリアス (MSAA) はフレームの一部を滑らかにするだけの手法です。MSAA では、問題の起きやすい領域 (ジオメトリのエッジなど) に注目します。エイリアシング問題がエッジで発生する可能性がある場合、MSAA はエッジを構成する 2 個のピクセルの色の間で色を調整します。ディザリング エフェクトでは、エッジが滑らかになる錯覚を生み出します。


MSAA は、エイリアシングを実行する対象エッジに沿って色をブレンドするため、そこで使用するサンプル数で品質が決まります。サンプル数を増やすと、ビジュアル品質がよくなりますが、GPU 処理の負荷が増加します。
MSAA で使用するサンプル数を [Project Settings] で設定できます。[Engine] > [Rendering] > [Default Settings] で [MSAA Sample Count] を指定します。この設定はデスクトップ / コンソールとモバイル向けのサンプル カウントをコントロールします。別の方法として、コンソール変数 r.MSAA.Quality
を使用して、品質を設定できます。

2、4、8 個のサンプル数を選択できます。




スライダをドラッグして、マルチサンプル アンチエイリアスが使用するサンプル数を増やして確認できます。
他のアンチエイリアス手法と異なり、MSAA は [Engine Scalability Settings] でコントロール できません。プロジェクト設定またはコンソール変数で設定する必要があります。
レンダリング チェーンで、MSAA は空間アップスケーラーの前に、エッジに沿ってジオメトリ エイリアシングを主に解決します。マテリアル、テクスチャ、透明性があるサーフェスに対するエイリアシングは、MSAA による影響を受けません。
