[UE4]ベンチマーク結果に応じて描画品質を変える

はじめに

UE4の[Settings]->[Engine Scalability Settings]には、品質をまとめて設定するボタンがあります。特にAutoボタンは、品質を自動決定してくれる便利な機能です。
図1 Engine Scalability Settings

品質はランタイムで変更することができます。詳しくはalwei氏の記事が参考になります。基本的には、図2のようにGetGameUserSettingsノードでGameUserSettingsオブジェクトを取得して、Set~ノードで品質の各項目を設定し、ApplySettingsで設定を反映させます。
図2 Scalabilityの変更方法

今回はその中でも、図1のAutoボタンに相当するRunHardwareBenchmark&ApplyHardwareBenchmarkResultsノードを紹介します。

ベンチマーク結果に応じて品質を変更

図3 RunHardwareBnechmark & ApplyHardwareBenchmarkResultsノード

図3のようにノードを設定すると、Autoボタンに相当する結果が得られます。
各ノードについて説明します。
RunHardwareBenchmarkは、ベンチマークを行うノードです。ただし、これはSet~ノードと同じで、ノードを実行してもベンチマークが行われるだけで、その結果による最適な設定を反映しません。Set~ノードではApplySettingsノードを実行することで設定を反映するように、RunHardwareBenchmarkノードではApplyHardwareBenchmarkResultsノードを実行することで、ベンチマーク結果による最適な設定を反映します
RunHardwareBenchmarkの引数は次のようになっています。
  • WorkScale:ベンチマーク試行回数
  • CPU Multiplier & GPU Multiplier:ベンチマーク結果の倍率
WorkScaleはベンチマークの試行回数です。最終的なベンチマークの結果は、複数回行われるベンチマーク結果の総和をWorkScaleで割ることで得られる平均となります。WorkScaleが小さいほど試行回数が少なく、計算量は減りますが、結果の信頼性に関わるため、通常はこの値は変更しない方が良いかと思われます。
CPU MultiplierとGPU Multiplierはベンチマーク結果の倍率で、この値が高い程、高い品質(負荷 高)を維持しようとし、値が低いほど、低い品質(負荷 低)に抑えようとします。これらは、ある程度負荷が大きくても品質を下げすぎないようにするときに便利な引数かと思われます。また、CPUとGPUに別々に設定できるので、例えばCPU Multiplierを高くして、GPU Multiplierを低くすることで、CPU性能を重視した設定にすることもできるでしょう。とはいえ、この項目も基本的には変更しない方が無難だと思われます。

おまけ:段階的に品質を変更する

RunHardwareBnechmark & ApplyHardwareBenchmarkResultsノードは図1のAutoボタンに対応しますが、ここでLow、Medium、High、Epic、Cinematicボタンに対応するノードもあります。図4のSet/Get Overall Scalability Levelがそれにあたります。
図4 Set/Get Overall Scalability Levelノード

SetOverallScalabilityLevelノードは段階的な品質変更を行うノードです。引数のValueは品質のレベルで、0=Low, 1=Medium, 2=High, 3=Epic, 4=Cinematicに相当します。図4のようにSetOverallScalabilityLevelノードの引数に0を指定すると、全ての品質がLowになります。
GetOverallScalabilityLevelノードは全ての品質が同じ段階のときに、その段階の値を返します。もし、1つでも違う段階の品質がある場合は、-1を返します。

おわりに

これらは、作り手が想定する絵作りからは逆行する(遊び手の環境によって見た目が変わってしまうため)可能性があるため、必ずしも有用とは言いづらいのですが、プレイヤーに選択肢を与えるという点では、必要なことなのかもしれません。
Scalabilityを設定するコンフィグは、1つ作っておくと複数のプロジェクトで使いまわせませるので、コンフィグを作る時に役立てば幸いです。


この記事は次のバージョンで作成されました。
Unreal Editor(4.16.0-3427662+++UE4+Release-4.16 Preview3)

コメント