Управление разрешением экрана в Unreal Engine — важный аспект оптимизации производительности и обеспечения наилучшего визуального опыта для игроков. Unreal Engine предоставляет различные способы установки и изменения разрешения экрана, как в редакторе, так и в упакованной игре.
1. Установка разрешения экрана в редакторе:
Viewport Resolution:
Разрешение, используемое для отображения сцены в окне просмотра редактора. Не влияет на разрешение в упакованной игре. Можно настроить в Viewport Options -> вкладка “Display Options” -> “Resolution”.
Play in Editor (PIE) Resolution:
Разрешение, используемое при запуске игры в редакторе (Play in Editor). Можно настроить в Editor Preferences -> Play -> “New Editor Window” -> “Additional Launch Parameters”. Добавьте параметр -ResX=ширина — ResY=высота (например, -ResX=1920 — ResY=1080).
Scalability Settings:
Используются для автоматической настройки графических параметров, включая разрешение, в зависимости от производительности системы. Можно настроить в Editor Preferences -> General -> Scalability.
2. Установка разрешения экрана в упакованной игре:
Command-Line Arguments (Аргументы командной строки):
Самый распространенный способ установки разрешения экрана в упакованной игре. Используйте аргументы -ResX=ширина — ResY=высота при запуске игры (например, MyGame. exe — ResX=1920 — ResY=1080). Позволяет игрокам настраивать разрешение экрана без необходимости изменять настройки игры.
GameUserSettings. ini:
Файл конфигурации, содержащий настройки игры, включая разрешение экрана. Расположен в папке %LOCALAPPDATA%\<имяпроекта> \Saved\Config\WindowsNoEditor. Игроки могут вручную изменять значения ResolutionSizeX и ResolutionSizeY в этом файле.
Blueprint/C++ Code:
Вы можете программно изменять разрешение экрана в игре с помощью Blueprints или C++. Используйте функции SetScreenResolution и ApplySettings из класса UGameUserSettings.
3. Использование Blueprints для изменения разрешения экрана:
Get Game User Settings:
Получите экземпляр класса UGameUserSettings с помощью узла “Get Game User Settings”.
Set Screen Resolution:
Используйте узел “Set Screen Resolution” для установки желаемого разрешения. Укажите ширину и высоту экрана. Укажите, использовать ли полноэкранный режим.
Apply Settings:
Используйте узел “Apply Settings” для применения изменений.
Restart Graphics:
Можете перезапустить графику.
4. Использование C++ для изменения разрешения экрана:
#include "GameFramework/GameUserSettings. h"
Void UMyGameInstance::SetResolution(int32 Width, int32 Height, bool bFullscreen)
{
UGameUserSettings* GameUserSettings = UGameUserSettings::GetGameUserSettings();
if (GameUserSettings)
{
GameUserSettings->SetScreenResolution(FIntPoint(Width, Height));
GameUserSettings->SetFullscreenMode(bFullscreen? EWindowMode::Type::Fullscreen : EWindowMode::Type::Windowed);
GameUserSettings->ApplySettings(false); // false = Не Перезагружать Игру
}
}
5. Поддержка различных разрешений экрана:
Anchor Layout (при использовании UI):
Используйте Anchor Layout для UI элементов, чтобы они правильно отображались на разных разрешениях экрана. Anchor Layout позволяет привязывать UI элементы к границам экрана или к другим элементам UI.
UI Scaling:
Используйте UI Scaling для автоматического масштабирования UI элементов в зависимости от разрешения экрана.
Screen percentage
6. Получение информации о разрешении экрана:
Get Supported Fullscreen Resolutions:
Получите список поддерживаемых разрешений экрана с помощью функции GetSupportedFullscreenResolutions из класса UGameUserSettings.
Get Desktop Resolution:
Получите разрешение рабочего стола с помощью функции GetDesktopResolution из класса UGameUserSettings.
7. Полноэкранный режим (Fullscreen Mode):
Unreal Engine поддерживает несколько режимов полноэкранного режима:
Fullscreen: Эксклюзивный полноэкранный режим. Предоставляет максимальную производительность, но может вызывать проблемы с переключением между окнами. Windowed Fullscreen: Полноэкранный режим без рамки. Предоставляет хорошую производительность и позволяет легко переключаться между окнами. Windowed: Оконный режим.
Используйте функцию SetFullscreenMode из класса UGameUserSettings для установки полноэкранного режима.
8. Оптимизация производительности:
Resolution Scaling:
Используйте Resolution Scaling для динамического изменения разрешения рендеринга в зависимости от производительности. Позволяет поддерживать стабильную частоту кадров, жертвуя качеством изображения.
Dynamic Resolution:
Используйте Dynamic Resolution для автоматической настройки разрешения рендеринга в зависимости от загрузки GPU.
Performance Profiling:
Используйте инструменты профилирования Unreal Engine для выявления узких мест и оптимизации производительности.
Управление разрешением экрана — важный аспект разработки игр в Unreal Engine. Используйте предоставленные инструменты и техники, чтобы обеспечить наилучший визуальный опыт и производительность для игроков на разных устройствах.