Маски в Lottie Web основаны на данных, экспортируемых из After Effects, и представляют собой слой-ограничение видимости, применяемое к содержимому слоя через векторные или альфа-данные. В отличие от классических canvas- или DOM-масок, Lottie работает с декларативным описанием масок в JSON и интерпретирует их в рантайме через движок рендера.
Маски хранятся внутри слоя в поле masksProperties.
Каждый элемент массива описывает отдельную маску:
pt — путь маски (анимируемая форма)o — непрозрачность маскиexp — расширение/сжатие границ маски
(feather/expansion)mode — режим смешивания маскиinv — инверсия маскиПример структуры:
"masksProperties": [
{
"mode": "a",
"pt": { ... },
"o": { "a": 0, "k": 100 },
"exp": { "a": 0, "k": 0 },
"inv": false
}
]
Каждая маска действует в рамках конкретного слоя и не выходит за его границы.
Наиболее распространённый тип масок. Основан на векторных контурах, аналогичных shape layers в After Effects.
Характеристики:
pt (path data)Векторная маска интерпретируется как набор кривых Безье, которые вычисляются в каждом кадре.
Ключевая особенность — полная синхронизация с анимацией shape layers, включая морфинг.
Альфа-маска определяет видимость слоя на основе прозрачности другого слоя или его масочного пути.
В Lottie Web альфа-поведение достигается через комбинацию:
o)mode)Фактически Lottie не использует отдельный “alpha channel mask” как bitmap-системы, а симулирует его через векторное перекрытие.
Особенности:
Инверсия маски задаётся через поле:
"inv": true
Поведение:
Инверсия особенно полезна для создания “вырезов” и отрицательных пространств.
Пример логики:
Lottie позволяет применять несколько масок одновременно. Они
обрабатываются последовательно в порядке массива
masksProperties.
Каждая следующая маска модифицирует результат предыдущей.
Типичные сценарии:
Важно учитывать:
Поле mode определяет поведение маски относительно
слоя.
Наиболее распространённые режимы:
Базовый режим.
Логика:
Вычитание области маски.
Логика:
Пересечение областей.
Логика:
Некоторые версии After Effects и экспортёры могут добавлять:
Однако в Lottie Web поддержка этих режимов ограничена и зависит от
версии lottie-web и рендерера (SVG / Canvas).
Отдельный механизм, часто путаемый с масками — Track Matte (маттинг слоёв).
В Lottie это реализуется через поле слоя:
"tt": 1
Типы matte:
| Маски | Track Matte |
|---|---|
| применяются внутри слоя | используют другой слой |
описываются в masksProperties |
задаются через tt |
| могут быть множественными | обычно один матт-слой |
| вычисляются локально | зависят от соседнего слоя |
Track Matte фактически использует визуальный контент другого слоя как маску.
Комбинация mode и inv создаёт большое
количество вариантов поведения:
При комбинировании важно учитывать порядок обработки:
<clipPath> или
<mask>Особенности:
globalCompositeOperationОсобенности:
Маска в Lottie может быть анимирована через ключевые кадры:
pt)o)exp)Это позволяет создавать:
Особенность: анимация пути маски требует постоянного пересчёта геометрии на каждом кадре.
Маски являются одним из наиболее дорогих по вычислениям элементов в Lottie.
Основные ограничения:
Практические аспекты:
Используются subtract-маски для “заполнения” или “среза” формы.
Add-маска с анимируемым path создаёт эффект раскрытия интерфейса.
Маски применяются для поэтапного появления текста через геометрические окна.
Комбинация intersect и track matte используется для сложных интерфейсных переходов.
Библиотека lottie-web интерпретирует маски следующим
образом:
Важный момент: разные версии lottie-web могут по-разному
обрабатывать сложные комбинации matte + masks, особенно при смешении SVG
и Canvas рендереров.