- Scene Component
- Наследование класса
- Родительский класс
- Дочерние классы
- Attach Scene Components и иерархия компонентов
- Ключевые особенности Scene Component
- Настройки Details
- Transform
- Rendering
- Physics
- LOD
- Функции класса Scene Component
- Функции прикрепления компонентов
- Изменение локации компонентов
- Изменение поворота компонента
- Socket (сокеты)
- Векторы
- Physics (физика)
- Visible (видимость)
- Изменение масштаба
- Изменение трансформации
- Другие функции
Друзья, приветствую, с Вами Будуев Антон. В данной статье мы обсудим класс Scene Component в Unreal Engine или, как его ещё называют, компонент сцены в Blueprint UE5 (UE4).
Но, прежде чем разбираться с компонентом сцены, рекомендую изучить более детально саму концепцию компонентов в движке Анрил Энджин, сделать это Вы можете в отдельной статье: Unreal Engine Component.
Вскоре выйдет моя бесплатная книга по Blueprints для Unreal Engine в PDF формате. Как она выйдет, рекомендую её скачать, чтобы Вы детально изучили блюпринты Анрил Энджин.
Scene Component
Scene Component в Unreal Engine — это базовый класс для всех компонентов, которые могут иметь пространственное положение в мире (Transform) и участвовать в иерархии привязки (Attachment Hierarchy). То есть, данный класс предоставляет фундаментальные свойства компонентам, такие как позиция, вращение и масштаб, необходимые для размещения объектов в игровом мире, а также даёт возможность иерархического присоединения к другим компонентам сцены, образуя древовидную структуру. Это позволяет создавать сложные иерархии объектов, где трансформация дочернего компонента зависит от трансформации родительского.
Перевод официальной справки: Scene Component — обладает преобразованием (Transform) и поддерживает прикрепление (Attachment), но не имеет возможностей рендеринга или коллизий. Полезен как «пустой» компонент в иерархии для смещения других компонентов.
Сам по себе Scene Component не отображается визуально, у него отсутствует физическое представление и коллизия, и не имеет специфической функциональности, но при этом он служит основой для других компонентов, которые нуждаются в пространственном положении и трансформации в 3D-мире.

Основная функциональность класса Scene Component, это хранение и управление трансформацией (положением, вращением и масштабом) в трехмерном пространстве.
При прямом использовании компонент класса Scene Component часто применяется как:
- пустой контейнер в иерархии для группировки других компонентов;
- точка привязки для анимированных частей модели;
- базовая точка поворота или масштабирования группы объектов;
- опорная точка для камер, источников света, звуков и так далее.
Наследование класса
Родительский класс
Класс Scene Component является дочерним от Actor Component, расширяя его функционалом трансформации. Из этого следует, что в Scene Component доступны все настройки, а также свойства, события и функции от родительского компонента, изучить которые Вы можете в отдельной статье: Actor Component.

Также отдельно обращу внимание, так как это важно для использования компонента сцены, из родительского класса Actor Component, в нём доступна и функция Get Owner, возвращающая ссылку на Актора-владельца текущего компонента.

Эта функция предоставляет возможность получать доступ к родительскому Актору из самого компонента, что открывает большие возможности для взаимодействия с его поведением и данными. Например, с помощью функции Get Owner можно получить доступ к свойствам, функциям или другим компонентам Актора-владельца.
Дочерние классы
Основными и самыми известными дочерними классами компонента сцены являются:
- Camera Component — компонент камеры. Используется для определения точки зрения игрока или наблюдателя.
- Primitive Component — базовый абстрактный класс для визуальных и физических компонентов.
Attach Scene Components и иерархия компонентов
В Unreal Engine все компоненты Scene Component (и их дочерние классы) внутри их Актора-владельца в обязательном порядке всегда прикрепляются друг к другу (Attach), образуя иерархию с родительско-дочерними отношениями и обеспечивая тем самым, что дочерний компонент всегда будет перемещаться, вращаться и масштабироваться вместе со своим родителем. При этом каждый компонент сцены может иметь любое количество дочерних, но только один родительский компонент.
В целом, тема иерархии и корневого компонента сцены (Scene Root Component) рассмотрена в общей статье про компоненты, поэтому изучить Вы её можете по данной ссылке: иерархия компонентов и Root Component.
Ключевые особенности Scene Component
- Transform (трансформация) — хранение и управление мировой и относительной трансформацией (положением, вращением и масштабом) в трехмерном пространстве.
- Attachment (иерархия прикрепления) — благодаря свойству трансформации, компоненты класса Scene Component создают иерархию прикреплений друг к другу (иерархию вложенности). Один компонент сцены может быть прикреплен к другому или к Актору-владельцу (через Root Component). Это создает иерархию вложенности компонентов. Причём свойства трансформации вложенных компонентов зависят от родительских элементов. Поэтому изменяя трансформацию родительского компонента, также автоматически будет изменятся трансформация у вложенных элементов.
- Actor Transform (источник трансформации для Актора) — Scene Component является Root-компонентом у объектов класса Actor. Все перемещения, вращения и масштабирования Актора в игровом мире происходят именно относительно этого компонента.
- Mobility (мобильность компонента) — управляет статичностью или подвижностью компонента.
- Visible (видимость) — управляет видимостью компонента.
- Редактирование в редакторе — позиция, вращение и масштаб могут быть легко изменены в редакторе Unreal Editor.
- Нет графики и физики — не имеет собственного рендера или столкновений, служит «пустым» местом в иерархии.
Настройки Details
Так как класс компонента сцены в Анрил Энджин расширяет дополнительным функционалом класс ActorComponent, то и настройки Details также несколько отличаются от родительских наличием дополнительных опций. Все опции Details здесь рассматривать не будем (их можно изучить в отдельной статье Details Actor Component), а остановимся только на тех, которых нет в Актор-компоненте.

Transform
Категория настроек Transform управляет позицией, вращением и масштабом компонента в иерархии.
- Location (float, по умолчанию X = 0.0, Y = 0.0, Z = 0.0) — координаты расположения компонента.
- Rotation (float, по умолчанию X = 0.0, Y = 0.0, Z = 0.0) — вращение (поворот) компонента.
- Scale (float, по умолчанию X = 1.0, Y = 1.0, Z = 1.0) — масштаб компонента.
- Mobility (подвижность компонента) — параметр, который определяет, как часто компонент может изменять своё положение или состояние в Unreal Engine. Используется для оптимизации производительности, так как система движка может по-разному обрабатывать компоненты в зависимости от их мобильности, снижая нагрузку на рендеринг, физику и сетевую репликацию. Значение свойства задаётся один раз в конструкторе на C++ или в редакторе Blueprint и обычно не меняется во время работы игры. На выбор имеется 3 варианта подвижности:
- Static (статичный): компонент неподвижен и не изменяет трансформацию после инициализации. Используется для объектов, которые не двигаются (например, здания, ландшафт). Позволяет максимально оптимизировать рендеринг и физику.
- Stationary (неподвижный): компонент может изменять некоторые параметры (например, освещение), но не перемещается в пространстве. Подходит для объектов с фиксированным положением, но с динамическими свойствами.
- Movable (подвижный): компонент может свободно двигаться и изменять трансформацию в любой момент. Используется для динамических объектов, персонажей, эффектов.
Причём важно знать, что всем свойствам трансформации (положению, вращению и масштабу) можно менять тип, относительно чего измеряется их трансформация. Доступно два типа измерений трансформации:
- Relative (относительный) — расположение компонента рассчитывается относительно родительского компонента, к которому прикреплён текущий компонент;
- World (мировой) — расположение компонента рассчитывается на основе глобальных мировых координат.
Сама же формула расчёта мировых координат для любого компонента достаточно простая — Relative координаты самого компонента + Relative координаты родительских компонентов (если таковые имеются) + World координаты Root Component (самого первого компонента в иерархии компонентов Актора).
Rendering
Категория настроек Rendering контролирует видимость компонента в игре и редакторе.
- Visible (bool, по умолчанию True) — свойство, определяющее, видин ли компонент на уровне (как в игре, так и в редакторе).
- True: компонент будет отображаться в сцене.
- False: компонент будет скрыт и не будет отбрасывать тени, но при этом будет существовать в сцене и участвовать в других процессах (например, в коллизии).
- Hidden in Game (bool, по умолчанию False) — свойство, указывающее, должен ли компонент быть скрыт во время игры, при условии, что он изначально видим (Visible == True).
- True: компонент будет скрыт во время игры, даже если он изначально видим (Visible == True). Это означает, что объект не будет отображаться в игровом процессе, даже если он видим в редакторе. Но при этом будет существовать в сцене и участвовать в других процессах (например, в коллизии).
- False: компонент будет видим в игре, если установлен флаг видимости (Visible == True). То есть, скрытие не применяется, и объект отображается как обычно.
- Use Attach Parent Bound (bool, по умолчанию False) — определяет, должен ли компонент использовать границы (Bound) родительского компонента при расчёте своих границ.
- True: компонент при присоединении к родителю не вычисляет собственные границы, а использует границы родителя. Это позволяет значительно оптимизировать производительность, особенно когда много компонентов прикреплены к одному родителю, так как уменьшается количество вычислений для рендеринга и столкновений.
- False: компонент вычисляет свои границы самостоятельно, независимо от родительского компонента.
Physics
Категория настроек Physics устанавливает связь с физическими зонами.
- Should Update Physics Volume (bool, по умолчанию False) — параметр определяет, следует ли обновлять кэшированный объект Physics Volume, с которым компонент пересекается, при перемещении. Обычно рекомендуется включать этот флаг, если компонент динамически перемещается и должен корректно реагировать на физические зоны. Для статичных компонентов или когда обновление не требуется, параметр можно отключить в целях оптимизации.
- True: при перемещении компонента будет обновляться информация о том, в каких физических зонах он находится (пересекается ли с каким-либо Physics Volume). Это важно для корректного применения физических эффектов к компоненту.
- False: при движении компонента кэшированная информация о пересечении с Physics Volume не обновляется, что может повысить производительность, но привести к некорректному поведению физических эффектов.
Physics Volume в Unreal Engine представляют собой области с определёнными физическими свойствами (например, вода, зона с низкой гравитацией, пространство с замедленным движением).
LOD
Категория настроек LOD управляет уровнем детализации компонента для оптимизации.
- Detail Mode (режим детализации компонента) — параметр, определяющий минимальный уровень детализации, при котором компонент будет отрисовываться в сцене. Используется для оптимизации производительности, позволяя отключать отрисовку менее важных объектов при высоких настройках детализации, чтобы снизить нагрузку на рендеринг. Если режим детализации компонента больше или равен режиму детализации всей системы (в настройках качества всего проекта), то примитив компонента не будет отрисовываться. На выбор имеется 4 варианта режима детализации:
- Low (низкий);
- Medium (средний);
- High (высокий);
- Epic (наивысший, эпический).
Функции класса Scene Component
Функции прикрепления компонентов

- Attach Component To Component — прикрепляет текущий компонент к другому компоненту, а при необходимости — и к конкретному Socket (держателю).
- Attach Actor To Component — данная функция не относится к Scene Component (она является функцией класса Actor), но всё-же имеет прямое отношение к компоненту сцены, прикрепляя объект Актора к конкретному указанному компоненту (класса SceneComponent и выше).
- Get Attach Parent — возвращает родительский компонент, к которому прикреплён текущий компонент.
- Get Attach Socket Name — возвращает имя сокета (точки привязки) родительского компонента, к которому прикреплен текущий компонент.
- Get Parent Components — возвращает для текущего компонента массив всей иерархии родительских компонентов.
- Get Children Components — возвращает массив всех дочерних компонентов, прикрепленных к текущему компоненту.
- Get Child Component — возвращает конкретный дочерний компонент по его порядковому номеру из перечня дочерних элементов.
- Get Num Children Components — возвращает количество непосредственных дочерних компонентов, прикрепленных к текущему компоненту.
- Detach From 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 — добавляет смещение к текущей позиции компонента в локальной системе координат самого компонента.
Изменение поворота компонента

- Get World Rotation — возвращает текущее направление вращения компонента относительно глобальной системы координат.
- Set World Rotation — устанавливает новое направление вращения компонента в мировых координатах.
- Set Relative Rotation — устанавливает поворот компонента относительно родительских координат.
- Add Relative Rotation — добавляет вращение компоненту относительно системы координат его родителя.
- Add World Rotation — добавляет вращение компоненту в рамках мировой системы координат.
- Add Local Rotation — добавляет вращение компоненту в рамках локальной системы координат самого компонента.
Socket (сокеты)

- Does Socket Exist — проверяет, существует ли сокет с заданным именем на компоненте. Возвращает значение True, если сокет найден, иначе False. Используется для проверки наличия точек привязки (Sockets), к которым можно прикреплять другие компоненты или объекты.
- Get All Socket Names — возвращает список всех имён сокетов, определённых на данном компоненте. Используется для перебора всех доступных точек привязки.
- Get Socket Location — возвращает позицию сокета или кости в мировых координатах. Используется для точного позиционирования объектов относительно скелета или компонента.
- Get Socket Rotation — возвращает вращение (Rotator) сокета или кости в мировых координатах. Позволяет получить ориентацию точки привязки.
- Get Socket Transform — возвращает полную трансформацию (позицию, вращение, масштаб) сокета или кости в мировых координатах. Используется для комплексного управления положением и ориентацией.
Векторы

- Get Forward Vector — возвращает для компонента вектор направления вперёд в мировых координатах (ось X). Часто используется для определения направления взгляда или движения объекта.
- Get Right Vector — возвращает для компонента вектор направления вправо в мировых координатах (ось Y). Используется для вычисления бокового направления относительно компонента.
- Get Up Vector — возвращает для компонента вектор направления вверх в мировых координатах (ось Z). Используется для ориентации и вычисления вертикального направления.
Physics (физика)

- Get Physics Volume — возвращает физический объём (Physics Volume), в котором в данный момент находится компонент. Физический объём определяет свойства среды, например, воду или зону с низкой гравитацией.
- Is Any Simulating Physics — проверяет, симулируется ли физика для указанного тела компонента. Возвращает значение True, если физика активна.
- Is Simulating Physics — проверяет, симулируется ли физика для указанного тела компонента с учётом конкретной кости скелета. Возвращает значение True, если компонент участвует в физическом симуляции.
Visible (видимость)

- Is Visible — возвращает значение True, если компонент видим в текущем контексте (например, в игре или редакторе). Используется для проверки состояния видимости.
- Set Visibility — устанавливает видимость компонента. Если вызывается во время игры, позволяет включать или отключать отображение компонента.
- Toggle Visibility — переключает текущее состояние видимости компонента: если был видим — станет невидим, и наоборот.
Изменение масштаба

- Get World Scale — возвращает масштаб компонента в мировых координатах. Используется для вычисления реального размера объекта в мире.
- Set Relative Scale 3D — устанавливает локальный (относительный) масштаб компонента по осям X, Y, Z относительно родителя.
- Set World Scale 3D — устанавливает масштаб компонента в мировых координатах. Делает компонент нужного размера относительно мировых осей.
Изменение трансформации

- Reset Relative Transform — сбрасывает относительную трансформацию компонента относительно его родителя к значению по умолчанию (обычно нулевое смещение, без вращения и масштаб 1).
- Set Relative Transform — устанавливает относительную трансформацию.
- Set Absolute — устанавливает, какие части трансформации (позиция, вращение, масштаб) должны быть абсолютными в мировом пространстве, а какие — относительными к родителю. Позволяет гибко управлять поведением трансформации.
- Add Local Transform — применяет локальное изменение трансформации.
- Add World Transform — применяет изменение трансформации в мировых координатах.
- Add World Transform Keep Scale — применяет мировую трансформацию, сохраняя текущий масштаб.
- Get Relative Transform — возвращает относительную трансформацию (относительно родителя).
- Set World Transform — задаёт полную мировую трансформацию.
Другие функции

- Set Hidden in Game — изменяет значение свойства Hidden In Game. Если установлено значение True, компонент становится невидимым во время игры (выключается видимость).
- Set Mobility — устанавливает режим подвижности компонента, что влияет на оптимизацию и поведение компонента:
— Static (неподвижный, не изменяется во время игры);
— Stationary (частично подвижный, например, освещение);
— Movable (полностью подвижный). - Get Component Velocity — возвращает текущую скорость компонента. Если компонент симулирует физику, возвращается скорость физического тела, иначе — скорость компонента (Component Velocity). Используется для вычисления движения или эффектов, зависящих от скорости.
Совет. Вскоре выйдет моя бесплатная книга по Blueprints для Unreal Engine в PDF формате. Как она выйдет, рекомендую её скачать, чтобы Вы детально изучили блюпринты Анрил Энджин.