#UE4 で Blueprint を使ってグラフィック設定を保存するには、Game User Settings オブジェクトを使う。これは、Get User Settings という関数を使って取得できる。
たとえば解像度を変更するには SetResolutionScaleValue というメソッドを使う。これは最大の解像度を 100 として、何 % の解像度に設定したいかを指定する。たとえばこれに 50 を設定して保存すると、設定ファルには下のように記録される。
sg.ResolutionQuality=50.000000
新しい設定を適用してファイルに保存するには Apply Settings メソッドを呼ぶ。Blueprint だと下のようになる。
設定の内容は GameUserSettings.ini というファイルに保存される。このファイルは Mac だと ~/Library/Preferences/[ゲーム名]/MacNoEditor/ の下に作られる。
Game User Settings の概要は UGameUserSettings のリファレンスをみるとだいたい分かるけど、Blueprint 上の関数名と C++ の関数名が微妙に違うことがあるので、ヘッダファイルを見て確認すると確実です。UE4 インストールディレクトリの中の次のファイルがこれに相当する:
Engine/Source/Runtime/Engine/Classes/GameFramework/GameUserSettings.h
たとえば、上記の SetResolutionScaleValue は次のように宣言されている:
// Sets the current resolution scale
UFUNCTION(BlueprintCallable, Category=Settings, meta=(DisplayName="SetResolutionScaleValue"))
void SetResolutionScaleValueEx(float NewScaleValue);
解像度の変更をエディタの PIE 上で実行すると UE4 がまるごとハングアップしてしまったので、試すときは Standalone Game かパッケージを作る必要がありそう。