liquifiedwarp
Об эффекте
liquifiedwarp используется для пластической деформации изображения. Настройки эффекта позволяют задать точки модификации, для каждой из которых вы можете указать характер изменения, направление и область действия.
Для удобства настройки эффекта вы можете включить режим отладки, в котором точки движок масок будет отрисовывать точки модификации и направление или область действия в точке.
Пример
JSON
{
"preview": "Icon.png",
"effects": [
{
"name": "liquifiedwarp",
"progress": 0.8,
"points": [
{
"type": "zoom",
"anchor": "right_eye",
"offset": [-4.5, 0.0],
"radius": [50.0, 50.0],
"angle": 0.0,
"scale": -100.0
},
{
"type": "zoom",
"anchor": "left_eye",
"offset": [4.5, 0.0],
"radius": [50.0, 50.0],
"angle": 0.0,
"scale": -100.0
},
{
"type": "shift",
"anchor": "mouth",
"offset": [0.0, 0.0],
"radius": [150.0, 150.0],
"angle": 90.0,
"scale": 10.0
}
]
}
]
}
Параметры эффекта
Параметр | Описание |
---|---|
name | Название эффекта. Должно быть "liquifiedwarp" .
Тип данных: string . |
progress | Сила эффекта. Может принимать значение от 0.0 до 1.0 . По умолчанию сила эффекта максимальна (1.0 ).
Тип данных: float . |
points | Перечисление (массив) точек модификации. Каждая точка описывается рядом параметров. См. Параметры points ниже. На всю маску рекомендуется использовать не более 15 таких точек.
Тип данных: array<obj> . |
version | Версия алгоритма, который использует движок для отрисовки пластической деформации. Может принимать значения 0 и 1 :
• "version": 0 — это версия, которая использовалась ранее. Модификация чувствительна к размерам экрана и расстоянию до пользователя. Искажение происходит в плоскости экрана — 2D. Эта версия сейчас используется по умолчанию для совместимости с уже созданными масками.
• "version": 1 — это улучшенная отрисовка, в которой изображение модифицируется в 2.5D пространстве, не зависит от размера и от дистанции между пользователем и камерой.
«2.5D» означает, что точка модификации плоская, но она оторвана от экрана и может вращаться вместе с головой пользователя, то есть быть не параллельной сторонам экрана. В старой версии модификация всегда параллельна сторонам экрана.
При разработке новых масок, мы рекомендуем использовать новую версию.
Тип данных параметра: int . |
Важно! В случае изменения параметра
version
в уже готовой маске, вам необходимо обновить параметры точек модификации, т.к. результат работы алгоритмов существенно отличается.
Параметры points
Параметр | Описание |
---|---|
type | Тип точки модификации. Возможные значения:
• "zoom" — увеличение или уменьшение области, или
• "shift" — сдвиг пикселей определённой области в заданном направлении.
Тип данных: string . |
anchor | Точка привязки, относительно которой будет происходить модификация:
• "right_eye" — правый глаз;
• "left_eye" — левый глаз;
• "middle_eyes" — переносица;
• "forehead" — лоб;
• "nose" — нос;
• "mouth" — рот;
• "right_cheek" — центр правой щеки;
• "left_cheek" — центр левой щеки;
• "lower_lip" — нижняя губа;
• "upper_lip" — верхняя губа;
• "chin" — подбородок.
Тип данных: string . |
offset | Положение точки модификации в двухмерном пространстве относительно точки привязки anchor , например, "offset": [-10.0, 20.5] .
Тип данных: array<float>[2] . |
radius | Радиусы области действия модификации по осям X и Y. Например, "radius": [50.0, 45.8] .
Тип данных: array<float>[2] . |
angle | Направление сдвига в градусах для модификации вида "type": "shift" .
Тип данных: float . |
scale | Сила действия точки модификации. Для "type": "shift" при положительном значении область будет сдвинута в направлении angle , при отрицательном — в противоположном направлении.
Для "type": "shift" положительное значение расширит область, отрицательное — сожмёт.
Тип данных: float . |
debug | Указывает, включен ли отладочный режим для точки (true ) или нет (false ). При включённом режиме во время просмотра маски будут показаны:
• красная точка — расположение точки модификации;
• зелёная полоса — направление действия для точки деформации вида "type": "shift" ,
• серый круг — зона действия модификации.
Тип данных: string . |