1. Настройка проекта и базовые принципы мобильного ввода в UE5
Настройка проекта и базовые принципы мобильного ввода в UE5
Добро пожаловать в курс по созданию мобильного управления в Unreal Engine 5! Это первая статья, и наша цель — заложить прочный фундамент. Многие новички совершают ошибку, пытаясь сразу создать сложные экранные джойстики, не настроив предварительно сам проект и не разобравшись, как движок воспринимает нажатия на экран.
В этой статье мы разберем, как подготовить проект для мобильной разработки, чем отличается мышь от пальца с точки зрения логики движка, и как активировать стандартные инструменты ввода, которые уже есть в Unreal Engine 5.
Особенности мобильного ввода
Прежде чем открывать редактор, давайте поймем теорию. Управление на ПК (клавиатура и мышь) и на консолях (геймпад) — это физические устройства с тактильной отдачей. Мобильное управление — это, по сути, иллюзия.
Экран телефона — это плоская поверхность, которая не дает обратной связи. Игрок не чувствует, где находится кнопка, он должен ее видеть. Кроме того, есть фундаментальное техническое различие:
* Мышь: Имеет курсор, который всегда находится в одной точке (X, Y). Нажатие — это событие в этой точке. * Мультитач (Multitouch): Экран телефона может отслеживать несколько нажатий одновременно. Каждое касание имеет свой уникальный идентификатор (Finger Index).
!Сравнение мультитач-ввода и ввода мышью: пальцы имеют индексы, мышь — только координаты курсора.
В Unreal Engine 5 мы будем использовать систему Enhanced Input, которая стала стандартом и отлично подходит для обработки таких сложных сценариев.
Шаг 1: Настройка проекта для мобильной платформы
Чтобы Unreal Engine корректно обрабатывал касания и оптимизировал графику, нужно правильно задать настройки при создании проекта или изменить их в существующем.
Создание нового проекта
Если вы создаете проект с нуля, в окне Project Defaults выберите следующие параметры:
Настройка существующего проекта
Если проект уже создан, перейдите в настройки:
Эти настройки не только меняют качество рендеринга, но и активируют специфические для мобильных устройств функции ввода.
Шаг 2: Эмуляция касаний мышью
Разрабатывать мобильную игру, постоянно скидывая билд на телефон (Build & Cook), очень долго. Нам нужно тестировать управление прямо в редакторе. Для этого мы научим движок воспринимать клик мыши как касание пальцем.
> Важно: Эта настройка работает только в редакторе. На реальном устройстве она игнорируется, так как там есть настоящий тачскрин.
Теперь, когда вы запустите игру в окне Viewport, клик левой кнопкой мыши будет считаться касанием пальца с индексом 0 (Finger Index 0).
Шаг 3: Enhanced Input и мобильные устройства
Unreal Engine 5 использует систему Enhanced Input System (EIS). Это мощная прослойка между «железом» и логикой игры. Вместо того чтобы писать код «Если нажата кнопка A», мы говорим «Если сработало действие Jump».
Для мобильного управления это критически важно, потому что мы можем привязать одно и то же действие (например, «Движение») и к стику геймпада, и к клавишам WASD, и к виртуальному джойстику на экране.
Основные компоненты EIS:
IA_Move, IA_Jump). Оно ничего не знает о кнопках, оно просто передает данные (например, вектор движения).IMC_Default клавиша Space вызывает IA_Jump.Шаг 4: Включение стандартного сенсорного интерфейса
В Unreal Engine есть встроенный механизм для быстрого создания мобильного управления — Touch Interface. Это те самые два кружочка (виртуальные стики), которые вы могли видеть в стандартных шаблонах.
Даже если в будущем мы захотим сделать свой уникальный дизайн кнопок, для начала работы и прототипирования стандартный интерфейс идеален. Он уже настроен на работу с Enhanced Input.
Как активировать виртуальные джойстики:
DefaultVirtualJoysticks (для двух стиков) или LeftVirtualJoystickOnly (только для движения).Если вы запустите игру сейчас в режиме Mobile Preview, вы увидите эти джойстики.
Как запустить Mobile Preview:
Обычный запуск (Play in Editor) может не показать джойстики, если движок думает, что вы на ПК. Чтобы гарантированно увидеть результат:
Откроется отдельное окно, эмулирующее мобильное устройство. Там джойстики будут видны и функциональны.
Постоянное отображение джойстиков (для отладки)
Иногда неудобно каждый раз запускать отдельное окно Mobile Preview. Вы можете заставить джойстики появляться даже в обычном окне редактора.
Для этого в Project Settings -> Input поставьте галочку Always Show Touch Interface. Теперь джойстики будут видны всегда, даже если вы играете с клавиатуры. Это очень удобно для настройки их положения и размера.
Логика работы в Blueprint
Давайте посмотрим, как это выглядит в коде (Blueprint). Если вы используете шаблон Third Person Template, откройте блюпринт персонажа (BP_ThirdPersonCharacter).
Вы увидите событие IA_Move. Заметьте, там нет никакой проверки «это телефон или компьютер?». Логика едина:
Виртуальный джойстик, который мы включили в настройках, автоматически посылает значения в IA_Move, точно так же, как это делает физический геймпад. Ось Y джойстика передает движение вперед/назад, ось X — влево/вправо.
Это и есть главная сила Unreal Engine 5: вы настраиваете логику персонажа один раз, а затем просто подключаете разные интерфейсы ввода.
Резюме
Мы подготовили почву для создания полноценного мобильного управления.
Что мы сделали:
В следующей статье мы пойдем дальше и научимся создавать свои собственные кнопки и виджеты, чтобы не зависеть от стандартных «кружочков» Unreal Engine, и разберем, как связывать UMG-виджеты с Input Actions.