UE4:クオリティの切り替え
UE4.19
1)コンソール変数を使用する
UE4はクオリティに関する設定を「コンソール変数(Console Variable, CVer)」として保持しており、これを変更することで見た目のクオリティを変えることができます。
コンソール変数は非常に多くあるため、以下に一部の例を挙げます。
例)
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に対応します。
クオリティレベルで切り替わるコンソール変数の設定方法
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 マテリアル表現式ノード」を使用し、クオリティレベル合わせたマテリアルが作成することで実現できます。