Друзья, приветствую, с Вами Будуев Антон. В данной статье мы рассмотрим Blueprint-функции изменения местоположения объектов Актора в Unreal Engine (UE4, UE5), а именно: Get Actor Location, Set Actor Location и Set Actor Relative Location.
Вскоре выйдет моя бесплатная книга по Blueprints для Unreal Engine в PDF формате. Как она выйдет, рекомендую её скачать, чтобы Вы детально изучили блюпринты Анрил Энджин.
Get Actor Location
Функция Get Actor Location в Unreal Engine вычисляет и возвращает текущую позицию объекта Actor в мировых координатах (World Location). Это важнейшая функция для работы с трансформацией объектов в игре, являясь частью класса Actor, она доступна для всех Blueprint-классов, объекты которых могут быть размещены в игровом мире.
Фактически Get Actor Location является удобной обёрткой, которая возвращает мировую позицию корневого компонента (Root Component) этого Актора. Из этого следует, что если Root Component смещён относительно центра Актора, то функция вернёт позицию Root Component, а не геометрический центр объекта Актора.
Параметры:
- Target (Actor, по умолчанию Self) — текущий Актор, для которого необходимо получить мировые координаты.
- Return Value (vector) — возвращаемый параметр. Возвращает мировые координаты в виде вектора (X, Y, Z) для текущего объекта Актора, а фактически для его корневого компонента.
Set Actor Location
Функция Set Actor Location в Unreal Engine устанавливает новую позицию объекта Actor в мировых координатах (World Location). Это одна из базовых функций для перемещения объектов в игре, позволяющая точно управлять положением Актора в пространстве.
Фактически Set Actor Location устанавливает мировую позицию Root Component (корневого компонента) этого Actor.
Параметры:
- Target (Actor, по умолчанию Self) — текущий Актор, для которого необходимо установить новые координаты.
- New Location (vector, по умолчанию X 0,0; Y 0,0; Z 0,0) — вектор, представляющий новую мировую позицию, куда будет перемещен объект Актора.
- Sweep (bool, по умолчанию False) — необязательный параметр, который можно использовать для проверки столкновений при перемещении Актора. Если установлено значение True, то перемещение будет происходить с учетом столкновений с другими объектами. В случае возникновения такого события, перемещение остановится, а информация о столкновении будет возвращена в параметре Sweep Hit Result. При значении False столкновения текущего Актора с любыми объектами будут проигнорированы.
- Teleport (bool, по умолчанию False) — параметр, определяющий, как будет перемещаться физика компонента. При значении True физика телепортируется в новые координаты в том же состоянии, в каком она была до перемещения Актора. При значении False физика будет обрабатывать само перемещение, из-за чего (при быстром перемещении) могут возникнуть артефакты физики (неправильные, нереалистичные расчёты).
- Sweep Hit Result (structure) — возвращаемый параметр. Структура, возвращающая результаты столкновения Актора с другим объектом при включенной опции Sweep. Так как структура сложная, её можно разделить нодой Break Hit Result.
- Return Value (bool) — возвращаемый параметр. Возвращает значение True, если перемещение в новые координаты полностью состоялось (при отключенном параметре Sweep) или если перемещение началось, но остановилось из-за столкновения (при включенном параметре Sweep), False — в противном случае.
Функция Set Actor Location используется, например, для установки начального положения объекта Актора в игровом мире, для перемещения или его телепортации в новое место.
Скриншот
Код на BlueprintUE
Set Actor Location And Rotation
Функция Set Actor Location And Rotation в Unreal Engine одновременно устанавливает мировую позицию и поворот объекта Actor. Данная функция аналогична рассмотренной ранее функции, за исключением того, что в добавок она позволяет устанавливать новое значение угла разворота.
Эта функция является более эффективной, чем раздельный вызов Set Actor Location и Set Actor Rotation, так как она выполняет обе операции за один проход.
Разбирать параметры данной функции мы не будем, так как они полностью соответствуют тем, которые мы уже рассматривали, кроме одного — в текущей функции есть один дополнительный параметр New Rotation, позволяющий задать новый угол поворота в мировых координатах.
Set Actor Relative Location
В Анрил Энджин функция Set Actor Relative Location устанавливает новую позицию объекта Актора относительно его родителя.
Функция используется в том случае, когда Актор присоединён к другому объекту в качестве дочернего и при этом необходимо точно проконтролировать его местоположение относительно родительского элемента. Например, тогда, когда Актор был присоединён к другому функцией Attach Actor To Actor (при прикреплении оружия к персонажу или детали машины, которые должны двигаться с основным объектом).
Параметры Set Actor Relative Location полностью идентичны параметрам других функций, которые мы разбирали выше, за исключением параметра New Location. В текущей функции вместо него используется параметр New Relative Location, в который необходимо передать новые относительные координаты.
Практические уроки в Unreal Engine
В качестве практики по реализации функций изменения местоположения объектов Actor, Вы можете посмотреть следующие уроки, где применяются рассматриваемые функции:
- Создание базового передвижения объекта класса Pawn (применяем функцию Set Actor Location). Перейти к практике >>
- Система патрулирования территории для NPC (применяем функцию Get Actor Location). Перейти к практике >>
- Добавляем импульс к объекту, с которым столкнулся снаряд (применяем функцию Get Actor Location). Перейти к практике >>
Совет. Вскоре выйдет моя бесплатная книга по Blueprints для Unreal Engine в PDF формате. Как она выйдет, рекомендую её скачать, чтобы Вы детально изучили блюпринты Анрил Энджин.