Приветствую, друзья, с Вами Будуев Антон. В данной статье мы разберём большинство Blueprint-функций, связанных с местоположением, позицией и локацией объектов. Так называемые Location функции в Unreal Engine (UE4, UE5).
Вскоре выйдет моя бесплатная книга по Blueprints для Unreal Engine в PDF формате. Как она выйдет, рекомендую её скачать, чтобы Вы детально изучили блюпринты Анрил Энджин.
Unreal Engine Location
Location, или, по-другому, местоположение, позиционирование или локация объекта – это фундаментальный аспект работы с 3D-миром в Unreal Engine, определяющий, где объект находится в игровом мире, иначе говоря, его позицию в трёхмерном пространстве игры.
Местоположение в движке Unreal Engine выражается смещением (в сантиметрах 3D-мира движка) относительно начала координат (0, 0, 0) в выбранной системе координат и представлено в виде вектора (vector), содержащего три float-значения:
- X — координата по оси X;
- Y — координата по оси Y;
- Z — координата по оси Z.
При работе с местоположением объекта в Анрил Энджин очень важно понимать концепцию трёх координатных систем.
Всего в движке для любого объекта доступно 3 системы координат:
- мировая,
- относительная (родительская),
- локальная.
На рисунке ниже представлены 2 Актора. Зелёный Актор — постамент для персонажа. И второй Актор — схематичный персонаж. Причём персонаж подсоединён к Актору постамента как дочерний элемент. Так вот, если рассматривать ситуацию с точки зрения Актора персонажа, то у него будут 3 системы координат: локальная — это его собственные оси, относительная — оси его родителя и мировая — оси игрового мира.

Таким образом, работа с Location в Unreal Engine возможна по всем трём координатным системам. Например, задавая смещение по оси X в любой из координатных систем, мы получим совершенно разное передвижение объекта, если, конечно, данный объект имеет поворот относительно мировых или родительских систем координат.
Функции для работы с Location в Unreal Engine
Scene Component
Функции местоположения компонента, доступные в классе Scene Component и других производных от него классах.
- Get World Location — возвращает текущее абсолютное положение компонента в мировом пространстве.
- Set World Location — устанавливает новую мировую позицию компонента в трёхмерном пространстве игры.
- Set World Location And Rotation — устанавливает новую позицию компонента и его разворот в мировых координатах.
- Get Relative Location — возвращает текущее значение относительного местоположения компонента.
- Set Relative Location — устанавливает новые координаты компонента относительно его родительского элемента.
- Set Relative Location And Rotation — задаёт новое положение и угол поворота компонента относительно его родителя.
- Add Relative Location — добавляет смещение к текущей относительной позиции компонента.
- Add World Offset — добавляет смещение к текущей позиции компонента в мировых координатах.
- Add Local Offset — добавляет смещение к текущей позиции компонента в локальной системе координат самого компонента.
Actor
Функции позиционирования объекта, доступные в классе Actor и других производных от него классах.
- Get Actor Location — возвращает текущую позицию объекта Actor в мировых координатах.
- Set Actor Location — устанавливает новую позицию объекта Actor в мировых координатах.
- Set Actor Location And Rotation — одновременно устанавливает позицию и поворот объекта Actor в мировых координатах.
- Set Actor Relative Location — устанавливает новую позицию объекта Актора относительно его родителя.
- Add Actor World Offset — добавляет Актору смещение к его текущей мировой позиции.
- Add Actor Local Offset — добавляет Актору смещение относительно его локальной системы координат.
Pawn
Функции локации объекта, доступные в классе Pawn и других производных от него классах.
- Get Last Update Location — возвращает для объекта Character, управляемого компонентом Character Movement Component, координаты во время последнего обновления его положения.
- Get Nav Agent Location — возвращает текущее местоположение Pawn (обычно AI-контролируемого) на NavMesh.
Controller
Функции местоположения объекта, доступные в классе Controller и других производных от них классах.
- Convert Mouse Location To World Space — преобразует экранные координаты мыши (2D) в мировые координаты (3D) и возвращает два вектора. Первый вектор представляет координаты точки мыши в мировом пространстве, второй — направление, куда указывает мышь. Также возвращает значение False, если не удаётся определить значение координат.
- Convert Screen Location To World Space — преобразует координаты точки на экране (2D) в координаты в мировом пространстве (3D) и возвращает два вектора. Первый вектор представляет координаты точки в мировом пространстве, второй — направление, куда указывает данная точка. Также возвращает значение False, если не удаётся определить значение координат.
- Convert World Location To Screen Location — преобразует координаты точки в мировом пространстве (3D) в координаты на экране (2D). Функция берёт точку в игровом мире и определяет, где она отображается на экране игрока, если она видна. Возвращает сами двумерные координаты на экране, а также значение True, если преобразование прошло удачно. False — в противном случае.
- Get Focal Location — возвращает координаты, на которые в текущий момент сфокусирован Player Controller. Если у контроллера имеется принадлежащий ему Pawn, то в качестве координат фокусировки возвращается местоположение Pawn.
- Set Initial Location and Rotation — устанавливает начальное месторасположение и вращение контроллера. Обычно используется при инициализации / первом создании контроллера.
- Get Camera Location — возвращает текущее месторасположение камеры.
Game
- Get World Origin Location — возвращает вектор, представляющий мировые координаты начала координат (World Origin) текущего уровня (Level). В большинстве случаев это будет вектор (0, 0, 0), но иногда начало координат уровня может быть смещено, например функцией Set World Origin Location.
- Set World Origin Location — устанавливает новое значение начала координат текущего уровня.
Skeletal Mesh
- Get Socket Location — возвращает мировые координаты сокета, размещённого на Static Mesh, Skeletal Mesh или других компонентах.
Effect / Niagara
- Spawn Emitter at Location — создает экземпляр системы частиц (Particle System) в указанном месте в игровом мире и запускает его воспроизведение, позволяя визуальным эффектам появляться в определенной точке мирового пространства.
- Spawn System at Location — создает и запускает экземпляр Niagara System в указанном месте в игровом мире.
- Spawn System at Location with Params — расширенная версия функции Spawn System at Location. Помимо стандартных параметров, она позволяет передавать системе Niagara параметры, специфичные для данного экземпляра, с помощью структуры Niagara System Spawn Info. Это обеспечивает более гибкое управление и настройку систем Niagara при их создании.
Physics
- Add Force at Location — применяет силу к физическому телу в указанной точке в мировом пространстве. Подходит для добавления импульса в указанной точке мирового пространства на определённый промежуток времени. Вызывается на каждом кадре, пока действует сила.
- Add Force at Location Local — применяет силу к физическому телу в указанной точке, но в локальной системе координат компонента. Это означает, что направление силы и местоположение точки приложения интерпретируются относительно координат самого компонента, а не мировых координат. Причем расположение точки силы и её направление должны находиться в пространстве самого физического тела.
- Add Impulse at Location — применяет импульс к физическому телу (его мгновенное изменение скорости) в указанной точке в мировом пространстве.
- Add Velocity Change Impulse at Location — применяет импульс к физическому телу в указанной точке в мировом пространстве. Под импульсом понимается сила, прикладываемая к телу, которая меняет его угловую скорость (при этом масса тела не оказывает никакого влияния на величину этой силы).
Совет. Вскоре выйдет моя бесплатная книга по Blueprints для Unreal Engine в PDF формате. Как она выйдет, рекомендую её скачать, чтобы Вы детально изучили блюпринты Анрил Энджин.