Друзья, приветствую, с Вами Будуев Антон. В данной статье мы обсудим класс компонента Sphere Component (Sphere Collision) в Unreal Engine (UE5, UE4), предоставляющий собой геометрический коллизионный примитив в виде сферы (Sphere).
Вскоре выйдет моя бесплатная книга по Blueprints для Unreal Engine в PDF формате. Как она выйдет, рекомендую её скачать, чтобы Вы детально изучили блюпринты Анрил Энджин.
Sphere Component (Sphere Collision)
Sphere Component (Sphere Collision) в Unreal Engine — это компонент, представляющий собой невидимый в игре коллизионный геометрический примитив в виде сферы (Sphere), который может быть добавлен к любому Актору (Actor) как в Blueprint, так и в C++. Предназначен он преимущественно для реализации простой коллизии (столкновений) или интерактивного объёма (триггерной зоной) для поднимаемых предметов (Pickup). В редакторе границы компонента визуализируются в виде простых окружностей из изогнутых линий, расположенных по трём осям (X, Y, Z).

Перевод официальной справки: Sphere Component — сфера, обычно используемая для простой коллизии. Границы отображаются в редакторе в виде линий.
Зачастую Sphere Component (Sphere Collision) используется для создания простой коллизии у округлых предметов, например у различного рода снарядов. А также для создания интерактивных объёмов у поднимаемых предметов (Pickup), реагирующих на пересечение с игроком и дающих ему возможность взаимодействовать с этим поднимаемым предметом. Например, при помощи Sphere Collision можно создать объём для интерактивности игрока с аптечкой, патронами, ресурсами и так далее.

Основное предназначение Sphere Collision Component — служить простой формой коллизии (столкновения) для различных подвижных округлых объектов Actor (снарядов). А также интерактивным объёмом (триггерной зоной) для активации взаимодействия игрока с поднимаемыми предметами (Pickup).
Наследование классов
Sphere Component наследуется от класса Shape Component, расширяя его функционалом непосредственной реализации коллизионной формы примитива в виде сферы (Sphere).

Настройки Sphere Component (Sphere Collision) во вкладке Details
Ниже мы разберём некоторые опции во вкладке Details, которые используются чаще остальных при настройке Sphere Collision. Остальные же опции вкладки Details полностью аналогичны параметрам компонента статического Меша, изучить которые Вы можете в отдельной статье: Details в Static Mesh Component.
Настройки Sphere
Основные настройки Sphere Collision с точки зрения определения самой сферы немногочисленны. Находятся они во вкладке Details в разделе Shape.

- Sphere Radius — радиус сферы.
- Line Thickness — толщина линии прорисовки самой сферы.
- Shape Color — цвет линий прорисовки самой сферы.
Настройки Rendering
По умолчанию сфера коллизии прорисовывается только в редакторе. На игровом уровне коллизия всегда скрыта. Но при разработке игры для тестов игровых механик часто требуется видеть границы коллизии. В таких ситуациях используют параметр Hidden in Game (скрытый в игре) раздела Rendering вкладки Details. По умолчанию эта опция включена, соответственно, коллизия в игре скрыта. Если же опцию отключить, то границы коллизии в игре станут видны, что можно использовать при тестировании и настройке игровых механик.

Настройки Collision
Ещё один раздел из вкладки Details, который часто используется при настройке Sphere Collision, — это, собственно, настройка самой коллизии, а именно выбор готового пресета коллизии или детальная пользовательская настройка с выбором режима работы коллизии, типа объекта и ответной реакции коллизии на пересечение с другими типами объектов.

Так как коллизия, её типы, режимы, пресеты — это в целом очень обширная тема, то все эти вопросы рассмотрены очень подробно в отдельных развёрнутых статьях:
- что такое пресеты коллизий: Collision Presets;
- что такое типы объектов и ответные реакции: Object Type и Responses;
- что такое режимы работы коллизии: Collision Enabled.
Функции Sphere Component (Sphere Collision)

- Get Scaled Sphere Radius — возвращает радиус сферы с учетом текущего масштаба компонента
- Get Shape Scale — возвращает равномерный масштаб (минимальное значение из коэффициентов масштаба по осям X, Y и Z), который применяется к сфере для корректного расчёта её размера с учетом неоднородного масштабирования объекта.
- Get Unscaled Sphere Radius — возвращает базовое значение радиуса сферы, без учета масштаба компонента.
- Set Sphere Radius — устанавливает новое значение радиуса сферы, без учета текущего масштаба компонента.
Практический урок в Unreal Engine
В качестве практического примера использования Sphere Collision рекомендую изучить следующий урок, где разбирается стандартный шаблон игры от первого лица в Unreal Engine. В данном шаблоне персонаж игрока имеет возможность взаимодействовать с поднимаемым предметом через Sphere Component (Sphere Collision), а именно поднять оружие. Перейти к практике >>
Совет. Вскоре выйдет моя бесплатная книга по Blueprints для Unreal Engine в PDF формате. Как она выйдет, рекомендую её скачать, чтобы Вы детально изучили блюпринты Анрил Энджин.