Unreal Engine blueprint, простое движение объекта
Unreal Engine blueprint, простое движение объекта
Для создания любой игры, нам понадобиться движущиеся объекты. Создадим цель для игры от первого лица. Для тестового обзора сделаю движение обыкновенного куба. Для этого создаем Blueprint Class.
В открывшемся окне выбираем класс Actor, даем название «BP_CubeTarget».
Двумя щелчками открываем «BP_CubeTarget», появиться дополнительный редактор.
В левой части редактора во вкладке «Components» щелкаем на +ADD и добавляем cube.
Вставляем cub на начало координат, перемещаем его за стрелочки, так же сразу назначим кубу материал, для отличия на сцене. Для этого в правой части редактора есть панель Details, прокручиваем ниже и находим Materials и назначаем материал. Сохраняем.
После этого переходим во вкладу Event Graph для построения логики движения объекта. Логика будет состоять из узлов. Для составления логики необходимо получить информацию о местоположении объекта на сцене, а так же задать направление и скорость движения.
Первым этапом подготовимся и создадим переменные скорости и направления. В левой части редактора находим вкладку VARIABLES (переменная), жмем на кнопку «+», создается переменная. Даем название переменной «SpeedCub» в левой части редактора details в строке variable type установим значение Float (число с плавающей точкой), так как установленная скорость может быть и не целым числом. Задаем вторую переменную направления, даем ей название Direction_cube в строке variable type установим значение Vector. Сохраняем изменения и после этого можем установить скорость в переменной SpeedCub и направление в переменной Direction_cube (x, y, z. Установим х -10). Опять сохраним изменения.
Создаем логику движения blueprint
Итак, подготовку к составлению логики закончили. Перетаскиваем Direction_cube на сетку редактора.
Так как логика состоит из разных числовых параметров. Необходимо произвести нормализацию значения вектора для дальнейшей работы. Из узла вытягиваем провод и в появившемся окне ищем узел Normalize.
Ниже перетаскиваем переменную SpeedCub, ее умножаем на узел Delta (время). Этот узел отвечает за сохранение одинаковой скорости при разной частоте кадров в секунду.
Получившиеся значения направления и скорости необходимо перемножить и добавить к текущему местоположению.
Чтобы получить текущее местоположение перетаскиваем на сетку DefaultScene, получаем узел и из него вытягиваем провод, в поисковике ищем узел GetWorldTransform. Из GetWorldTransform вытягиваем и подключаем узел BreakTransform. Данный узел разбивает GetWorldTransform на составляющие: положение, вращение, масштаб.
После сложение всех значение добавляем узел MakeTransform (создать преобразование), что означает конец вычислений.
Так как в узле MakeTransform три входа то к первому подключаем вычисление, а ко второму и третьему подключаем вращение и масштаб из узла узел BreakTransform.
Теперь запускаем логику. Для этого добавляем справа EventTick (каждый кадр). Чтобы выполнять перемещение добавляем узел SetActorTransform.
Соединяем EventTick с SetActorTransform и наше вычисление из Returm Value к New Transform. Сохраняем и компилируем. Вынесем наш куб на сцену и попробуем запустить.
Видим как наш куб начал неспешное движение в сторону, полностью игнорируя все объекты.
Улучшаем логику движения blueprint
Теперь улучшаем нашу логику, делаем так, чтобы куб двигался из одной точки и с течением определенного времени начинал двигаться обратно. Для этого вытащим два раза Direction_cube, установим разные значения (10, -10).
Для переключения направления используем узел Flip Flop, соединим.
Добавим последний узел времени Delay, установим задержку в секундах.
Соберем логику в единое целое, сохраняем и запускаем.
Наблюдая за кубом, увидим, что куб двигается в одну сторону и в прошествии установленного времени, возвращается.
Можно поэкспериментировать со значениями времени, направления, скорости и получить разные результаты.
Для помощи в развитии и поддержании отечественного сайта: ЮMoney — 4100 1180 2329 7590
-
Простые материалы в «Unreal Engine». – https://moi3d.ru/unreal-engine-materials/
-
Unreal Engine blueprint, простое движение объекта – https://moi3d.ru/unreal-engine-blueprint-prostoe-dvizhenie-obekta/
-
Unreal Engine blueprint, простая смена материала при попадании. – https://moi3d.ru/unreal-engine-blueprint-smena-materiala-pri-popadanii/
-
Unreal Engine blueprint передвижение персонажа, бег (спринт). – https://moi3d.ru/unreal-engine-blueprint-peredvizhenie-personazha-beg-sprint/
-
Настройка приближения камеры, прицеливание (zoom). – https://moi3d.ru/igry-na-unreal-engine-pricelivanie-zoom/
-
Создание игры на Unreal Engine. Добавление звукового эффекта, эффекта взрыва и удаление объекта со сцены. – https://moi3d.ru/sozdanie-igry-na-unreal-engine-5/
-
Создание игры на Unreal Engine. Создание пользовательского интерфейса в Unreal Engine. – https://moi3d.ru/sozdanie-igry-na-unreal-engine/
-
Разработка игры на Unreal Engine. Подключение пользовательского интерфейса в Unreal Engine. Часть 2. – https://moi3d.ru/razrabotka-igry-na-unreal-engine/
Полезные ссылки:
- Блог по моделированию на Rutub – https://rutube.ru/channel/24865428/
- Статьи по 3д в blender – https://moi3d.ru/category/stati/
- Создание игр на Unreal Engine 5 – https://moi3d.ru/category/unreal-engine/