Настройке камеры 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, вставим его до блока вращения и подключим между этими блоками.
Заменим узел “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.
Теперь сложим 2 значения перемещения кнопки мыши.
Сохраним и проверим.
Добавим дополнительное управление на стрелки клавиатуры.
1.Зайдем в «AI_Camera_Control» выберем пункт AI_Input_Camera, в кнопках добавим стрелки вверх и вниз. На стрелке вниз установим модификатор отрицания (Negative).
2.Найдем AI_State_Camera в кнопках добавим стрелки вправо и влево. На стрелке влево установим модификатор отрицания (Negative).
Добавим масштабирование на колесико мыши (Zoom)
Далее создадим увеличение и уменьшение масштаба. Для этих целей будем использовать пружинный рычаг, установленный ранее.
Создадим новый ввод – действие ввода – назовем Ai_Mouse_Zoom. В типе данных установим Axis1D.
Далее вернемся к «AI_Camera_Control» добавим «Mappings» – установим “ Ai_Mouse_Zoom” из выпадающего списка выберем «ось колесико мыши».
Далее напишем логику в BP_Camera_Pawn. Найдем блок поворота камерой на мышку и напишем рядом начнем писать логику.
Так ка работаем с пружинным рычагом вытащим на схему ссылку на SpringArm, от него вытащим узел “Set Target Arm Length” и добавим на схему узел Get_Ai_Mouse_Zoom.
Из бокса поворота мыши узел Branch выход false вытащим провод и соединим с узлом “Set Target Arm Length”, теперь получим текущее значение и добавим к нему значение входных узлов.
Вытащим из узла SpringArm узел Get Target Arm Length соединим его с Get_Ai_Mouse_Zoom и передадим его в SET. Теперь если сохраним и проверим, то увидим, что при вращении мыши будет дергаться камера. Чтобы это поправить необходимо создать переменную скорости. CameraSpeedZoom со значением примерно на 100ед, после настройки логики значение можно менять и настроить для комфортного использования.
Произведем умножение Get_Ai_Mouse_Zoom и CameraSpeedZoom подключим к сложению. Для изменения направления движения колёсика мыши можно к узлу умножения добавить контакт -1.
При проверки увидим, что начал изменяться масштаб, приближение и удаление заработало, но теперь вы слишком далеко удаляемся или наоборот проскакивает сквозь карту. Для предотвращения необходимо установить ограничения для максимального удаления и максимального приближения.
Создадим 2 переменные: ZoomMax – 1000ед и ZoomMin – 100ед.
Добавим эти переменные на схему Blueprint.
Первым этапом выясняем, что новая длина пружинного рычага меньше или ровна максимальной длине пружинного рычага.
Вторым этапом сравниваем длину пружинного рычаги и минимальное значение, оно должно быть больше или ровно минимуму.
Соединим оба логических значения через AND и далее AND подключим к Branch вход condition.
Теперь сохраним и проверим. Все работает как надо.
Отображение курсора в окне с игрой.
Вызовем узел Event Begin Player от него выведем функцию (установить отражение мыши) Show Mouse Cursor, установим галочку и последним узлом подключим Get Player Controller.
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/
- Блог по моделированию на Rutub – https://rutube.ru/channel/24865428/
- Статьи по 3д в blender – https://moi3d.ru/category/stati/
- Создание игр на Unreal Engine 5 – https://moi3d.ru/category/unreal-engine/
- Начинающий блог | Дзен (dzen.ru) – Начинающий блог | Дзен (dzen.ru)