Unreal Engine

Настройке камеры Unreal Engine для RTS

Настройке камеры Unreal Engine для RTS

Это 4я статья по настройке камеры Unreal Engine для rts.

В этой статье мы установим перемещение камеры в право и влево на кнопки A и D, так же добавим управление камерой на стрелки и настроим перемещение на мышку. Установим масштабирование (Zoom) на колесико мыши, добавим курсор в игру.

Видео в конце статьи.

1. Первая часть статьи – https://moi3d.ru/unreal-engine-5-5-1-kamera-nastrojka-peremeshheniya/

2. Вторая часть статьи – https://moi3d.ru/unreal-engine-5-kamera/

3. Третья часть статьи – https://moi3d.ru/unreal-kamera-dvizhenie-na-myshku/

Настраиваем передвижение A и D, Blueprint логику перемещения

Перейдем в панель управления в папку “input” и добавим очередное «действие ввода». Дадим название – “Ai_State_Camera”. В нем изменим тип значения на ось 1D (Axis1D).

В «AI_Camera_Control» произведем назначение кнопок, добавим «Mappings» – установим “Ai_State_Camera”. Ниже выберем кнопки, которые хотим назначить D и A. В А установим модификатор отрицания (Negative).

Перейдем к настройке Blueprint.

Выберем «BP_Camera_Pawn» – «Event Graph», скопируем блок перемещения на кнопки W и S, вставим его до блока вращения и подключим между этими блоками.

Настройке камеры Unreal Engine для RTS

Заменим узел “Get Forward Vector” на узел “Get Right Vector” и узел “Get_ AI_Input_Camera” на узел “Get_ AI_State_Camera”.

Подключим Event Tick. Сохраним и проверим, после запуска увидим наше перемещение на право и налево при нажатии на A и D.

 

Настраиваем передвижение в право и влево на центральную кнопку мыши и настраиваем Blueprint логику перемещения.

Добавим в блок с логикой передвижения мыши на кнопку узел “Get Right Vector”, произведем расчет вектора смещения. Умножим на Get_ AI_Mouse_Control выход return value x и на переменную скорости CameraMaxSpeed, Event Tick.

Настройке камеры Unreal Engine для RTS

 

 

Теперь сложим 2 значения перемещения кнопки мыши.

Настройке камеры Unreal Engine для RTS

 

 

Сохраним и проверим.

Добавим дополнительное управление на стрелки клавиатуры.

1.Зайдем в «AI_Camera_Control» выберем пункт AI_Input_Camera, в кнопках добавим стрелки вверх и вниз. На стрелке вниз установим модификатор отрицания (Negative).

2.Найдем AI_State_Camera в кнопках добавим стрелки вправо и влево. На стрелке влево установим модификатор отрицания (Negative).

 

Настройке камеры Unreal Engine для RTS

 

 

Добавим масштабирование на колесико мыши (Zoom)

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

Создадим новый ввод – действие ввода – назовем Ai_Mouse_Zoom. В типе данных установим Axis1D.

Далее вернемся к «AI_Camera_Control» добавим «Mappings» – установим “ Ai_Mouse_Zoom” из выпадающего списка выберем «ось колесико мыши».

 

Далее напишем логику в BP_Camera_Pawn. Найдем блок поворота камерой на мышку и напишем рядом начнем писать логику.

Так ка работаем с пружинным рычагом вытащим на схему ссылку на SpringArm, от него вытащим узел “Set Target Arm Length” и добавим на схему узел Get_Ai_Mouse_Zoom.

Настройке камеры Unreal Engine для RTS

 

Из бокса поворота мыши узел Branch выход false вытащим провод и соединим с узлом “Set Target Arm Length”, теперь получим текущее значение и добавим к нему значение входных узлов.

Вытащим из узла SpringArm узел Get Target Arm Length соединим его с Get_Ai_Mouse_Zoom и передадим его в SET.  Теперь если сохраним и проверим, то увидим, что при вращении мыши будет дергаться камера. Чтобы это поправить необходимо создать переменную скорости. CameraSpeedZoom со значением примерно на 100ед, после настройки логики значение можно менять и настроить для комфортного использования.

Произведем умножение Get_Ai_Mouse_Zoom и CameraSpeedZoom подключим к сложению. Для изменения направления движения колёсика мыши можно к узлу умножения добавить контакт -1.

Настройке камеры Unreal Engine для RTS

 

При проверки увидим, что начал изменяться масштаб, приближение и удаление заработало, но теперь вы слишком далеко удаляемся или наоборот проскакивает сквозь карту. Для предотвращения необходимо установить ограничения для максимального удаления и максимального приближения.

Создадим 2 переменные: ZoomMax – 1000ед и ZoomMin – 100ед.

Добавим эти переменные на схему Blueprint.

Первым этапом выясняем, что новая длина пружинного рычага меньше или ровна максимальной длине пружинного рычага.

 

Вторым этапом сравниваем длину пружинного рычаги и минимальное значение, оно должно быть больше или ровно минимуму.

 

Соединим оба логических значения через AND и далее AND подключим к Branch вход condition.

Теперь сохраним и проверим. Все работает как надо.

Отображение курсора в окне с игрой.

Вызовем узел Event Begin Player от него выведем функцию (установить отражение мыши) Show Mouse Cursor, установим галочку и последним узлом подключим Get Player Controller.

Настройке камеры Unreal Engine для RTS

1. Первая часть статьи – https://moi3d.ru/unreal-engine-5-5-1-kamera-nastrojka-peremeshheniya/

2. Вторая часть статьи – https://moi3d.ru/unreal-engine-5-kamera/

3. Третья часть статьи – https://moi3d.ru/unreal-kamera-dvizhenie-na-myshku/

 

  1. Блог по моделированию на Rutub – https://rutube.ru/channel/24865428/
  2. Статьи по 3д в blender – https://moi3d.ru/category/stati/
  3. Создание игр на Unreal Engine 5 – https://moi3d.ru/category/unreal-engine/
  4. Начинающий блог  | Дзен (dzen.ru) – Начинающий блог | Дзен (dzen.ru)