UE4:クオリティの切り替え

UE4.19

1)コンソール変数を使用する

UE4はクオリティに関する設定を「コンソール変数(Console Variable, CVer)」として保持しており、これを変更することで見た目のクオリティを変えることができます。

Unreal Engine | C++ のコンソール変数

コンソール変数は非常に多くあるため、以下に一部の例を挙げます。

例)
    r.SetRes <W>x<H>            スクリーン解像度の切り替え
    r.FullScreenMode            ウィンドウモードの切り替え
    r.ScreenPercentage          レンダリング解像度を変更、表示解像度に対する比率で指定する

2)クオリティレベルで切り替える

これらのコンソール変数は、[エンジンの拡張機能設定]ウィンドウ、BlupPrint 関数によっても切り替えることができます。 クオリティの切り替えの際に、1つ1つのコンソール変数を変えるの大変なため、クオリティに関連するコンソール変数をまとめて切り替える仕組みを持っています。その切り替えもコンソール変数で行います。

コンソール変数       BlupPrint 関数       拡張機能設定ウィンドウ レベル
-------------------------- -------------------------- ---------------------- ----------
sg.ViewDistanceQuality   SetViewDistanceQuality   表示距離        0~4
sg.AntiAliasingQuality   SetAntiAliasingQuality   アンチエイリアシング  0~4
sg.PostProcessingsQuality  SetPostProcessingsQuality  ポストエフェクト    0~4
sg.ShadowQuality      SetShadowQuality      影           0~4
sg.TextureQuality      SetTextureQuality      テクスチャ       0~4
sg.EffectQuality      SetEffectQuality      エフェクト       0~4
sg.FoliageQuality      SetFoliageQuality      フォリッジ       0~4

[エンジンの拡張機能設定]ウィンドウではクオリティレベルではなく低/中/高/Epic/シネマティック になっていますが、それぞれがクオリティレベル0/1/2/3/4に対応します。 f:id:cyberlepus:20181023132439p:plain

クオリティレベルで切り替わるコンソール変数の設定方法

UE4のコンフィグファイルである Scalability コンフィグファイルに設定します。以下のファイルが該当します。

<Root>/Engine/Config/BaeScalability.ini                     エンジンデフォルト設定
<Root>/<Game>/Config/DefaultScalability.ini                 ゲーム側のデフォルト設定
<Root>/<Game>/Config/<Platform>/<Platform>Scalability.ini   ゲーム側のプラットフォーム別設定

設定方法についてはエンジンデフォルト設定の BaeScalability.ini ファイルを見てください。影クオリティのレベル1では以下のように書かれています。

[ShadowQuality@1]
r.LightFunctionQuality=1
r.ShadowQuality=3
r.Shadow.CSM.MaxCascades=1
r.Shadow.MaxResolution=1024
        :

デフォルトのクオリティレベルは3(Epic)です。※ 最高品質の4(シネマティック)で無い事に注意

3)マテリアル(シェーダー)のクオリティを切り替える

マテリアルのクオリティはコンソール変数「r.MaterialQualityLevel」で0~2(低/中/高)の3段階切り替えることができます

自動的にシェーダーのクオリティを調整するわけではなく、マテリアルノード内に「Quality Switch マテリアル表現式ノード」を使用し、クオリティレベル合わせたマテリアルが作成することで実現できます。

参考

Unreal Engine | 拡張性のリファレンス