モバイル デバイスのパフォーマンス ガイドライン

モバイルゲーム向けのコンテンツと機能の最適化。

モバイル プラットフォーム向けに開発する場合、特定のデバイスを対象とする場合に留意すべき事項や、タイトルをリリースするデバイスのリストに応じた 一般的な推奨事項がいくつかあります。ここでは、特定のライティング ティアを使用した開発を行いデバイスのパフォーマンスを最大限に引き出す方法と、 特定のライティング ティアがターゲット ユーザーにとって最適な理由を説明します。また、モバイルを念頭に置いて開発するプロジェクトで留意すべき いくつかの提案もご紹介します。

パフォーマンス ティア

Unreal Engine 5 (UE) は、モバイル デバイスのさまざまなライティング機能をサポートしています。これらの機能を使用するとパフォーマンスが低下し、低速のモバイル デバイスではゲームのパフォーマンスが低下する可能性があります。UE の モバイル ライティング機能のほとんどを組み合わせて使用することも可能ですが、これらの機能を次のティアに分類すると便利です。モバイル ゲームを作成するときは、ゲームに必要なグラフィックスの品質と、 サポートする必要があるデバイスの種類に基づいて、使用する機能を決定する必要があります。Epic でテストされたデバイスと、そのデバイスに最も適していると思われるティアの詳細については、「iOS 向けの開発」と「Android 向けの開発」の 開発要件を確認してください。

LDR (ロー ダイナミック レンジ)

ロー ダイナミック レンジ (LDR) モードは、UE でサポートされている最低のパフォーマンス レベルです。ライティングやポストプロセス機能を必要としないゲームに最適です。

このモードを使用するには、[Project Settings (プロジェクト設定)][Rendering (レンダリング)] セクションでプロジェクトの [Mobile HDR (モバイル HDR)] を無効にする必要があります。

01-mdv-perfom-disable-mob-hdr.png

長所

制限事項

推奨事項

  • このモードでは、モバイル デバイスのオーバーヘッドが最速かつ最小となります。したがって、低速のモバイル デバイスでもゲームを適切に実行できます。

  • それでも、カスタム シェーダーの定義や疑似ライティングに使用する単純なシェーディングの実行を行う マテリアル エディタ への完全なアクセスが可能です。

  • シーンのカラーはガンマ空間に書き出され、各カラー チャンネルは [0,1] の範囲にクランプされます。

  • 透過プリミティブはガンマ空間でブレンドされます。ほとんどの場合、HDR や通常の PC タイトルとは異なる方法で、透過テクスチャとマテリアルをオーサリングする必要があります。

  • このモードでは、ポストプロセス機能は使用できません。

  • 最大限のパフォーマンスを得るために、すべてのマテリアルのシェーディング モデルが [Unlit (非ライティング)] に設定されていることを確認してください。

  • パフォーマンスを最大まで使用することを想定している場合は、配置されたライティングをシーンで使用しないでください。

  • マテリアルの 頂点シェーダー でできるだけ多くの操作を実行できないか検討してください。これを行うには、[Customized UVs (カスタマイズされた UV)] を有効にし、それらにノードを接続してから、テクスチャ座標 ノードを使用してピクセル シェーダーでカスタマイズされた UV をターゲットにします。

基本的なライティング

このレベルでは、静的なライティング と完全に粗いマテリアルを活用して興味深いライティングを使用して レベル を作成する一方で、パフォーマンスを最大化して幅広いモバイル デバイスにも対応します。

このモードを使用するには、[Project Settings][Rendering] セクションでプロジェクトの [Mobile HDR] を有効にする必要があります。

02-mdv-perfom-enable-mob-hdr.png

長所

制限事項

推奨事項

  • 静的なライティングおよびグローバル イルミネーション機能にアクセスできます。

  • 完全な HDR パイプラインと、トーン マッピング などの一部のポストプロセス機能にアクセス可能です。

  • 透過処理は線形空間にブレンドされます。それにより、デスクトップで通常行うようにコンテンツをオーサリングできます。

  • すべてのマテリアルを Fully Rough としてマークする必要があるため、マテリアルでリアルなスペキュラ反射は得られません。

  • Lightmap Directionality を無効にした場合、法線マップ のエフェクトがなくなります。

  • Fully Rough フラグを設定して、すべてのマテリアルをオーサリングしてください。

  • パフォーマンスを向上させるには、マテリアルの Lightmap Directionality のフラグを無効にすることを検討してください。

  • マップでは静的ライトのみを使用してください。

  • ブルーム など、一部のポストプロセス機能を完全に無効にしてください。また、フィルムとカラー コントロールの基本セットをそのまま使用するようにしてください。

フル HDR (ハイ ダイナミック レンジ) ライティング

このティアでは、UE のモバイルで利用可能な HDR ライティング機能のほとんどと、いくつかのポストプロセス機能を利用します。これらの機能を利用すると 高品質なライティングが得られますが、パフォーマンスにかなりの負荷がかかります。

このモードを使用するには、[Project Settings][Rendering] セクションでプロジェクトの [Mobile HDR] を有効にする必要があります。

02-mdv-perfom-enable-mob-hdr.png

長所

推奨事項

  • 静的なライティングおよび グローバル イルミネーション 機能にアクセスできます。

  • 完全な HDR パイプラインと一部のポストプロセス機能にアクセス可能です。

  • 透過処理は線形空間にブレンドされます。それにより、デスクトップで通常行うようにコンテンツをオーサリングできます。

  • サーフェス上でさまざまな粗さをサポートするリアルなスペキュラ反射を得られます。

  • HDR ライティング パイプラインを最大限に活用するには、ブルーム の有効化を検討してください。

  • HDR ライティングとリアルなスペキュラ反射を組み合わせた場合、スペキュラ エイリアシングが発生する可能性があります。この場合、[Normal Curvature to Roughness (ラフネスに対する法線曲率)] の [Material (マテリアル)] プロパティを有効にすると、法線マップの高周波情報が原因となるスペキュラ エイリアシングを減らせます。[Project Settings] > [Rendering] でアンチエイリアスを有効にしても、アーティファクトを減らすことができます。

  • 最良の結果を得るには、時間をかけて 反射キャプチャ アクタ の配置を調整してください。詳細については、「Reflections:Placing Reflection Captures」を参照してください。

  • 最高のパフォーマンスを得るには、シーンで静的ライトとライトマップのみを使用してください。

太陽からのピクセル単位のライティングによるフル HDR ライティング

このティアでは、UE のモバイルで利用可能な HDR ライティング機能のすべてを利用します。このティアは、基本的に「フル HDR ライティング」と同じで、利点と推奨事項も同じです。 しかし、このライティングの場合、単一の 指向性ライト をシーンに追加するとピクセル単位のライティングを自動的に使用するため高品質を実現できます。

このモードを使用するには、[Project Settings][Rendering] セクションでプロジェクトの [Mobile HDR] を有効にする必要があります。

02-mdv-perfom-enable-mob-hdr.png

長所

推奨事項

  • フル HDR」レベルでリストされているすべての機能と利点を利用可能。

  • 単一の指向性ライトでピクセルごとのディフューズおよびスペキュラ ライティングを利用可能。

  • 単一の指向性ライトで高品質で事前計算された ディスタンス フィールド シャドウを利用可能。

  • フル HDR」レベルにあるすべての推奨事項と利点を活用するようにしてください。

  • Stationary (固定) に設定する必要がある単一の指向性ライト以外は、静的ライトのみを使用してください。

シェーダー複雑度表示モード

Mobile Previewer」の「Shader Complexity」表示モードで、 ターゲットにしている特定のデバイスのマテリアル コストを把握できます。画面に表示される色は、対象のデバイスに対するマテリアルの負荷を示しています。 緑はパフォーマンスが良く、明るい赤はパフォーマンスに非常に負荷がかかっており、白またはピンクはマテリアルが非常に高負荷であることを意味します。

これを使用するには、メイン ビューポート[View Modes (表示モード)] リストをクリックし、[Optimization Viewmodes] を選択して [Shader Complexity (シェーダー複雑度)] を選択するか、キーボード ショートカット Alt + 8 を使用します。

03-mdv-perfom-enable-shader-complexity.png

これらは、[Shader Complexity] を使用して表示した場合のマテリアル コストがどのような感じか、Mobile Sun Temple からいくつか例をご紹介します。

04-mdv-perfom-example-1.png

05-mdv-perfom-example-2.png

06-mdv-perfom-example-3.png

柱のマテリアルはここではかなり高負荷で、透過処理のあるボリュメトリック シートも 非常に 高負荷です。このシーンでは、透過処理をしたシートはコストがかかることから、外すように依頼しています。

このシーンでは、柱は 5 つのテクスチャ ルックアップすべてを使用し、かなりのレイヤリングを行うため、非常に高負荷となっています。それらがない場合、30fps で十分効率的に動作します。

このシーンでは、ツリーが原因でピクセルが 非常に 高負荷になっています。プレイヤーが近づいたり、そのマテリアルで画面を覆ったりした場合、負荷は非常に高くなります。

モバイル コンテンツのスケール係数

モバイル コンテンツのスケーリング係数 は、プロジェクトの解像度をスケーリングする 1 つの方法です。プロジェクトの表示に使用されているモバイル デバイスの画面解像度に最適な形でスケーリングします。 プロジェクトの「config」フォルダに「DefaultDeviceProfiles.ini」という名前の新しいコンフィギュレーション (.ini) ファイルを作成することで、複数のデバイス プロファイルを作成して保存 できます。

このファイル内で、次のコマンドを入力し、その後に以下の iOS および Android セクションの値のいずれかを入力することで、特定のデバイスのプロジェクトの解像度をどうするかを指定できます。

r.MobileContentScaleFactor

次の図では、コンフィギュレーション ファイルで設定されているモバイル コンテンツ スケール係数の例を示しています。

クリックしてフルサイズで表示。

この特定のコンフィギュレーション ファイルは Tappy Chicken プロジェクトからのもので、さまざまなモバイル デバイスで再生したときに Tappy Chicken の解像度がどうなるかを示しています。このファイルの 上部セクションは iOS デバイスの解像度スケーリングを処理し、下部セクションは Android デバイスの解像度スケーリングを処理します。各 r.MobileContentScaleFactor の後に数字があることに注意してください。コマンドの 後の数字で、プロジェクトの解像度を拡大または縮小する必要があるかどうかを決定します。

iOS のモバイル コンテンツ スケール係数

iOS デバイスの場合、次の数値を入力すると、次の結果が生成されます。

iOS のスケール係数は、Apple のスケール係数システムに直接関係しており、スケール係数が「0.0」以外の場合、実際の解像度は画面のアスペクト比と一致するように修正され、 デバイスのネイティブ解像度に固定されます。

結果

0.0

デバイスのネイティブ解像度に固定されます。

1.0

Retina デバイスでは非 Retina 解像度となります。

2.0

iPhone 5S、iPad Air などで完全にネイティブ解像度となります。

3.0

iPhone 6 以上の場合、完全にネイティブ解像度となります。

Android のモバイル コンテンツ スケール係数

Android デバイスの場合、次の数値を入力すると、次の結果が生成されます。

「0.0」以外の値を入力すると、デバイスの向きに応じて、標準の 1280x720 または 720x1280 解像度のスケール係数としてこの値が使用されることに注意してください。

結果

0.0

デバイスのネイティブ解像度に固定されます。

1.0

横向きの場合は解像度が 1280 x 720、縦向きの場合は 720 x 1280 となります。

2.0

横向きの場合は解像度が 2560 x 1440、縦向きの場合は 1440 x 2560 となります。

モバイル マテリアルの品質設定

ローエンド モバイル デバイスとハイエンド モバイル デバイスの両方で実行される UE プロジェクトのコンテンツを構築している場合、ある機能または作品が片方のデバイス セットで機能する一方で、もう片方のデバイス セットでは機能しないという問題に 遭遇することがよくあります。このような問題に対しては多くの対処法がありますが、それらの多くは時間とリソースを大量に消費することからエラーが発生しやすくなります。UE では、 Material Quality Level システムでこの種の問題に対処します。このシステムを利用すると、幅広いデバイスで使用可能な単一のマテリアルをビルドできます。したがって、どのデバイスがどの機能を使用するかを 完全に制御できます。

以下のセクションでは、これらのシステムと、それらを独自の UE プロジェクトで使用する方法について説明します。

マテリアルの品質レベルをプレビューする

メイン ツールバー に移動し、[Settings (設定)] > [Material Quality Level (マテリアルの品質レベル)] でプレビューするレベルを選択すると、エディタ内でさまざまなマテリアルの品質レベルの設定がどのように表示されるのかを 確認できます。

08-mdv-perfom-material-preview.png

次の画像は、[Material Quality Level] が低、中、高に設定されている場合のマテリアルの外観を示しています。

スライダーをドラッグすると、[Material Quality Level] を低から中、高に変更したときに何が起こるかが表示されます。

マテリアルの品質レベルの設定

デバイスのマテリアル品質レベルは、次の方法で設定できます。

コンソールから行う

` (バッククォート) キーを押し、r.MaterialQualityLevel に続いて次のいずれかの値を入力すると、コンソールを表示できます。

09-mdv-perfom-command-line.png

マテリアルの品質レベルの番号

設定

0

1

2

3

最高

高の場合は「1」、中の場合は「2」である点に注意してください。

デバイス プロファイルから行う

コンフィギュレーション (.ini) ファイルを使用すると、エディタ内から次の方法を使用して、ターゲットにする予定のデバイスのマテリアルの品質を設定できます。

  1. メイン ツールバー から [Windows] > [Developer Tools (デベロッパーツール)] に移動し、[Device Profiles (デバイスプロファイル)] をクリックします。

    10-mdv-perfom-device-profiles.png

  2. [Device Profiles]Android_Low プロファイルを探し、最初の [レンチ] アイコンをクリックしてプロファイル オプションを開きます。

    11-mdv-perfom-edit-profile.png

  3. [Rendering] オプションの下の [Variables (変数)] セクションで、[プラス] アイコンをクリックし、ポップアップして表示された入力ウィンドウで「R.MaterialQualityLevel」と入力し、Enter キーを押してそのコマンドをリストに追加します。

    12-mdv-perfom-set-console-variables.png )

  4. 新しいエントリが追加されたら、値をデフォルト値から「1」から「0」に変更します。すると、このプロジェクトがローエンドの Android デバイスで表示されたときに、可能な限り高速なマテリアル設定を使用するようになります。

    13-mdv-perfom-set-quality-level.png

さまざまな品質レベルでプレビューする

[Preview Rendering Level (プレビュー レンダリング レベル)] を調整すると、異なるハードウェアで実行したときにプロジェクトがどのように見えるかを Unreal Editor で確認できます。これを調整するには、 メイン ツールバー に移動し、[Settings] > [Preview Rendering Level] を選択して、使用するプレビュー レベルを選択します。

14-mdv-perfom-preview-rendering-level.png

マテリアルの品質レベルのスイッチ

Quality Switch マテリアル式 を使用すると、1 つのマテリアル内でさまざまなレベルの複雑度を定義できます。たとえば、複雑な数学演算や、 ハイエンドのモバイル デバイスでは機能するもののローエンドのモバイル デバイスでは機能しない大量のテクスチャ読み取りがある場合です。このノードを使用すると、ハイエンドのグラフィックスを表示できないローエンドのモバイル デバイス向けに、簡略的に表示を行うバージョンを指定できます。

15-mdv-perfom-quality-switch-node.png

マテリアルで Quality Switch を使用するには、まず Quality Switch マテリアル式ノードを マテリアル グラフ に追加し、その出力を Main Material ノードの入力のいずれかに接続する必要があります。次の画像では、M_Brick_Clay_Old マテリアル (スターター コンテンツにあります) が設定されています。そのため、品質レベルを切り替えると、マテリアルの複雑さが軽減します。

クリックしてフルサイズで表示。

モバイル マテリアルのオプション

任意の マテリアル を開いて Main Material ノード をクリックすると、[Details (詳細)] パネルの [Mobile (モバイル)] セクションの下に次のプロパティが表示されます。

プロパティ

設定

Float Precision Mode

ピクセル シェーダーで完全 (highp) 精度を使用する方法を決定します。Highp はデフォルト (mediump) よりも低速ですが、精度に関連したレンダリングのエラーに対処するにはこれが有効です。.ush/.usf の半分の精度を維持したい場合にのみ、[Full-Precision for MaterialExpressions Only (MaterialExpressions のみ完全精度)] を使用します。この設定は、高精度をサポートしない旧型のモバイル デバイスには効果がありません。

Use Lightmap Directionality

ライトマップの指向性とピクセルごとの法線を使用します。無効にすると、ライトマップは視覚的により平坦に見えるようになりますが、負荷が軽いです。

Mobile High Quality BRDF

モバイルで高品質の BRDF 関数を使用します。これにより、ビジュアル エフェクトは向上しますが、GPU コストがかかります。

Use Alpha to Coverage

モバイルでのマスクされたマテリアルの範囲にアルファを使用します。この際、MSAA も有効であることも確認してください。

17-mdv-perfom-mobile-material-options.png

これらの機能のレンダリング パスを完全に排除することで、これらのプロパティで性能の低いモバイル デバイスで表示する場合のマテリアルのレンダリング コストを削減できます。

モバイル マテリアル レンダリングのオーバーライド

[Project Settings] > [Platforms (プラットフォーム)] にあるさまざまなターゲット デバイスの [Material Quality (マテリアル品質)] 設定を調整することで、プラットフォームが使用する利用可能なレンダリング オプションをオーバーライドできます。

18-mdv-perfom-materia-quality-levels.png

リストされている [Quality Options (品質)] を調整することで、プラットフォームが使用する利用可能なレンダリング オプションをオーバーライドできます。オーバーライドするには、まず [Enable Quality Overrides (品質のオーバーライドを有効にする)] オプションをクリックしてから、 特定の品質レベルでオーバーライドするオプションを選択する必要があります。

19-mdv-perfom-enable-quality-level-overrides.png

必要なオプションをすべて選択したら、[Update Preview Shaders] ボタンを押します。すると、すべてのマテリアルで再コンパイルが行われ、指定したオプションで動作するようになります。

20-mdv-perfom-quality-levels-update-shaders.png )

モバイル レンダリング オプション

[Project's Settings] メニュー内の [Rendering] セクションには、モバイル プロジェクト内でのライティングと最適化の処理方法を制御する 多くのプロパティがあります。次のセクションでは、これらの設定と、それらがプロジェクトに与える影響について説明します。

プロジェクト設定にアクセスする

[Project Settings] メニューが開いたら、[Engine] セクションを見つけて、[Rendering] カテゴリをクリックします。以下のセクションを使用して、以下の設定を調整します。

  • Mobile

  • Misc Lightning

  • VR

  • Mobile Shader Permutation Reduction

21-mdv-perfom-project-settings-rendering.png

モバイルおよび VR レンダリングのオプション

[Mobile (モバイル)][VR] カテゴリでは、モバイル プロジェクトのライティングと外観に直接影響するプロパティを設定できます。独自のプロジェクトのこれらの設定を調べるには、以下をお読みください。

22-mdv-perfom-mob-vr-rendering-settings.png

プロパティ名

説明

Mobile

プロジェクト設定の [Mobile] セクションにあるオプションのリスト。モバイル パフォーマンスの調整に使用します。

Disable Vertex Fogging in mobile shaders

true の場合、頂点フォグはすべてのモバイル シェーダーで省略されます。ゲームでフォグを使用していない場合は、この設定をオンにしてシェーディングのパフォーマンスを向上させることをお勧めします。

Maximum number of CSM cascades to render

モバイル レンダラを使用するときに、動的な指向性ライト シャドウのレンダリングを行うためのカスケードの最大数。

Mobile Anti-Aliasing Method

モバイルで使用するためのマルチサンプル アンチエイリアス設定。MSAA が利用できない場合、現在のデフォルト AA メソッドが使用されます。

VR

プロジェクト設定の [VR] セクションにあるオプションのリスト。モバイル パフォーマンスの調整に使用します。

Mobile HDR

true の場合、モバイルではフル HDR でレンダリングされます。ライティング機能を必要としないゲームでは、この設定を無効にすると、処理が遅いデバイスでパフォーマンスが向上します。

モバイル用の [Misc Lighting] 設定と [Mobile Shader Permutation Reduction] 設定

[Misc Lighting][Mobile Shader Permutation Reduction] セクションには、さまざまなオプションが多数用意されており、これらの有効無効を切り替えることでマテリアル用に生成されたシェーダーに対して変化を与えられます。 これにより、アプリのサイズ縮小、メモリの節約、ロード時間の短縮が可能です。

26-mdv-perfom-light-shader-rend-set.png

プロパティ名

説明

Misc Lighting

プロジェクト設定の [Misc Lighting] セクションにあるオプションのリスト。モバイル パフォーマンスの調整に使用します。

Allow Static Lighting

ライトマップやシャドウ マップなど、静的ライティングの生成と使用を有効にするかどうか。動的ライティングのみを使用するゲーム、またはライティングを使用しないゲームの場合、静的ライティング オーバーヘッドを保存するため、この値を「0」に設定します。

Mobile Shader Permutation Reduction

プロジェクト設定の [Mobile Shader Permutation Reduction] セクションにあるオプションのリスト。モバイル パフォーマンスの調整に使用します。

Support Combined Static and CSM Shadowing

プリミティブが固定ライトからスタティック シャドウと CSM シャドウの両方を受け取れるようにします。無効にすると、モバイル テクスチャ サンプリングが解放され、シェーダー順列が減ります。

Support CSM on levels with Force No Precomputed Lighting enabled

[Allow Static Lighting (静的ライティングを許可)] が有効な場合、事前計算されたライティングなしで CSM をサポートするシェーダーは通常生成されません。この設定により、シェーダー順列を追加してさらなるコストを支払うことで、こうしたケースで CSM が可能になります。

Support Pre-baked Distance Field Shadow Maps

スタティック プリミティブ用のシェーダーを生成し、固定指向性ライトから ライトマスでベイクされたディスタンス フィールド シャドウ マップをレンダリングします。

Support Movable Directional Light

可動指向性ライトを受け取るプリミティブのシェーダーを生成します。

Max Movable Point Lights

モバイル デバイスでサポートする動的なスポットライトまたはポイント ライトの数。動的なスポットライトまたはポイント ライトを必要としないゲームでこれを「0」に設定すると、生成されるシェーダーの数が減ります。

Support Movable Spotlights

可動スポットライトからのライティングを受け取るプリミティブのシェーダーを生成します。これにより、可動ライトを処理する際に追加のコストが発生します。

これらの設定の変更は、エディタの再起動後に有効になります。

ライティングの設定に必要なシェーダー順列を無効にすると、ライティングまたはシャドウイングが正しくレンダリングされなくなります。 それに伴い、適切に機能させるのに再度有効にする必要がある設定について説明したメッセージが画面に表示されます。

その他の提案事項

モバイル プラットフォームで最適なパフォーマンスを得られるようにコンテンツを設定する際は、次の提案事項が役立ちます。最も重大なものから上から順番にご紹介します。

  • デバイスで実行する前に、ライティングがビルドされていることを確認してください。

  • ほとんどのポストプロセス機能は、ビネットやスクリーン スペース反射のようにコストが高すぎることから、モバイル プラットフォームでは無効になっています。ブルーム被写界深度 (DOF) など、GPU を集中的に使用する一部の機能はデフォルトで有効になっています。そのため、PC とモバイルは同じように動作するように見えますが、一部のデバイスではデフォルト設定で多くの機能に 60 ミリ秒以上かかってしまう場合があります。コンソール コマンド showflag.PostProcessing 0 でこれらの機能をオフにすると、コストの概要を把握できます。

  • [Precomputed Visibility (事前計算されたビジビリティ)] を使用しており、それが適切に設定されていることを確認してください。これを行うには、Precomputed Visibility Volumes (事前計算されたビジビリティ ボリューム) をプレイヤーが歩いたりジャンプしたりできるエリアの周りに配置してから、ライティングをビルドします。これらは、ライティングのビルド時およびゲームの実行時に使用される パーシスタントレベル に配置する必要があるため、サブレベル を単独でビルドしないでください。デバイスまたは レベル プレビューア でコンソール コマンド「Stat Initviews」を入力し、Statically Occluded Primitives が「0」より大きいことを確認することで、[Precomputed Visibility] が機能しているかどうかがわかります。エディタでセルを視覚化するには、コンソール コマンド r.ShowPrecomputedVisibilityCells 1 を使用してください。

  • マスクされており、透過処理を行ったマテリアルの使用は控えめにしてください。使用する際、画面上で覆う範囲は小さくなるようにしてください。iOS デバイスは各ピクセルを 1 回だけシェーディングすることから、透過処理を行っていないサーフェスのシェーディングに最適です。しかし、マスクされ透過処理を行っているものの場合、すべてのレイヤーをシェーディングする必要があります。フレームの合計 GPU 時間は、オーバードローにより 2 倍以上になることがあります。ホット スポットを調査するには、[Shader Complexity (シェーダー複雑度)] 表示モードを使用します。

  • シーン全体のドロー コールは、単一の表示で 700 以下にしてください。これは、大きなランドスケープを見渡すようなオクルージョンが不十分な領域の場合に最も大きな問題となります。この状況は、デバイスの Stat OpenGLRHI または PC の PreviewerStat D3D11RHI で確認できます。

  • シーン全体のトライアングルの数は、どのビューでも 500k 以下にしてください。iPad4 と iPad Air の両方で 30fps を達成できる最大ポリゴン数がこの数字以下であると言われています。この状況は、デバイスの Stat OpenGLRHI または PC の PreviewerStat D3D11RHI で確認できます。

  • マテリアルでは、テクスチャ ルックアップと命令の数をできるだけ少なくしてください。5 つのテクスチャ サンプリングを使用できますが、それらすべてを使用するとマテリアルがかなり高負荷になります。ここでは、PC 命令数を使用して最適化し、 Previewer Shader Complexity で総コストを視覚化してください。

  • マテリアルでは独立したテクスチャ フェッチのみを使用してください。つまり、ピクセル シェーダー (BaseColorラフネス など) の UV は、スケーリング などの方法で操作しないでください。代わりに CustomizedUVs 機能を使用して、頂点シェーダースケーリング を行います。環境マッピングなどの一部の特殊機能では、UV で計算が必要ですが、特殊なケースでは問題ありません。

  • メモリの無駄が少ないため、正方テクスチャを使用することをお勧めします。これらには常に 2 のべき乗を使用します (256x256、512x512、1024x1024)。Previewer でコンソール コマンド ListTextures を使用して、すべてのテクスチャ メモリがどこに行くのかを確認します。

Unreal Engine のドキュメントを改善するために協力をお願いします!どのような改善を望んでいるかご意見をお聞かせください。
調査に参加する
キャンセル