Динамические эффекты Mograph в After Effects

Управление положением, поворотом, масштабом, непрозрачностью и цветом в зависимости от расстояния. Выражения предназначены для перемещения слоя в зависимости от его расстояния до слоя «Effector». Выражение вычисляет смещение положения текущего слоя и постепенно перемещает его ближе или дальше от текущего положения, определяемого слоем Effector. Объяснение на основе свойства Position: 1. Получение положения текущего слоя: var p1 = thisLayer.transform.position; Эта строка возвращает положение текущего слоя, к которому применяется выражение. Положение сохраняется в виде массива координат X, Y и Z. 2. Получение положения слоя «Эффектор»: var p2 = thisComp.layer("Effector").transform.position; Эта строка определяет положение слоя «Эффектор» в композиции. Слой «Эффектор» используется в качестве ориентира для определения того, как будет влиять текущий слой. 3. Извлечение элементов управления слайдером из слоя «Эффектор» var RadiusStrength = thisComp.layer("Effector").effect("Radius Strength")(1); var Radius = thisComp.layer("Effector").effect("Radius")(1); Эти строки получают значения из двух ползунков на слое «Эффектор»: «Радиус» и «Сила радиуса». «Сила радиуса» определяет минимальное расстояние, на котором начинает действовать эффект, а «Радиус» — максимальное расстояние, на котором будет действовать эффект движения. 4. Получение смещений положения из слоя «Эффектор» var MoveX = thisComp.layer("Effector").effect("Position XYZ")(1)[0]; var MoveY = thisComp.layer("Effector").effect("Position XYZ")(1)[1]; var MoveZ = thisComp.layer("Effector").effect("Position XYZ")(1)[2]; Эти строки извлекают смещения по осям X, Y и Z из элемента управления «Положение XYZ» на слое «Эффектор». Этот элемент управления определяет максимальное значение, на которое можно изменить положение текущего слоя в каждом направлении. 5. Расчет расстояния между слоями: var d = length(p1, p2); Эта строка вычисляет расстояние d между текущим слоем (p1) и слоем «Эффектор» (p2). Функция length измеряет расстояние по прямой между двумя точками. 6. Сопоставление расстояния со смещениями относительно позиции var x = linear(d, Radius, RadiusStrength, MoveX, 0); var y = linear(d, Radius, RadiusStrength, MoveY, 0); var z = linear(d, Radius, RadiusStrength, MoveZ, 0); Линейная функция используется для преобразования расстояния d в диапазон, определяющий, насколько текущий слой будет смещен по каждой оси (X, Y, Z). Когда расстояние d равно RadiusStrength, смещения (x, y, z) будут максимальными (MoveX, MoveY, MoveZ). По мере приближения d к значению Radius смещения будут постепенно уменьшаться до нуля. 7. Расчет новой позиции: var xPos = p1[0] + x; var yPos = p1[1] + y; var zPos = p1[2] + z; Эти строки добавляют рассчитанные смещения (x, y, z) к текущей позиции (p1). Таким образом, слой сдвигается ближе или дальше от исходного положения в зависимости от расстояния до слоя Effector. 8. Возврат в исходное положение [xPos, yPos, zPos]; На последнем этапе возвращается массив, представляющий новое положение слоя с учетом смещений на основе расстояния.

Иконка канала Артем Коньков
98 подписчиков
12+
26 просмотров
4 дня назад
12+
26 просмотров
4 дня назад

Управление положением, поворотом, масштабом, непрозрачностью и цветом в зависимости от расстояния. Выражения предназначены для перемещения слоя в зависимости от его расстояния до слоя «Effector». Выражение вычисляет смещение положения текущего слоя и постепенно перемещает его ближе или дальше от текущего положения, определяемого слоем Effector. Объяснение на основе свойства Position: 1. Получение положения текущего слоя: var p1 = thisLayer.transform.position; Эта строка возвращает положение текущего слоя, к которому применяется выражение. Положение сохраняется в виде массива координат X, Y и Z. 2. Получение положения слоя «Эффектор»: var p2 = thisComp.layer("Effector").transform.position; Эта строка определяет положение слоя «Эффектор» в композиции. Слой «Эффектор» используется в качестве ориентира для определения того, как будет влиять текущий слой. 3. Извлечение элементов управления слайдером из слоя «Эффектор» var RadiusStrength = thisComp.layer("Effector").effect("Radius Strength")(1); var Radius = thisComp.layer("Effector").effect("Radius")(1); Эти строки получают значения из двух ползунков на слое «Эффектор»: «Радиус» и «Сила радиуса». «Сила радиуса» определяет минимальное расстояние, на котором начинает действовать эффект, а «Радиус» — максимальное расстояние, на котором будет действовать эффект движения. 4. Получение смещений положения из слоя «Эффектор» var MoveX = thisComp.layer("Effector").effect("Position XYZ")(1)[0]; var MoveY = thisComp.layer("Effector").effect("Position XYZ")(1)[1]; var MoveZ = thisComp.layer("Effector").effect("Position XYZ")(1)[2]; Эти строки извлекают смещения по осям X, Y и Z из элемента управления «Положение XYZ» на слое «Эффектор». Этот элемент управления определяет максимальное значение, на которое можно изменить положение текущего слоя в каждом направлении. 5. Расчет расстояния между слоями: var d = length(p1, p2); Эта строка вычисляет расстояние d между текущим слоем (p1) и слоем «Эффектор» (p2). Функция length измеряет расстояние по прямой между двумя точками. 6. Сопоставление расстояния со смещениями относительно позиции var x = linear(d, Radius, RadiusStrength, MoveX, 0); var y = linear(d, Radius, RadiusStrength, MoveY, 0); var z = linear(d, Radius, RadiusStrength, MoveZ, 0); Линейная функция используется для преобразования расстояния d в диапазон, определяющий, насколько текущий слой будет смещен по каждой оси (X, Y, Z). Когда расстояние d равно RadiusStrength, смещения (x, y, z) будут максимальными (MoveX, MoveY, MoveZ). По мере приближения d к значению Radius смещения будут постепенно уменьшаться до нуля. 7. Расчет новой позиции: var xPos = p1[0] + x; var yPos = p1[1] + y; var zPos = p1[2] + z; Эти строки добавляют рассчитанные смещения (x, y, z) к текущей позиции (p1). Таким образом, слой сдвигается ближе или дальше от исходного положения в зависимости от расстояния до слоя Effector. 8. Возврат в исходное положение [xPos, yPos, zPos]; На последнем этапе возвращается массив, представляющий новое положение слоя с учетом смещений на основе расстояния.

, чтобы оставлять комментарии