Unreal Engine Events: события в Анрил Энджин (UE4, UE5)

Друзья, приветствую, с Вами Будуев Антон. В данной статье мы обсудим Unreal Engine Events, основные события движка Анрил Энджин (UE4, UE5).

Unreal Engine Events

Events в движке Unreal Engine — это специализированные ноды, вызываемые в Blueprints во вкладке Event Graph во время наступления определённых условий или изменений в игровом процессе. Вызываются события с целью запуска пользовательской ответной логической цепочки, состоящей из других функциональных нод, для обработки этих изменений.

Такими событиями могут быть начало игры, пересечение объектов друг с другом, получение урона, такт обновления кадра игры и многое другое. И всё это мы можем обработать, написав свою собственную логику.

В рамках одного EventGraph можно использовать любое количество событий, но только по одному событию каждого типа.

Events (события) в Unreal Engine
Events (события) в Unreal Engine

Чтобы облегчить различение нод Events с другими нодами в блюпринтах, их заголовки всегда окрашены в красный цвет. Для сравнения, заголовки нод функций обозначаются синим и зелёным цветами, а у макросов — серым.

Также у нод событий могут быть выходные пины, которые содержат дополнительные значения. Эти значения можно использовать для описания дальнейшей логической цепочки. Выходные пины передают информацию, характеризующую вызываемый Event. Однако стоит отметить, что не все события в Анрил Энджин имеют выходные пины.

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

В этой статье мы кратко рассмотрим каждое событие для всех основных классов Blueprint. А самые часто используемые и важные Events в Unreal Engine мы детально изучим в отдельных статьях. В них вы найдёте подробное описание событий, узнаете о тонкостях использования и увидите примеры кода. Ссылки на эти статьи также будут прилагаться.

Events Actor. События класса Актор в Unreal Engine

Events Tick и AsyncPhysicsTick

Событие Event TickEvent Tick — событие, вызываемое каждый кадр в Actor, Actor Component и других наследуемых от них классах. Предназначено для выполнения определённого логического кода в цикле, который необходимо повторять каждый кадр расчёта и рендеринга игры. Может использоваться для мониторинга состояния, обновления анимации или позиции объекта, реагирования на ввод игрока в реальном времени.

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

Выходящий параметр:
Delta Seconds (float) — период (время в секундах) между текущим и предыдущим вызовом этого события.

Детальное описание этого события с тонкостями его использования, настройками и примерами кода Вы можете изучить в статье: Событие Event Tick.

Событие Event Async Physics Tick в Unreal EngineEvent Async Physics Tick — событие, вызываемое каждый кадр в отдельном асинхронном потоке обработки физики. Отлично подходит для расчёта физических симуляций.

* Отдельный асинхронный поток для физики позволяет избежать блокировки основного потока игры, что особенно важно для поддержания высокой частоты кадров.

По умолчанию вызов данного события отключен. Чтобы включить его, необходимо в настройках класса Details в разделе Physics установить для опции Async Physics Tick Enabled значение True.

Также имеется возможность самостоятельно определять частоту тика. Для этого необходимо включить некоторые опции в настройках проекта: Edit / Project Settings / Engine / Physics раздел Framerate:

  • Substepping Async (bool)True;
  • Tick Physics Async (bool) — True;
  • Async Fixed Time Step Size (float) — установить своё значение периода тика физики. Например, 0.016 (1 сек / 60 FPS).

Выходящие параметры:
Delta Seconds (float) — период (время в секундах) между текущим и предыдущим вызовом этого события.
Sim Seconds (float) — общее время симуляции в секундах с начала вызова события.

Unreal Engine Events BeginPlay и EndPlay

Событие Event BeginPlayEvent Begin Play — это событие, которое вызывается в Акторе только один раз, но в двух случаях. Во-первых, оно может быть вызвано при запуске игры, если объект уже был размещён на игровом уровне. Во-вторых, оно вызывается, когда объект появляется (спавнится) на уровне в процессе игры. Проще говоря, событие Begin Play вызывается только один раз при запуске работы данного объекта в игре.

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

Событие Event EndPlayEvent End Play — событие, вызываемое, когда объект заканчивает свою работу в игровом мире и готовится к удалению (при удалении Актора или его перемещении за пределы уровня). Вызывается до события Desroyed и позволяет выполнить логику до удаления объекта, обработав причины окончания работы, которые возвращаются во выходном пине.

Event End Play можно применять для очистки ресурсов, сохранения состояния или завершения активных процессов. Например, для остановки звуковых эффектов.

Выходящий параметр:
End Play Reason (enum) — перечисление, указывающее причину завершения работы Актора. Возможные варианты причин: Actor Destroyed (Актор уничтожен функцией Destroy); Level Transition (переход на другой уровень); End Play In Editor (окончание работы в редакторе); Removed From World (удалён из мира).

Events Destroyed и OnReset

Событие Event DestroyedEvent Destroyed — событие, вызываемое, когда Актор был явно уничтожен. Во время работы Event Destroyed никакие данные удаляемого Актора уже не доступны. Вызов происходит после отработки события Event End Play.

Event Destroyed дает возможность выполнить дополнительные действия перед уничтожением объекта, такие как анимация разрушения или создание эффектов. Например, при уничтожении врага можно создать эффект частиц для зрелищности.

Согласно документации Epic Games, в будущих версиях Unreal Engine данное событие использоваться больше не будет. Вместо него нужно будет применять Event End Play.

Событие Event On ResetEvent On Reset — событие, вызываемое при возврате Актора в исходное состояние (при сбросе состояния объекта к его первоначальным значениям). Используется при перезапуске уровня без перезагрузки. Например, для возвращения объекта к его исходному состоянию, что полезно в играх с механиками, требующими перезапуска.

Event Hit, Event Actor Begin Overlap (End Overlap)

Unreal Engine Event Hit, Event Actor Begin (End) OverlapUnreal Engine Event Hit — событие столкновения. Срабатывает в момент столкновения текущего Актора с другим объектом. При вызове этого события передаются специальные выходящие параметры, характеризующие данное столкновение (информация о том, какой объект был затронут, направление столкновения, точка удара, сила удара и прочее).

Используется для обработки физических взаимодействий, таких как атаки, столкновения и другие эффекты.

Event Actor Begin Overlap — событие начала пересечения текущего Актора с другим объектом. Это событие полезно для отслеживания момента, когда объекты входят в область детекции, например, триггеры или зональные эффекты. При этом, событие дает возможность определить, какой объект (Актор) вошел в область пересечения, что может использоваться для запуска различных игровых механик с этим объектом.

Event Actor End Overlap — событие окончания пересечения текущего Актора с другим объектом. Используется для обработки выхода объектов из триггерных зон или координат, чтобы отменить действия, начатые в событии Begin Overlap.

Детальное описание событий столкновения и пересечения в UE4, UE5 с тонкостями их использования, настройками и примерами кода Вы можете изучить в статье: События Event Hit, Event Actor Begin Overlap (End Overlap) в Unreal Engine.

Events OnBecomeViewTarget и OnEndViewTarget

Событие Event On Become View TargetEvent On Become View Target — событие, вызываемое, когда объект становится целевым для камеры. То есть, Player Controller начинает смотреть на игровой мир через данный Актор, иначе говоря, начал использовать его Camera Component.

Event On Become View Target обычно используется для изменения состояния или интерфейса, например, чтобы включить специальные эффекты, как замедление времени или изменение HUD.

Выходящий параметр:
PC (ссылка на объект Player Controller) — текущий контроллер игрока.

Событие Event On End View TargetEvent On End View Target — событие, вызываемое, когда объект больше не является целевым для камеры. То есть, когда Player Controller перестал смотреть на игровой мир через данный Актор, иначе говоря, перестал использовать его Camera Component.

Его можно использовать для восстановления состояния или интерфейса, установленных при Event On Become View Target. Например, возвращение обычного времени или скрытие специальных элементов интерфейса.

Выходящий параметр:
PC (ссылка на объект Player Controller) — текущий контроллер игрока.

Events ActorBeginCursorOver и ActorEndCursorOver

Событие Event Actor Begin Cursor OverEvent Actor Begin Cursor Over — это событие, которое вызывается, когда на текущий Актор наводится курсор мыши.

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

Событие Event Actor End Cursor OverEvent Actor End Cursor Over — это событие, которое вызывается, когда курсор мыши покидает область текущего Актора.

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

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

Для работы обоих событий в коде должны быть включены все необходимые настройки для работы мыши. Например, для Player Controller должны быть назначены параметры Show Mouse Cursor = True и Enable Mouse Over Events = True.

Для Player Controller должны быть назначены параметры Show Mouse Cursor = True и Enable Mouse Over Events = True
Для Player Controller должны быть назначены параметры Show Mouse Cursor = True и Enable Mouse Over Events = True

Events ActorOnClicked и ActorOnReleased

Событие Event Actor On ClickedEvent Actor On Clicked — это событие, которое вызывается при клике мышкой по текущему Актору. Оно используется для обработки взаимодействий с объектами в игре.

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

Выходящий параметр:
Button Pressed (structure) — позволяет получить информацию о том, какая кнопка была нажата при клике по объекту.

Событие Event Actor On ReleasedEvent Actor On Released — это событие, которое вызывается при отжатии левой кнопки мыши после клика по текущему Актору. Может использоваться для выполнения действий после завершения взаимодействия. Например, для остановки атаки или временной паузы в игре.

Выходящий параметр:
Button Released (structure) — позволяет получить информацию о том, какая кнопка была отжата после клика по объекту.

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

Для работы обоих событий в коде должны быть включены все необходимые настройки для работы мыши. Например, для Player Controller должны быть назначены параметры Show Mouse Cursor = True и Enable Click Events = True.

Для Player Controller должны быть назначены параметры Show Mouse Cursor = True и Enable Click Events = True
Для Player Controller должны быть назначены параметры Show Mouse Cursor = True и Enable Click Events = True

Events BeginInputTouch и EndInputTouch

Событие Event Begin Input TouchEvent Begin Input Touch — это событие, которое срабатывает при сенсорном касании по текущему Актору. Используется для обработки касания в мобильных играх. Например, при касании объекта можно начать анимацию или игру.

Выходящий параметр:
Finger Index (enum) — индекс пальца.

Событие Event End Input TouchEvent End Input Touch — это событие, которое срабатывает при окончании сенсорного касания по текущему Актору. Используется для завершения действия, начатого при касании. Например, для остановки анимации при отпускании экрана.

Выходящий параметр:
Finger Index (enum) — индекс пальца.

Для работы обоих событий в Unreal Engine в коде должны быть включены все необходимые настройки для сенсорного касания. Например, для Player Controller должны быть назначены параметры Enable Touch Events = True и Enable Touch Over Events = True.

Для Player Controller должны быть назначены параметры Enable Touch Events = True и Enable Touch Over Events = True.
Для Player Controller должны быть назначены параметры Enable Touch Events = True и Enable Touch Over Events = True.

Events TouchEnter и TouchLeave

Событие Event Touch EnterEvent Touch Enter — это событие, которое срабатывает при сенсорном вводе, когда на текущий Актор наводится палец.

Выходящий параметр:
Finger Index (enum) — индекс пальца.

Событие Event Touch LeaveEvent Touch Leave — это событие, которое срабатывает при сенсорном вводе, когда с текущего Актора уводится палец.

Выходящий параметр:
Finger Index (enum) — индекс пальца.

Для работы обоих событий в коде должны быть включены все необходимые настройки для сенсорного касания. Например, для Player Controller должны быть назначены параметры Enable Touch Events = True и Enable Touch Over Events = True.

Для Player Controller в Unreal Engine должны быть назначены параметры Enable Touch Events = True и Enable Touch Over Events = True.
Для Player Controller в Unreal Engine должны быть назначены параметры Enable Touch Events = True и Enable Touch Over Events = True.

 

Данная статья еще дописывается. Вскоре будет обновление.

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

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