Trim Paths — механизм частичного отображения контуров (paths) в векторной анимации. Позволяет динамически «обрезать» линию, задавая диапазон её видимой части. В основе лежит управление параметрами начала, конца и смещения сегмента пути.
В контексте Lottie Web Trim Paths интерпретируется из JSON-структуры, экспортированной из After Effects, и применяется к shape-слоям с векторными контурами.
Определяет процент, с которого начинается отображение пути.
0–1000 — начало пути50 — отображение начинается с серединыОпределяет процент, до которого отображается путь.
0–100100 — полный путь50 — отображается только первая половинаСдвигает диапазон отображения вдоль пути.
-360° – 360°Путь рассматривается как нормализованный сегмент от 0%
до 100%. Параметры Start и End задают видимую часть:
Start = 0, End = 100 → весь путь
видимStart = 0, End = 0 → путь невидимStart = 0, End = 50 → первая половинаStart = 50, End = 100 → вторая
половинаПри анимации этих значений создаётся эффект рисования линии.
Каждый path внутри shape-группы обрабатывается отдельно.
Особенности:
Все пути обрабатываются как единое целое.
Особенности:
Пример структуры Trim Paths:
{
"ty": "tm",
"s": { "k": 0 },
"e": { "k": 100 },
"o": { "k": 0 },
"m": 1
}
ty: "tm" — тип: Trim Paths
s — Start
e — End
o — Offset
m — режим:
1 — Individually2 — SimultaneouslyКаждый параметр может быть анимирован через keyframes.
Пример анимации «рисования линии»:
"e": {
"a": 1,
"k": [
{ "t": 0, "s": [0] },
{ "t": 60, "s": [100] }
]
}
Результат:
t=0 линия не виднаt=60 линия полностью прорисованаДля кривых Безье используется аппроксимация длины.
Пути в Lottie состоят из сегментов:
При Trim Paths:
Это может влиять на производительность при сложных формах.
Offset не изменяет длину отображаемого сегмента, а только сдвигает его.
Пример:
Start = 0End = 25Используется для:
Для замкнутых контуров:
Trim Paths зависит от порядка точек:
Trim Paths работает только с:
Не влияет на:
Факторы нагрузки:
Оптимизация:
Анимация:
Start = 0End: 0 → 100Используется для:
Анимация:
Start: 0 → 75End: 25 → 100Создаёт движущийся сегмент
Применение:
Пример использования:
lottie.loadAnimation({
container: document.getElementById('anim'),
renderer: 'svg',
loop: true,
autoplay: true,
animationData: animationData
});
Trim Paths автоматически обрабатывается, если присутствует в JSON.
Изменение толщины линии усиливает визуальный эффект Trim Paths.
В сочетании с пунктиром создаёт сложные анимации:
Комбинация с поворотом и масштабом усиливает динамику.
Причины:
Start >= EndПричины:
Решение:
В SVG Trim Paths реализуется через:
stroke-dasharraystroke-dashoffsetПример:
stroke-dasharray: 1000;
stroke-dashoffset: 500;
Где:
dasharray — длина путиdashoffset — смещениеLottie вычисляет эти значения динамически.
SVG:
Canvas:
Trim Paths создаётся через:
Экспортируется через Bodymovin:
Плавность анимации зависит от интерполяции keyframes:
В JSON это задаётся кривыми Безье интерполяции.
Комбинация нескольких Trim Paths:
Используется в: