Друзья, приветствую, с Вами Будуев Антон. В данной статье мы поговорим о том, что такое Lerp (линейная интерполяция) в Unreal Engine (UE4, UE5), и в частности Lerp (Vector). Разберём как работает интерполяция, какие Lerp-функции существуют в Blueprint и почему они используются при создании простейшего движения (анимации) объектов.
Вскоре выйдет моя бесплатная книга по Blueprints для Unreal Engine в PDF формате. Как она выйдет, рекомендую её скачать, чтобы Вы детально изучили блюпринты Анрил Энджин.
Lerp
Lerp (от англ. Linear Interpolate — линейная интерполяция) — это функция, которая вычисляет промежуточное значение между двумя известными значениями и в зависимости от параметра Alpha, который обычно находится в диапазоне от 0 до 1.
Сама формула выглядит так: Lerp (A, B, Alpha) = A + (B — A) * Alpha, при этом:
- если Alpha = 0, результат выполнения функции равен значению
- если Alpha = 1, результат выполнения функции равен значению
- если Alpha = от 0 до 1, результат выполнения функции равен соответствующему значению между A и B, например, при Alpha = 0.5, результат будет равен значению ровно посередине между A и B.
Таким образом, параметр Alpha управляет степенью «приближения» (интерполяции) к точке B.
Lerp в Unreal Engine Blueprint
В Unreal Engine в Blueprints существуют несколько разновидностей функций Lerp, каждая из которых предназначена для интерполяции различных типов данных:

- Lerp — линейная интерполяция между двумя числовыми значениями типа float.
- Slerp (Quat) — сферическая интерполяция между двумя кватернионами, используемая для плавного и равномерного вращения в трёхмерном пространстве.
- Lerp (Rotator) — линейная интерполяция между двумя угловыми значениями (Rotator), позволяет плавно переходить между углами поворота.
- Lerp (Vector) — линейная интерполяция между двумя векторами, используется для плавного изменения позиции или направления в 3D пространстве.
- SlerpNormals — сферическая интерполяция между двумя нормализованными векторами, обеспечивающая корректное сглаживание направлений (например, для направления взгляда).
- Lerp (Transform) — интерполяция между двумя трансформациями (позицией, поворотом и масштабом), используемая для комплексного плавного перехода.
Все эти функции предназначены для плавного перехода значений между двумя известными точками по параметру Alpha, обычно от 0 (начало) до 1 (конец). Работа с ними, в целом, строится одинаково, поэтому, в качестве примера, разберем подробнее одну из них, наиболее часто используемую — Lerp (Vector).
Lerp (Vector)

Lerp (Vector) — Blueprint-функция в Unreal Engine, которая линейно интерполирует между двумя векторами A и B с использованием параметра Alpha, обычно принимающего значения от 0 до 1. Результатом является вектор, находящийся на прямой линии между векторами A и B, в точке, определяемой Alpha. Используется, чтобы плавно смещать объект из одной точки пространства (A) в другую (B), контролируя степень перехода через Alpha.
Lerp (Vector) — это один из самых популярных узлов в Blueprint для создания простого движения или простой анимации.
Параметры:
- A (vector) — стартовая точка;
- B (vector) — конечная точка;
- Alpha (float) — значение степени «приближения» результирующего вектора к точке B;
- Return Value (vector) — возвращаемый итоговый вектор, находящийся между векторами A и B, в точке, определяемой Alpha.
Разберём на простых примерах, как работает Lerp (Vector).
При стартовой точке A, равной (1.0, 0.0, 0.0), конечной точке B, равной (6.0, 0.0, 0.0), и Alpha = 0, результирующий вектор будет (1.0, 0.0, 0.0), равный A.

При стартовой точке A, равной (1.0, 0.0, 0.0), конечной точке B, равной (6.0, 0.0, 0.0), и Alpha = 1, результирующий вектор будет (6.0, 0.0, 0.0), равный B.

При стартовой точке A, равной (1.0, 0.0, 0.0), конечной точке B, равной (6.0, 0.0, 0.0), и Alpha = 0.3, результирующий вектор будет (2.5, 0.0, 0.0), находящийся ближе к A, чем к B.

Движение (анимация) объекта через Lerp
Если изменять параметр Alpha циклично (например, с помощью таймеров или события Event Tick), результирующий вектор будет плавно смещаться из точки A в точку B. Передавая этот результат в функцию изменения позиции объекта (например, Set Relative Location), можно реализовать плавное движение объекта, к примеру, платформы.
Пример Blueprint-логики движения платформы с помощью Lerp:
- Конечная точка задаётся в пользовательской переменной End Location типа Vector. При чём в её свойствах (Details) включены опции: Instance Editable — чтобы переменная была доступна для редактирования на уровне; Show 3D Widget — чтобы переменную можно было визуально редактировать, перемещая специальный виджет мышкой прямо на уровне. Это позволяет удобно задавать конечное положение платформы прямо в редакторе.

- На старте игры по событию Event Begin Play в пользовательскую переменную Start Location сохраняется стартовая позиция платформы, которую возвращает функция Get Relative Location для компонента Cube, символизирующего платформу.
- Изменение координат платформы производится функцией Set Relative Location.
- Для расчета новых координат применяется функция Lerp (Vector), где в качестве точки A используется Start Location, в качестве точки B — End Location и в качестве параметра Alpha — пользовательская переменная Alpha типа float со значением по умолчанию = 0.
- Для того чтобы создать движение, переменная Alpha изменяется на каждом тике путем добавления расчетного значения (Speed * Delta Seconds), с ограничением верхней границы Alpha в 1. Где Delta Seconds — время, прошедшее с предыдущего тика (используется для обеспечения независимого от FPS движения).

В результате данной логики с помощью Lerp платформа плавно начнёт своё движение к точке End Location и на ней же остановится.

По такому же принципу строится работа и со всеми остальными Lerp-функциями.
Краткий итог: Lerp в Unreal Engine — группа функций, позволяющих плавно интерполировать значение между двумя исходными значениями (например, векторами) по параметру Alpha от 0 до 1. Lerp широко используется для создания простого и контролируемого движения объектов (анимации), где Alpha управляет прогрессом перехода от начальной позиции к конечной.
Совет. Вскоре выйдет моя бесплатная книга по Blueprints для Unreal Engine в PDF формате. Как она выйдет, рекомендую её скачать, чтобы Вы детально изучили блюпринты Анрил Энджин.