Друзья, приветствую, с Вами Будуев Антон. В данной статье мы поговорим о том, что такое Timeline в Unreal Engine (UE4, UE5). Разберём для чего он используется, настройки, редактор Timeline Editor, функции, а также закрепим работу с ним на базовом практическом примере.
Вскоре выйдет моя бесплатная книга по Blueprints для Unreal Engine в PDF формате. Как она выйдет, рекомендую её скачать, чтобы Вы детально изучили блюпринты Анрил Энджин.
Timeline в Unreal Engine
Timeline — это специализированный инструмент в Unreal Engine, предназначенный для создания анимаций (простых движений), а также плавных изменений параметров объектов на протяжении заданного промежутка времени. Он отлично подходит для решения часто встречающихся задач, не требующих сложной кинематографической анимации, таких как передвижение объектов, открытие дверей, изменение освещения или плавная смена каких-либо свойств.
Timeline в Blueprint представлен в виде специального узла, который вызывается в Event Graph через правую клавишу мыши по команде Add Timeline.

Двойной клик по этому узлу открывает редактор дорожек (Timeline Editor), где можно создавать и настраивать кривые (Curves) различных типов данных: Float, Vector, Color. Для каждой дорожки задаются ключевые значения (Keys) с привязкой ко времени, между которыми происходит интерполяция (сглаживание), обеспечивающая плавные переходы.
Во время работы Timeline на каждом обновлении (Tick) через соответствующий выходной пин узла выдаётся текущее значение кривой, что позволяет использовать его в игровой логике.
Сам узел Timeline содержит множество входных и выходных пинов:

Входные пины (Input Pins):
- Play — запускает воспроизведение Timeline с текущего времени.
- Play from Start — запускает воспроизведение с начала Timeline.
- Stop — останавливает воспроизведение на текущем времени.
- Reverse — воспроизводит Timeline в обратном направлении с текущего времени.
- Reverse from End — воспроизводит Timeline в обратном направлении, начиная с конца.
- Set New Time — устанавливает новое текущее время воспроизведения (через параметр New Time).
- New Time — параметр для задания нового времени воспроизведения.
Выходные пины (Output Pins):
- Update — срабатывает каждый Tick во время проигрывания Timeline.
- Finished — сигнализирует о завершении воспроизведения Timeline (например, при достижении конца в прямом направлении или начала — в обратном). Остановка через Stop не вызывает этот пин.
- Direction — выводит текущее направление воспроизведения (вперёд или назад).
Кроме того, Timeline выводит значения с каждой созданной дорожки (float, vector, color), которые можно использовать для управления параметрами объектов. Названия этих выходных пинов соответствуют именам дорожек, заданных в редакторе Timeline Editor.
Редактор Timeline Editor
Как уже упоминалось выше, при двойном клике на узел Timeline в Blueprint открывается редактор дорожек (Tracks) для создания и настройки кривых. По умолчанию редактор пуст. Чтобы добавить новую дорожку, нажмите кнопку +Track. Появится список типов дорожек, из которых можно выбрать:
- Float — числовая кривая с плавающей точкой;
- Vector — кривая в 3D-пространстве (вектор);
- Event — событие, вызываемое в заданный момент времени. Создаёт отдельный Execution Pin с именем события на узле Timeline в Event Graph;
- Color — кривая цвета.

После выбора типа дорожки она добавляется в редактор, где можно сразу задать ей имя. Это имя будет отображаться и на самом узле Timeline в Blueprint в выходном пине для получения текущего значения дорожки.

Длительность Timeline задаётся параметром Length (в секундах).

В этом же блоке расположены кнопки управления Timeline:
- Use Last Keyframe — учитывать ли последний кадр. Обычно, если Timeline зациклен (Loop), данный параметр отключают, иначе последний кадр может создавать рывки.
- AutoPlay — автоматический запуск Timeline при активации Blueprint.
- Loop — зацикливание воспроизведения анимации.
- Replicated — включение сетевой репликации (для синхронизации между сервером и клиентами).
- Ignore Time Dilation — игнорирование глобального замедления времени в игре.
- Tick Group — управление группой тиков для порядка обновления Timeline.
Для добавления ключевых точек (Key) к кривой кликните правой кнопкой мыши по области дорожки и выберите Add Key to CurveFloat (для float—дорожки). Аналогичные опции доступны и для других типов.

У каждой ключевой точки можно настроить параметры:
- Time — момент времени, в который находится точка;
- Value — значение кривой в этой точке.

Также ключи можно редактировать или удалять.
После создания нескольких ключевых точек выделите их все, кликните правой кнопкой и выберите тип интерполяции (сглаживания) кривой. Обычно рекомендуется использовать опцию Auto, которая обеспечивает плавные переходы между ключами. Доступны также:
- Linear — линейное изменение (прямая линия между точками);
- Constant — мгновенный скачок (ступенчатая функция);
- Break — ручная настройка касательных для каждого ключа.

Также поддерживается использование внешних кривых (External Curves) — это отдельные ассеты Curve, которые можно подключить к Timeline для повторного использования в разных местах проекта.
В результате внутри узла Timeline будет создана дорожка с заданной длительностью. Во время выполнения значения кривой доступны на выходном пине с именем, совпадающим с названием дорожки, что позволяет использовать эти данные для анимации, простого движения объекта или других целей.

Тонкости использования Timeline
- Оптимальная длина анимации — параметр Length задаёт общую длительность Timeline в секундах. Для цикличных эффектов стоит активировать опцию Loop, чтобы анимация воспроизводилась повторно без резких переходов.
- Выбор интерполяции ключевых кадров — интерполяция (Auto, Break, Linear, Constant) влияет на плавность переходов между ключевыми точками. Обычно достаточно опции Auto для плавных кривых.
- Множественные типы дорожек для сложных эффектов — Timeline поддерживает различные дорожки: Float, Vector, Color, Event. Комбинируя их, можно одновременно изменять позицию, цвет и вызывать события, что позволяет создавать комплексные анимации.
- Управление направлением воспроизведения — пины Reverse и Reverse from End позволяют воспроизводить Timeline в обратном направлении, что удобно для анимаций открывания/закрывания, начала/завершения эффектов.
- Обработка завершения анимации — пин Finished позволяет запускать дополнительные действия по окончании Timeline, например, переключение состояния или отключение объекта.
- Учет времени игры — опция Ignore Time Dilation позволяет игнорировать глобальное замедление времени в игре, что полезно для эффектов, которые должны проигрываться независимо от замедления игрового мира.
- Производительность и количество Timeline — рекомендуется минимизировать количество одновременно активных Timeline и ограничивать их длительность для сохранения производительности.
- Сетевые особенности — опция Replicated нужна для синхронизации воспроизведения Timeline в сетевой игре между сервером и клиентами.
- Ограничение использования внутри функций Blueprint — Timeline нельзя использовать внутри Blueprint-функций, так как он обладает внутренним состоянием и асинхронным воспроизведением, что несовместимо с синхронной природой функций. Используется он в Event Graph, который поддерживает асинхронные узлы с состоянием.
- Внешние кривые (External Curves) — Timeline поддерживает подключение внешних кривых: ассетов, которые можно применять повторно в других Timeline, что улучшает управляемость и повторное использование анимационных данных.
Работа с Timeline на практике
Рассмотрим пример простого передвижения раздвижной двери с использованием Timeline и функции линейной интерполяции (Lerp) при входе и выходе игрока в зону коллизии.
- Создадим простой Актор BP_Door, состоящий из стены с дверным проёмом, самой двери и коллизионного компонента Box Collision, определяющего зону взаимодействия.

- Внутри Актора добавим узел Timeline и создадим в нём дорожку типа Float с именем Alpha длительностью 1 секунду. Эта дорожка будет содержать две ключевые точки:
Time = 0, Value = 0;
Time = 1, Value = 1.
Для обеих ключевых точек выберем тип интерполяции Auto, обеспечивающий плавный переход.

- Далее в событии Event Begin Play сохраним стартовую позицию двери — её начальное расположение при запуске уровня.
- Для открытия двери запустим Timeline с помощью пина Play по событию Event Begin Overlap при входе игрока в зону коллизии. Перед запуском через Cast проверим, что пересекающий коллизию объект (Other Actor) — это персонаж игрока (BP_ThirdPersonCharacter).
- Для закрытия двери запустим тот же Timeline в обратном направлении через пин Reverse, связав его с событием Event End Overlap, которое срабатывает при выходе игрока из зоны.
- Положение двери будем обновлять на каждом тике Timeline с помощью функции Lerp (Vector): в качестве стартовой точки (A) возьмём сохранённую позицию, а в качестве конечной (B) — позицию, смещённую от стартовой на -110 см по локальной оси X. Коэффициент интерполяции будет задаваться значением Alpha, получаемым из Timeline на каждом обновлении.
- Результат интерполяции подаём на вход функции Set Relative Location, которая изменит локальную позицию двери при каждом обновлении Timeline через выходной пин Update.

В итоге, как только игрок пересекается с коллизией взаимодействия двери, дверь открывается (плавно сдвигается влево).

И как только игрок выходит из коллизии, дверь также плавно закрывается (плавно сдвигается вправо).

Таким образом, Timeline задаёт временной ход анимации и формирует управляющую кривую, Lerp плавно рассчитывает промежуточные положения координат, а Set Relative Location применяет эти изменения к положению объекта в игре. Такая связка позволяет создавать простые и эффективные анимации с контролем времени и плавности движения в Unreal Engine Blueprint.
Основные функции (узлы) для работы с Timeline
Timeline можно настраивать не только через редактор Timeline Editor, но и динамически с помощью специальных узлов в Blueprint. Для этого необходимо получить ссылку на нужный Timeline: все созданные Timeline отображаются в панели My Blueprints в разделе переменных в категории Components.

Обладая этой ссылкой, вы можете вызывать различные узлы управления и настройки Timeline. Рассмотрим данные узлы подробнее.
Get Play Rate

Get Play Rate — возвращает текущую скорость воспроизведения Timeline как значение типа float. Полезно для динамического изменения скорости анимации или проверки, с какой скоростью проигрывается Timeline.
Get Playback Position

Get Playback Position — возвращает текущую позицию воспроизведения Timeline в секундах (float). Используется для отслеживания, в каком моменте таймлайна вы находитесь.
Get Timeline Length

Get Timeline Length — возвращает общую длительность Timeline в секундах.
Is Looping

Is Looping — возвращает значение True, если Timeline зациклен, и False, если нет. Позволяет узнать, настроен ли таймлайн на повторное воспроизведение.
Is Playing

Is Playing — возвращает значение True, если Timeline в данный момент воспроизводится, и False, если остановлен.
Is Reversing

Is Reversing — возвращает значение True, если Timeline воспроизводится в обратном направлении, иначе False.
Play

Play — запускает воспроизведение Timeline с текущей позиции.
Play from Start

Play from Start — запускает воспроизведение Timeline с начала.
Reverse

Reverse — начинает воспроизведение Timeline в обратную сторону с текущей позиции.
Reverse from End

Reverse from End — начинает воспроизведение Timeline в обратную сторону с конца Timeline.
Stop

Stop — останавливает воспроизведение Timeline.
Set Looping

Set Looping — устанавливает режим зацикливания Timeline.
Set New Time

Set New Time — задаёт новую позицию воспроизведения Timeline.
Set Play Rate

Set Play Rate — устанавливает скорость воспроизведения Timeline.
Set Playback Position

Set Playback Position — устанавливает позицию воспроизведения Timeline. Позволяет также указать, должны ли быть вызваны события таймлайна, оказавшиеся между старой и новой позицией.
Set Timeline Length

Set Timeline Length — устанавливает общую длительность Timeline.
Set Timeline Length Mode

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