Unreal Engine Actor Location — изменение локации Актора

Друзья, приветствую, с Вами Будуев Антон. В данной статье мы рассмотрим 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Функция 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) для текущего объекта Актора, а фактически для его корневого компонента.
Функция GetActorLocation в Unreal Engine возвращает местоположение текущего Актора (корневого компонента) в мировых координатах
Функция Get Actor Location в Unreal Engine возвращает местоположение текущего Актора (корневого компонента) в мировых координатах

Set Actor Location

Функция 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 используется, например, для установки начального положения объекта Актора в игровом мире, для перемещения или его телепортации в новое место.

Скриншот

Функция SetActorLocation перемещает текущий Актор (его корневой компонент) в новое местоположение в мировых координатах
Функция Set Actor Location перемещает текущий Актор (его корневой компонент) в новое местоположение в мировых координатах

Код на BlueprintUE

Если код отображается без связей, нажмите сверху кода на кнопку «Graph» Если код отображается без связей, нажмите сверху кода на кнопку "Graph"


Set Actor Location And Rotation

Функция SetActorLocationAndRotationФункция Set Actor Location And Rotation в Unreal Engine одновременно устанавливает мировую позицию и поворот объекта Actor. Данная функция аналогична рассмотренной ранее функции, за исключением того, что в добавок она позволяет устанавливать новое значение угла разворота.

Эта функция является более эффективной, чем раздельный вызов Set Actor Location и Set Actor Rotation, так как она выполняет обе операции за один проход.

Разбирать параметры данной функции мы не будем, так как они полностью соответствуют тем, которые мы уже рассматривали, кроме одного — в текущей функции есть один дополнительный параметр New Rotation, позволяющий задать новый угол поворота в мировых координатах.

Set Actor Relative Location

Функция Set Actor Relative LocationВ Анрил Энджин функция Set Actor Relative Location устанавливает новую позицию объекта Актора относительно его родителя.

Функция используется в том случае, когда Актор присоединён к другому объекту в качестве дочернего и при этом необходимо точно проконтролировать его местоположение относительно родительского элемента. Например, тогда, когда Актор был присоединён к другому функцией Attach Actor To Actor (при прикреплении оружия к персонажу или детали машины, которые должны двигаться с основным объектом).

Параметры Set Actor Relative Location полностью идентичны параметрам других функций, которые мы разбирали выше, за исключением параметра New Location. В текущей функции вместо него используется параметр New Relative Location, в который необходимо передать новые относительные координаты.

Практические уроки в Unreal Engine

В качестве практики по реализации функций изменения местоположения объектов Actor, Вы можете посмотреть следующие уроки, где применяются рассматриваемые функции:

  1. Создание базового передвижения объекта класса Pawn (применяем функцию Set Actor Location). Перейти к практике >>
  2. Система патрулирования территории для NPC (применяем функцию Get Actor Location). Перейти к практике >>
  3. Добавляем импульс к объекту, с которым столкнулся снаряд (применяем функцию Get Actor Location). Перейти к практике >>

Совет. Вскоре выйдет моя бесплатная книга по Blueprints для Unreal Engine в PDF формате. Как она выйдет, рекомендую её скачать, чтобы Вы детально изучили блюпринты Анрил Энджин.

Оцените статью
( 1 оценка, среднее 5 из 5 )
Поделитесь этой статьей со своими знакомыми в социальных сетях, возможно, эта статья кому-то будет полезна
Unreal Engine - это просто
Добавить комментарий

Нажимая на кнопку "Отправить комментарий", я даю согласие на обработку персональных данных и принимаю политику конфиденциальности.