Повторитель — это мощный механизм в Lottie Web, позволяющий создавать множественные копии одного объекта с заданными трансформациями. Он применяется для генерации узоров, радиальных или линейных структур, анимаций с повторяющимися элементами без дублирования исходной графики.
Повторитель берет исходный слой (или группу слоев) и создает его копии, применяя к каждой копии набор параметров трансформации:
Каждая следующая копия наследует изменения с учетом заданного смещения, создавая цепочку преобразований.
Определяет, сколько экземпляров будет создано. Значение может быть дробным, что влияет на плавность анимации при изменении параметра.
animationData.layers[0].shapes[0].it[1].c.k = 10;
Сдвигает начальную точку генерации копий. Позволяет создавать эффект движения по цепочке без изменения самих трансформаций.
animationData.layers[0].shapes[0].it[1].o.k = 2;
Каждая копия может отличаться от предыдущей по следующим параметрам:
Пример структуры:
{
"tr": {
"p": { "k": [20, 0] },
"s": { "k": [95, 95] },
"r": { "k": 10 },
"o": { "k": 100 }
}
}
Это означает:
Создание ряда кругов:
lottie.loadAnimation({
container: document.getElementById('anim'),
renderer: 'svg',
loop: true,
autoplay: true,
animationData: animationData
});
Внутри animationData:
Результат: равномерный ряд объектов.
При использовании вращения вместо линейного смещения можно получить круговые структуры:
"r": { "k": 18 }
При 20 копиях:
Модификаторы — это дополнительные эффекты, которые изменяют геометрию или визуальные свойства shape-объектов.
В Lottie Web поддерживаются основные типы:
Каждый модификатор применяется в цепочке и влияет на итоговую форму.
Позволяет анимировать отрисовку линий.
Пример:
{
"ty": "tm",
"s": { "k": 0 },
"e": { "k": 100 },
"o": { "k": 0 }
}
Анимация линии создается изменением Start и End.
Добавляет зигзагообразное искажение к форме.
Пример:
{
"ty": "zz",
"s": { "k": 10 },
"r": { "k": 5 }
}
Искажает объект вокруг центра, создавая эффект закручивания.
{
"ty": "tw",
"a": { "k": 45 }
}
Сжимает или раздувает форму.
{
"ty": "pb",
"a": { "k": 20 }
}
Смещает контур внутрь или наружу.
{
"ty": "op",
"a": { "k": 5 }
}
Повторители и модификаторы часто используются вместе:
Порядок критичен:
Внутри shape-слоя элементы обрабатываются сверху вниз:
Shape
→ Modifier
→ Repeater
→ Transform
Это определяет итоговый результат.
Все параметры repeat и модификаторов могут анимироваться:
"c": {
"k": [
{ "t": 0, "s": [1] },
{ "t": 60, "s": [20] }
]
}
Позволяет:
Использование repeat значительно экономит ресурсы:
Однако:
Хотя repeat и модификаторы чаще настраиваются в After Effects, их можно изменять динамически:
let anim = lottie.loadAnimation({...});
anim.addEventListener('DOMLoaded', () => {
let layer = anim.renderer.elements[0];
// доступ к параметрам через внутреннюю структуру
});
Важно учитывать:
Пример repeat-блока:
{
"ty": "rp",
"c": { "k": 10 },
"o": { "k": 0 },
"tr": {
"p": { "k": [30, 0] },
"s": { "k": [90, 90] },
"r": { "k": 5 },
"o": { "k": 100 }
}
}
Ключевые поля:
Повторители позволяют:
Модификаторы добавляют:
Совместное использование этих инструментов формирует основу процедурной анимации в Lottie Web.