Эффект с именем slider control отсутствует или не существует

Обновлено: 05.07.2024

Узнайте основную информацию о создании выражений и работе с ними.

Если вам нужно создать и подключить сложные анимации, но не хочется создавать десятки или сотни ключевых кадров вручную, попробуйте применять выражения. Выражение — это небольшой фрагмент кода JavaScript. Его можно подключить к анимированным свойствам в проектах After Effects и использовать для оценки одиночного свойства слоя в конкретный момент времени.

Выражения отдают команды сделать что-либо не всему приложению (этим занимаются сценарии), а определенному свойству. Представим, что вы хотите заставить мячик, который катится на экране слева направо, покачиваться. Для этого не нужно анимировать свойство «Положение» с помощью ключевых кадров, а можно просто применить выражение покачивания.

Язык выражений основан на стандартном языке JavaScript, но для начала работы с выражениями знание JavaScript не требуется. Выражения можно создавать с помощью инструмента «Лассо» или путем копирования простых примеров и изменения их согласно требованиям. Дополнительные сведения см. в разделе Понимание языка выражений.

Представляем вам базовый пример выполнения циклов с помощью выражений:

В принципе мне оно полностью понятно за исключением одного, а именно квадратных скобок. Я не совсем понимаю в каких случаях их необходимо ставить. Я попробовал их стереть, но выражение выдало ошибку. Тогда я предположил что их необходимо ставить в случаях когда определённым свойствам присваивается значение, и попробовал проставить их по другому:

[transform.position[0], transform.position[1]] - thisComp.layer("Анимация").effect("Перейти анимация положения")("Ползунок") * thisComp.layer("Контроль").effect("Идти")("Ползунок")

Статус :

Вопрос к пользователям Adobe CC

Добрый день коллеги и друзья.
Думаю стоит ли переходить с CS6 на СС?.
В связи с этим вопрос. Работает ли динамик линк если устанавливать программы по отдельности?
Или по другому. Как и что устанавливать, что бы динамик линк работал?
И в заключении, те кто уже перешёл, поделитесь впечатлениями.
Спасибо.

Intel(R) Core(TM)2 CPU E8400 @ 3.00GHz,RAM 12 Gb, NVIDIA GeForce 8600 GT 512 MB, 4 HDD 1000Gb, 4 HDD 2000Gb, Windows 7. Adobe CC 2018, DgFotoArt, ProShow Producer 6, Juicer 3 и много чего ещё.

Конечно я такое не пишу, а копирую и вставляю. Поэтому я оставлю это тут, чтоб посмотреть в случае надобности. А может ещё кому пригодится.

Данное выражение нужно вставить в Expression в параметрах Position, Scale или другие. Таким образом при движении или увеличении масштаба, в ключевом кадре будут колебания.

А вот ещё одно выражение для затухающих колебаний. Предыдущее почему-то не работает с перемещением точки по двум осям. А вот это работает:

Bounce в тексте

Создаем или используем уже готовый текстовой слой.

Заходим в свойства текста: Text -> Animate -> Любой параметр для анимации

Будет создан аниматор, внутри него ваше свойство и селектор (Range Selector по стандарту). Удаляем стандартный селектор и нажимаем добавить новый (меню рядом с аниматором – справа) – Selector -> Expression

Открываем параметры Expression Selector и в Amount добавляем наше выражение.

Ещё вариант bounce для текста

Как заменить файл в композиции с сохранением всех его движений, эффектов и т.д

1) Выделяем слои, которые надо подвергнуть замене
2) из окна проекта тянем нужный файл, которым подменяем источник, зажав при этом Alt.

Пропорциональный виггл

виггл к одному значению переменной

w = wiggle(2,50); [value[0],value[0],w[1]]

разный виггл к двум значениям переменной Position
ww = wiggle(.8,10);
wh = wiggle(.8,1);
[ww[0],wh[1]]

Одновременно wiggle и LoopOut

L = loopOut(type = "pingpong", numKeyframes = 0);
ww = wiggle(.3,10);
wh = wiggle(.3,100);
L + [ww[0],wh[1]] - value

Если нужно сделать разный виггл и ссылаться на слой в композиции с поправкой:

L = loopOut(type = "pingpong", numKeyframes = 0);
ww = wiggle(.3,10);
wh = comp("name-comp").layer("name-layer").effect("name-effect")("Output 1");
L + [ww[0],wh+1780] - value

Как обратиться в expression к другой композиции

comp("name-comp").layer("control").effect("Color font end text")("Color")

Выражение для движения по спирали от края к центру

Применяется к Position

Округление чисел

Например при создании счётчика, чтоб округлить до целого числа

Вставить в слайдер:

Округление со знаком после точки

В source текста вставить expression

Автоматический зум вначале и в конце слоя

Резкие быстрые движения по Y

Например, для создания глитч-эффекта, путём анимации таким образом цветного слоя

Автоматический размер подложки для текста (субтитров)

Применить выражение к Size шейпа

Создать шейп, а над ним текстовый слой

В size шейпа вставить этот код:

Если несколько строк, то к position шейпа можно добавить:

для автоматического выравнивания по вертикали

Wiggle и Loop одновременно

Подходит, например, для точки в эффектах, когда использовать нуль для подобных целей затруднительно

Bounce (отскоки)

Если одно значение меньше Х, тогда выводить другое

Мне нужно было сделать виггл под музыку. Однако музыка была не всегда. При этом когда музыки не было мне нужно было, чтоб слой шатался при постоянном виггл.
Если значение музыки меньше comp("name-comp").layer("music").effect("music")("param"), тогда выводим 5. если нет, выводим 20 или больше

Изменение размера шейпов с одной стороны (сбоку) через Size с сохранением пропорции Roundness

В Anchor Point шейпа написать выражение

Слева направо
w = content("Rectangle 1").content("Rectangle Path 1").size[0];
[w/2, value[0]]

w - слева направо
-w - справа налево

h = content("Rectangle 1").content("Rectangle Path 1").size[1];
[value[0], -h/2];

h - сверху вниз
-h - снизу ввех

Плавная смена цвета

Color Balance (HLS) - анимация Hue

Если a больше b, то выводится первая строка
Если это не так, то есть a меньше b, то выводится вторая строка

так же можно использовать другие варианты
< - меньше
== - равно

Для чекбокса (галочки)

Например, нужно отображать слой или скрывать при нажатии на галочку.

В параметре прозрачности (opacity) прописать:

if (путь до эффекта чекбокс == 1) 0 else 100;

то есть, если галочка проставлена (== 1), то значение параметра прозрачности будет = 0. а если галочка не проставлена, то = 100

живой пример со ссылкой на слой settings, эффект "Checkbox" с названием "full image" в композиции "slide-show"

if (comp("slide-show").layer("settings").effect("full image")("Checkbox") == 1) 0 else 100;

Внутренняя обводка для шейпа

Add --- Offset Paths
Прикрепить параметр Amount к Stroke Width шейпа и дописать /-2

Прозрачность слоя относительно положения камеры

Выражение применяется к Opacity 3д слоя

Обратное действие в зависимости от скорости

Например на Rotatiion повесить следующий expression

Он ссылается на позицию слоя path

Счётчик с округлением и дополнительными символами

В source text прописать следующее

Счётчик с разделением на разряды

Применить следующее выражение к source text для привязки к слайдеру

Теперь тысячные будут разделяться пробелом

Счётчик с постоянным количеством цифр

Применить следующее выражение к source text для привязки к слайдеру

zerosAmount - это количество цифр. В данном примере цифры будут выглядеть как 001 002 020, то есть если в числе меньше 3 цифр, то будут добавляться нули

Счётчик для миллионов

Применить следующее выражение к source text для привязки на этот раз к Angle control

Зацикленный wiggle для разных значений

Если значения 2, например, без оси Z, тогда соответствующий параметр - wz - следует убрать как минимум из последней строчки из выражения

Для одного значения, например, для Rotation, выражение может выглядеть так:

loopTime - это время цикла в секундах. То есть длина композиции

Эффект управления количеством кадров в секунду (FPS)

Effects - Time - Posterize Time

Делать мягкие края можно разными способами. Я у Энрю Крамера увидел интересный вариант со стилем слоя
Нужно применить стиль слоя Inner Glow со следующими параметрами:

Blend mode: normal
Technique: precise
Size: 6

Изменение параметра одного значения, относительно другого

Есть какой-то меняющийся параметр, например Position, Scale или что-либо ещё. Для примера возьмём Scale, который меняется от 0 до 100
Задача: изменять другой параметр, например Slider Control, относительного того параметра Scale. Причём не просто привязав к тому Scale и меняя Slider Control с 0 до 100, а через интерполяцию. То есть чтоб, например, если Scale = 0, то Slider Control пусть будет = 25. И когда Scale = 100, то Slider Control пусть будет = 65
Таким образом можно менять нужное значение относительно другого значения в заданном диапазоне без использования ключевых точек

Для этого нужно в параметре изменяемого значения пропиcать следующее выражение:

Для конкретно текущего примера:

Вместо linear можно easeOut

Постоянная ширина обводки, независимо от scale

Прописать выражение в «Stroke Width»:

Привязка положения эффекта к слою

Применять следующее выражение к эффекту, где используется Position. Например, Radial Blur -- Center, а так же Start и End в Gradient Ramp или в Offset Turbulence в Fractal Noise

Таким образом положение эффекта не будет менять при перемещении слоя. Обычно чтоб такого достичь приходилось делать прекомпоз

Печатающийся текст с мигающим курсором

Быстрый вариант с маркерами

В Source текстового слоя вставить выражение

При этом создать 4 маркера 'cursorStart', 'textStart', 'textStop', 'cursorStop'.

Вариант со слайдером ниже. Можно регулировать скорость набора текста, останавливать печатание.

В Source текстового слоя вставить выражение

Создать Slider Control с именем txtComplete. А так же два маркера 'cursorStart', 'cursorStop'.
Слайдером регулируется количество текста от 0 до 100. Маркерами регулируется начало и конец мигания курсора

cursor="|"; - символ для мигающего курсора

Обратный отсчёт времени (Таймер времени)

Создать текстовый слой, добавить в него Слайдер

В source текстового слоя прописать выражение

Далее настраивать отсчёт через ключевые кадры слайдера. Можно делать как обратный отсчёт, так и движение времени вперёд.

Если часы не нужны, а только минуты и секунды, из выражения следует убрать

Читайте также: