We have a custom DeviceProfile.ini file for PC with 4 different profiles:
- Windows_Low
- Windows_Medium
- Windows_High
- Windows_Epic
We currently use this only in-Editor with a custom Editor Tool that lets our artists pick Scalability Settings which loads the Settings directly from our custom DeviceProfile.ini file. We also do this for Consoles so that artist can preview what the game will look like on PS4/PS5/XB1/XSX etc.. directly in-Editor.
But on PC, we have Graphic Settings that players can change at runtime, but currently that UI does NOT load settings from our custom DeviceProfile.ini, instead we are changing CVars directly in the Graphics Menu Widget Blueprint based on what option the player picks, so it does not match the settings used in the custom DeviceProfile.ini.
I was able to change this behavior and load settings directly from our custom DeviceProfile.ini file by adding each Profile to DeviceProfileManager like so:
if (UDeviceProfile* DP = UDeviceProfileManager::Get().FindProfile(QualitySetting, true))
{
UDeviceProfileManager::Get().SetOverrideDeviceProfile(DP, false);
}
This seems to work fine but I was wondering if this is something we shouldn’t do, or if there’s another way to achieve this?
Basically what we’re trying to do is give the artists a way to Match Graphics Settings in-Editor with the same Graphics Settings available at runtime. This would be easy enough if we were using Unreal’s Default DeviceProfile.ini for PC, as the artists could just use the Editor’s Scalability Settings menu to preview the different Scalability Settings, but since we use a custom DeviceProfile.ini for PC, I had to make our own Scalability Editor Tool to load settings from our Custom DeviceProfile.ini file instead.
I am not super familiar with how this works exactly, so maybe there’s a much easier way that I don’t know about ![]()
Thanks