Blueprint-функции Get Attach Parent, Get Attach Socket Name и Get Parent Components в Unreal Engine (UE4, UE5)

Друзья, приветствую, с Вами Будуев Антон. В данной статье мы обсудим Blueprint-функции Get Attach Parent, Get Attach Socket Name и Get Parent Components, доступные в классе компонента сцены Unreal Engine (UE4, UE5).

При разборе данных функций мы будем использовать шаблон проекта игры от первого лица игрового движка Анрил Энджин (UE5), а конкретно компонент оружия BP_Weapon_Component по пути /All/Game/FirstPerson/Blueprints.

Также, так как разбираемые функции доступны в классе компонента сцены, то предварительно в отдельной статье можете изучить саму концепцию компонентов — Unreal Engine Components.

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

Get Attach Parent

Функция Get Attach Parent в Unreal EngineBlueprint-функция Get Attach Parent в Unreal Engine используется для получения компонента, к которому прикреплён текущий компонент. Доступна она только для компонентов класса Scene Component и выше.

Get Attach Parent используют тогда, когда необходимо узнать, к какому родительскому компоненту прикреплен конкретный компонент.

Параметры:

  • Target (scene component, по умолчанию Self) — текущий компонент.
  • Return Value (scene component) — возвращаемый параметр. Возвращается компонент сцены, к которому присоединён компонент из параметра Target.

Итак, для примера использования функции откроем компонент оружия BP_Weapon_Component и по событию Event Tick запустим нижеследующий код. Когда персонаж подберёт оружие, данный компонент активируется и функция Get Attach Parent вернёт нам родительский компонент First Person Mesh (SK_Mannequin_Arms) блюпринта BP_FirstPersonCharacter, к которому и прикреплен текущий компонент оружия BP_Weapon_Component.

Скриншот

Функция Get Attach Parent в Unreal Engine возвращает родительский компонент First Person Mesh, к которому прикреплен текущий компонент оружия BP_Weapon_Component
Функция Get Attach Parent в Unreal Engine возвращает родительский компонент First Person Mesh, к которому прикреплен текущий компонент оружия BP_Weapon_Component

Код на BlueprintUE

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


Get Attach Socket Name

Функция Get Attach Socket Name в Unreal EngineВ Unreal Engine функция Get Attach Socket Name используется для получения имени сокета (точки привязки) родительского компонента, к которому прикреплен текущий компонент. Функция доступна только для компонентов класса Scene Component (и выше), а также предназначена для работы с родительскими Skeletal Mesh Component и другими компонентами, имеющими сокеты.

Ключевым моментом здесь является то, что Get Attach Socket Name возвращает имя только в том случае, если компонент прикреплен к сокету, а не просто к другому компоненту напрямую.

* Сокеты позволяют прикреплять компоненты к конкретным точкам привязки на родительском Акторе или компоненте, что особенно полезно для создания сложных иерархий объектов с точным прикреплением объектов. Сами сокеты создаются в Skeletal Mesh ассетах, непосредственно на самих косточках скелета.

Параметры:

  • Target (scene component, по умолчанию Self) — текущий компонент.
  • Return Value (name) — возвращаемый параметр. Если компонент из параметра Target присоединён к сокету родительского компонента, возвращается имя этого сокета, в противном случае — пустое значение None.

Важно! Если присутствует вариант, что компонент будет присоединён не через сокет, а напрямую с компонентом, то результат возвращения функции Get Attach Socket Name необходимо всегда проверять на валидность (Is Valid). Чтобы возвращённое значение не было равно None, иначе в игре может возникнуть ошибка.

Для примера использования функции, как и выше, откроем компонент оружия BP_Weapon_Component и по событию Event Tick запустим нижеследующий код. Когда персонаж подберёт оружие, данный компонент активируется и функция Get Attach Socket Name возвратит имя сокета GripPoint, к которому присоединился компонент оружия.

Также в данном примере результат выполнения функции на валидность (Is Valid) можно не проверять, так как именно в данном шаблоне игры априори компонент оружия всегда прикрепляется к родительскому Mesh компоненту через сокет.

Скриншот

Функция Get Attach Socket Name в Unreal Engine возвращает имя сокета GripPoint, к которому присоединён компонент оружия
Функция Get Attach Socket Name в Unreal Engine возвращает имя сокета GripPoint, к которому присоединён компонент оружия

Код на BlueprintUE

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


Get Parent Components

Функция Get Parent Components в Unreal EngineФункция Get Parent Components в Unreal Engine Blueprints возвращает для текущего компонента массив всей иерархии родительских компонентов, включая Root Component (корневой компонент Актора). Функция используется только для компонентов класса Scene Component и выше.

Параметры:

  • Target (scene component, по умолчанию Self) — текущий компонент.
  • Parents (array scene component) — возвращаемый параметр. Возвращается массив всего дерева родительских компонентов, к которым присоединён компонент из параметра Target.

Для примера использования функции, опять же, как и выше, откроем компонент оружия BP_Weapon_Component и по событию Event Tick запустим нижеследующий код. Когда персонаж подберёт оружие, данный компонент активируется и функция Get Parent Components возвратит массив всего дерева иерархии родительских компонентов, к которым присоединился компонент оружия (включая Root Component): First Person Mesh -> First Person Camera -> Collision Cylinder (корневой компонент, коллизия).

Скриншот

Функция Get Parent Components в Unreal Engine возвращает массив всего дерева иерархии родительских компонентов, к которым присоединён компонент оружия
Функция Get Parent Components в Unreal Engine возвращает массив всего дерева иерархии родительских компонентов, к которым присоединён компонент оружия

Код на BlueprintUE

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


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

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

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