Москва: проверенные б/у ноутбуки с гарантией и проверкой перед оплатой
+7 906 722-94-45

Главная → Статьи → Разрешения окна Godot: растяжение, пропорции и проверка UI

Разрешения окна Godot 4.4: растяжение, пропорции и проверка UI

Настройка размеров окна Godot 4.4: Canvas Items и Viewport, Keep и Expand, привязки Control, integer scaling и проверочная матрица интерфейса.

Разрешения окна Godot 4.4: растяжение, пропорции и проверка UI

Чтобы интерфейс Godot не ломался на другом экране, разделите базовый размер проекта, реальный размер окна и правила масштабирования содержимого. Выбор одного разрешения в настройках не гарантирует удобное изображение на всех ноутбуках.

Материал относится к Godot 4.4. Здесь разбирается настройка и проверка адаптации окна, а не подбор видеокарты или способ повысить FPS любым уменьшением разрешения. Для pixel art и сложного 3D требования могут различаться.

Зафиксируйте базовый размер

В Multiple resolutions базовые размеры задаются в Display → Window. Это размер, относительно которого вы проектируете содержимое, а не обязательное физическое разрешение монитора каждого игрока.

Например, 1280×720 может быть исходным рабочим полотном. Окно с теми же пропорциями и окно 1280×800 потребуют разных решений для свободной области. До настройки выпишите: допустимы ли полосы, можно ли показать больше игрового мира и должен ли HUD оставаться привязанным к краям.

Сохраните проверенное состояние проекта. Дальше меняйте сначала режим масштабирования, затем правило пропорций, а не несколько параметров одновременно.

Выберите Stretch Mode

В документации 4.4 описаны три основных режима. Их названия не означают три одинаковых способа «сделать всё крупнее».

Режим Что принципиально меняется
Disabled Нет масштабирования содержимого этим механизмом; Stretch Aspect не действует
Canvas Items 2D рисуется в целевом разрешении с масштабированием относительно базового размера; 3D этим режимом не меняется
Viewport Сцена сначала рисуется во viewport базового размера, затем его результат масштабируется под окно

Для Canvas Items нельзя обещать соответствие каждого пикселя спрайта одному пикселю экрана. Для Viewport важно качество масштабирования уже отрисованного результата. Поэтому текст, тонкие линии и pixel art проверяйте визуально, а не только по тому, заполнено ли окно.

В 3D не считайте Canvas Items автоматическим снижением внутреннего разрешения всей сцены. Определите, какие именно данные масштабирует выбранный режим, и отдельно измерьте производительность своего проекта.

Определите правило пропорций

Stretch Aspect действует, когда Stretch Mode не Disabled. Для начала достаточно сознательно сравнить три варианта:

  • Keep сохраняет пропорции и добавляет полосы при несовпадении окна с базовой формой.
  • Expand сохраняет пропорции, но позволяет видеть больше содержимого по одной из осей в зависимости от формы окна.
  • Ignore заполняет окно без сохранения исходных пропорций, поэтому круги и персонажи могут выглядеть растянутыми.

У Keep Width и Keep Height свои направленные правила расширения, описанные в первоисточнике. Не выбирайте их по одному названию: проверьте, какая область становится видимой при узком, высоком и широком окне.

Решение зависит и от игрового дизайна. Дополнительная видимая область может раскрыть объекты за предполагаемой границей уровня или изменить обзор в соревновательной игре. Чёрные полосы не обязательно ошибка, если постоянная область обзора — осознанное требование.

Настройте привязки Control отдельно

Stretch не заменяет адаптивное расположение интерфейса. Руководство Size and anchors описывает anchors как относительные точки родительского Control или viewport, а offsets — смещения относительно этих точек.

Для кнопки у правого нижнего края нужна соответствующая привязка к родителю, а не только позиция, удачная в окне автора. Для центрального блока проверьте якоря по центру и корректные смещения. Готовые Anchor Presets позволяют задать распространённое выравнивание без ручного ввода каждого значения.

Учитывайте именно родителя. Элемент может быть правильно привязан к маленькой панели, но вся панель при этом оставаться в неподходящем месте. Проверьте дерево Control сверху вниз и не пытайтесь исправлять неверную структуру бесконечным увеличением шрифта.

Не перепутайте Scale с универсальным улучшением

В документации действие Scale зависит от режима. Для Canvas Items он дополнительно масштабирует 2D-содержимое. Для Viewport изменение Scale влияет на разрешение viewport, что меняет и крупность пикселей, и условия рендеринга.

Integer scaling ограничивает масштаб целыми значениями и помогает избежать дробного масштабирования pixel art, но не обещает, что любое исходное изображение идеально заполнит любой экран. Проверьте доступную область и читаемость при реальных размерах окна.

Не называйте уменьшение render resolution безусловной оптимизацией интерфейса. Сначала проверьте изображение, затем — показатели профилировщика, сохраняя одинаковую сцену.

Проверочная матрица перед выдачей

Для своего базового полотна проверьте хотя бы исходные пропорции, более высокое и более широкое окно, небольшой размер и полноэкранный запуск. Пример набора для дизайна 1280×720: 1280×720, 1280×800 и 1600×900 плюс свободное изменение формы окна.

В каждом случае проверьте края HUD, длинные надписи, кнопки, всплывающие панели, возможность нажать элементы мышью и отсутствие неожиданно видимой области мира. Повторите на экспортированной сборке. Скриншот редактора не подтверждает поведение готового окна на другом устройстве.

FAQ

Canvas Items уменьшает разрешение 3D?

В описанном режиме он не меняет 3D. Не переносите поведение Viewport на Canvas Items.

Почему Aspect ничего не меняет?

Сначала проверьте Stretch Mode: при Disabled настройка Stretch Aspect не действует.

Чёрные полосы всегда нужно убрать?

Нет. Keep может намеренно сохранять фиксированные пропорции. Выбирайте между полосами, дополнительной областью и искажением осознанно.