Скачать книгу Blueprint для Unreal Engine
Что такое ... в Unreal Engine?

Что такое Lifecycle для Actor в Unreal Engine| жизненный цикл Актора | UE4, UE5

Автор: Будуев Антон / UE просто, Создана: 13.07.2026 в 03:10

Life Cycle Actor или жизненный цикл Актора и его компонентов в Unreal Engine

Life Cycle Actor или жизненный цикл Актора и его компонентов в Unreal Engine представляет собой последовательность этапов, начиная с момента создания объекта — либо при загрузке уровня, либо при динамическом спавне, — продолжая его работой в игровом мире и завершая удалением и очисткой памяти. Разберем эти этапы чуть подробнее, но в несколько упрощенной структуре.

Этап 1. Создание Актора

Процесс «рождения» Актора можно представить как своеобразную сборку на фабрике. Независимо от того, был ли Актор заранее размещен на уровне или создан динамически во время игры, перед началом полноценной работы он проходит определенную последовательность этапов подготовки. При этом для размещенного и динамически созданного Актора этот процесс немного различается.

Сначала рассмотрим Актор, размещенный на уровне.

Если Актор заранее добавлен на уровень в редакторе, его данные сохраняются вместе с файлом карты. Когда уровень загружается, движок последовательно восстанавливает и подготавливает такой Актор к работе в несколько стадий:

  • Загрузка и создание. Сначала движок создает объект в памяти и восстанавливает его сохраненные свойства, а также базовые компоненты.
  • Регистрация компонентов. Затем компоненты Актора подключаются к игровому миру, то есть к World и соответствующим системам движка. Например, меш начинает учитываться системой рендеринга, а коллизия — системой физики. Проще говоря, игровой мир World начинает «видеть» Актор и его компоненты.
  • Construction Script. На этой стадии выполняется логика предварительной настройки. Важно понимать, что для акторов, размещенных на уровне, Construction Script активно работает еще в редакторе: он перезапускается при каждом изменении параметров или перемещении объекта. Результаты этой работы (измененные трансформы, назначенные материалы, динамически созданные компоненты) «запекаются» и сохраняются в специальный кэш данных экземпляра Актора внутри файла карты. При финальной загрузке уровня в игре движок зачастую не выполняет логику Construction Script с нуля, а восстанавливает уже готовое состояние из этого кэша, что значительно ускоряет инициализацию и гарантирует, что объект в игре будет выглядеть точно так же, как в окне редактора.
  • Инициализация компонентов. После завершения Construction Script движок окончательно подготавливает компоненты Актора к работе. К этому моменту сам Актор уже собран, его свойства установлены, а все необходимые компоненты созданы и настроены.

Актор, созданный через Spawn

Если Актор создается динамически во время игры, например с помощью Blueprint-узла Spawn Actor from Class, он проходит похожий процесс, но все стадии выполняются непосредственно в момент его появления:

  • Стадия создания объекта. Сначала движок создает новый экземпляр Актора в памяти и подготавливает его базовые свойства и компоненты.
  • Стадия передачи параметров Expose on Spawn. Если при вызове Spawn Actor from Class были переданы значения переменных, отмеченных параметром Expose on Spawn, соответствующие свойства Актора при его спавне получают эти значения еще до выполнения Construction Script.
  • Construction Script. Далее выполняется Construction Script. При этом Актор уже может использовать значения, переданные через Expose on Spawn. Например, на их основе можно выбрать материал, изменить размер объекта, настроить его внешний вид или добавить дополнительные компоненты. Если Construction Script создает новые компоненты, движок также подготавливает и регистрирует их для работы в игровом мире.
  • Инициализация компонентов. После выполнения Construction Script движок завершает подготовку всех компонентов, включая те, которые были добавлены в процессе создания Актора.

Таким образом, динамически созданный Актор проходит практически тот же своеобразный «сборочный конвейер», но все происходит непосредственно во время игры и, как правило, занимает лишь небольшую часть времени.

Главное различие между заранее размещенным и динамически созданным Актором заключается не столько в самих этапах, сколько в том, когда и при каких условиях они выполняются.

Для Актора, размещенного на уровне, часть подготовки происходит еще во время работы в редакторе, а окончательная — при загрузке уровня. В частности, Construction Script может выполняться многократно, например при перемещении Актора или изменении его параметров в редакторе.

Для Актора, созданного через Spawn Actor from Class, весь процесс происходит непосредственно во время игры. Construction Script в этом случае выполняется при создании конкретного экземпляра Актора. Кроме того, при использовании Spawn Actor from Class можно передать значения через Expose on Spawn. Эти данные будут доступны уже внутри Construction Script и могут влиять на то, каким именно Актор будет создан. Например, таким способом можно сразу определить его цвет, размер, скорость или другие характеристики. У Актора, заранее размещенного на уровне, подобные значения обычно уже заданы в параметрах конкретного экземпляра в редакторе.

В результате независимо от способа появления Актор не начинает полноценную игровую работу сразу после создания. Сначала движок должен создать объект, подготовить и зарегистрировать его компоненты, выполнить Construction Script и завершить инициализацию всех объектов Актора. Только после этого Актор считается полностью готовым к работе в игровом мире.

Этап 2. Работа Актора и его обновление

После того как все Акторы уровня созданы и инициализированы, начинается их основная работа. В начале этого этапа у каждого Актора и у каждого его компонента вызываются события Begin Play. Это ключевой момент, означающий, что объект полностью готов к работе в игровом мире.

В Blueprint событие Event Begin Play служит для инициализации значений переменных, настройки параметров, запуска анимации и выполнения других необходимых действий, которые должны выполняться при запуске объекта в игре. Например, Event Begin Play можно использовать для установки начального здоровья персонажа, подключения расширенной системы ввода игрока и так далее.

После Begin Play начинается регулярное обновление. Если у компонента или Актора включен Tick, то каждый кадр игры будет вызываться соответствующее событие Event Tick. При этом тик можно гибко настраивать или полностью отключать для оптимизации производительности.

В Blueprint событие Event Tick предназначено для выполнения определенного логического кода в цикле, который необходимо повторять каждый кадр обновления игры. Например, это событие может использоваться для мониторинга состояния, обновления анимации или смены позиции объекта, то есть его движения.

При этом очень важно помнить, что в данном событии не следует выполнять сложные и большие операции, так как это может привести к значительному снижению FPS в игре из-за высокой нагрузки на процессор при расчете каждого кадра.

Также на этом этапе производится обработка и других событий движка, например событий столкновения или пересечения с другими объектами, событий получения урона или события нажатия клавиш игроком.

Этап 3. Удаление Актора

Удаление Актора может происходить по нескольким причинам. Самый очевидный способ — это явное удаление Актора через игровую логику. В Blueprint это происходит при вызове узла Destroy Actor.

Также Актор может быть удален и автоматически, если у него задан параметр Initial Life Span. В этом случае он автоматически самоуничтожится через указанное количество секунд. Если же данный параметр установлен в значение 0, то Актор будет существовать бесконечно, пока не будет удален явно каким-либо другим способом.

Кроме того, Акторы удаляются при выгрузке уровня, например при его смене.

Когда начинается процесс удаления Актора, в Blueprint сначала вызывается событие Event End Play. Оно является основным механизмом, чтобы разработчик мог обработать завершение работы объекта: здесь можно остановить таймеры, отписаться от событий и выполнить очистку логики. В это событие также передается причина завершения работы, например уничтожение Актора, смена уровня или его удаление из игрового мира. Эту причину можно использовать в собственной логике при удалении Актора.

После этого в Blueprint вызывается событие Destroyed, которое сообщает о завершении подготовки Актора к удалению и о его последующем удалении из игрового мира.

Но, что интересно, и на самом деле очень важно понимать - после своего удаления Актор не удаляется из памяти мгновенно. При удалении Актор сначала помечается внутри движка специальным флагом Pending Kill или в новых версиях движка состоянием Garbage и перестает участвовать в игре: больше не тикает, не рендерится, то есть визуально не отображается на уровне, а также не участвует в физических расчетах. Однако, что очень важно, сам объект в этот момент все еще существует в оперативной памяти.

Позже специальная система сборки мусора в Unreal Engine — так называемый Garbage Collector — проверяет, остались ли на этот объект ссылки. Если ссылок больше нет, только тогда объект окончательно удаляется из памяти данной системой.

При удалении Актора все его компоненты также удаляются автоматически. Однако компоненты можно удалять и отдельно, не уничтожая при этом сам Актор. Для этого используется функция Destroy Component, вызываемая для конкретного компонента. После ее вызова указанный компонент перестает участвовать во всех внутренних процессах движка: отключаются его тик, рендеринг и физика, после чего он также удаляется системой Garbage Collector.

Что в итоге

  • Жизненный цикл Актора в Unreal Engine состоит из трех основных этапов: создание и инициализация, работа в игровом мире и удаление.
  • При создании Актор проходит подготовку: движок создает объект, регистрирует его компоненты, выполняет Construction Script и завершает инициализацию. Для заспавненных Акторов дополнительно могут использоваться значения переменных Expose on Spawn.
  • После полной инициализации вызывается Begin Play, который означает, что Актор и его компоненты готовы к полноценной работе в игровом мире.
  • Во время работы Актор может регулярно обновляться через Event Tick, а также обрабатывать столкновения, пересечения, получение урона и другие игровые события.
  • При удалении Актора вызывается End Play, после чего объект перестает участвовать в игровых процессах, но не удаляется из памяти мгновенно.
  • Окончательная очистка памяти от объекта Актора и его компонентов выполняется системой Garbage Collector, и именно в тот момент, когда объект больше не используется и на него не осталось никаких ссылок.

===============

Более подробно изучить смежные темы Вы можете в статьях:

Зарегистрироваться в ЛК и скачать книгу по Blueprint: [Blueprint. Взгляд с высоты «птичьего полёта»]

148 просмотров

    Скачать бесплатную книгу по Blueprint для Unreal Engine.

    Основная цель книги — дать общий, целостный и понятный обзор системы Blueprint. Книга предлагает взгляд с высоты «птичьего полёта» — ясную и чёткую карту игрового мира Unreal Engine, которая поможет увидеть ключевые взаимосвязи и понять, как устроена система визуального скриптинга.

    Зарегистрироваться в ЛК и скачать книгу [Blueprints. Взгляд с высоты «птичьего полёта»]

      Канал Unreal Engine — это просто