Выражения в Adobe After Effects. Использование выражений.

Так что же такое выражения ? И как ими пользоваться ?

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

6;

Но зачем такие сложности ? Не проще ли просто установить значение параметра в 6 напрямую ? А вот следующий пример выражения будет уже поинтереснее:

rotation;

Такая формула будет возвращать значение параметра поворота (Rotation) в данный конкретный момент. И вот это значение мы можем использовать как значение любого параметра. Например, прозрачности (Opacity). Таким образом значение параметра прозрачности слоя будет синхронизировано с значением поворота слоя parameter. Слой повернется на 30% и прозрачность установится в 30%. И т.д.

Если синтаксис и сам язык выражений показался вам знакомым - ничего удивительного. Это синтасис JavaScript. Видимо, это связано с тем, что синтаксис JavaScript стал уже индустриальным стандартом для разного рода скриптовых языков. Что так же неудивительно - Javascript содержит богатый набор средств для описания достаточно сложных формул, не исключая, конечно и основные математическии функции и операции. Но вернемся к "аппарату выражений" Adobe After Effects. И рассмотрим еще одно выражение:

opacity*10;

Это выражение уже посложнее, хотя и оно очень доступно для понимания. Резульатом вычисления этого выражения будет число, равное значению прозрачности данного слоя в данный момент, умноженное на 10. И так как прозрачность меняется от 0 до 100, то и результат просчета указанного выражения будет меняться от 0 до 1000. Это значение и будет у параметра, к которому применено данное выражение.

Если это формула, то где же знак "=" ? Конечно, вам было бы привычнее, что бы выражения выглядели так: "position=rotation". Было бы... Но здесь принято по-другому и знак приравнивания "=" используется иначе. (На мой взгляд, тем кто когда-нибудь программировал было бы наоборот трудно привыкнуть к традиционному использованию знака "=" /Digital LiON)

Проще всего будет смириться с существующим положением дел, подразумевая в начале выражения нехватающей части формулы. Типа "position=", например.

Конечно, знак "=" не запрещен, вы вполне можете пользоваться им для приравнивания, главное не ставьте его в начале (в конце) выражения.

Одно выражение управляет лишь одним параметром. В принципе, из всего вышесказанного как раз и следует тот факт, что одно выражение может управлять лишь одним параметром. Избежать же такого вполне логичного ограничения можно присвоив выражение сначала одному параметру, а потом точно такое же выражение присвоить другому параметру.

Выражения, состоящие из нескольких строк. Хоть сотни строк. Конечно, хорошо, когда выражения короткиеи логически прозрачные. Однако сложное выражение может содержать сколько угодно операторов, записаных построчно. Параметру, которому выражение присвоено, значение буде передано из последней строки выражения. Не именно последней, а последней вычисленной строкой. (Из этой оговорки вы можете сделать предположение, что выражения могут использовать условные операторы. Да это так и позже мы вернемся к этому вопросу. /Digital LiON). Итак, пример многострочного выражения:

offset=30;
ralph=rotation+offset;
ralph;

Параметру будет присвоено значение переменной "ralph", равное в свою очередь значению параметра поворота (Rotation) слоя, плюс 30 градусов:



Кстати, вы наверное, уже обратили внимание на тотфакт, что строки разделяются точкой с запятой. Именно этот знак дает знать Adobe After Effects, что строка кончилась и сейчас начнется другая строка. В принципе, в конце последней строки ставить точку с запятой не обязательно. Все рано дальше ничего нет. Но все же лучше ставить точку с запятой после каждой строки, включая последнюю. Это дисциплинирует.

Ну и как же добавить к проекту выражение? Есть два сравнительно несложных пути решения этой задачи. Первый: выберите нужный параметр в окне Timeline и воспользуйтесь командой меню Animation/Add Expression. Второй: удерживая нажатой клавишу [Alt], щелкните мышью по миниатюрному схематическому изображению секундомера, левее названия соответствующего параметра в окне Timeline.



И вот что произойдет: на Timeline появятся еще несколько органов управления.



Во первых, левее названия параметра появится кнопка с знаком "равно" (=). Эта кнопка позволяет временно включать/выключать исполнение выражения. Для отладки жто пригодится.

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

В третьих, правее названия параметра вы получите ряд из трех иконок, о назначении которых мы поговорим позже.

В четвертых, вы увидите текстовое поле, где собственно и "живет" выражение. Именно там вы можете вводить и редактировать их. Пусть вас не смущает тот факт, что для редактирования доступна лишь одна строка - нажимайте [Enter] и добавляйте строки, все они могут быть прокручены в однострочном текстовом поле и отредактированы.

Теперь о трех упомянутых иконках.
Первая, самая левая из них открывает графическое представление (график) изменения параметра под воздействием выражения. Если же ваше выражение управляет траекторией движения, ее вы увидите в основном окне композиции.

Вторая иконка помогает устанавливать связи в выражении. Вы просто перетащите ее на интересующий вас параметр и переменная, соответствующая нужному параметру появится в выражении. Это достаточно просто, но все же об этом мы еще подробно поговорим дальше.

Третья иконка - меню с элементами языка. В этом меню перечислены все доступные вам объекты и атрибуты. Исходя из этого - это меню может служить неплохим справочникам по составным частям выражений.

Итак, как же всем этим богатством пользоваться ? Пару абзацев назад упомниалась иконка, помогающая устанавливать связи в выражениях (средняя из трех /Digital LiON). О ней сейчас и пойдет речь.



Такой прием создает "живую" (или "динамическую", как хотите /Digital LiON) связь между параметром к которому применяется выражение и параметром, к которому была протянута связь. Например, свяжите подобным образом параметры поворота слоя (Rotation) и прозрачности слоя (Opasity). Теперь анимируйте (ключевыми точками /Digital LiON) параметр Rotation и в такт ему будет изменяться позрачность слоя.

Если связываемые параметры находятся в одной композиции, то тогда все просто. А вот если в разных, результирующая форма будет несколько посложнее. Например:

this_comp.layer("Solid 1").opacity

(Напоминает объектно-ориентированное программирование. Это оно и есть. JavaScript все таки /Digital LiON). В этом выражении перво наперов идентифицируется композиция: "this_comp", далее слой в указанной композиции, ну и в конце концов уазывается привязываемый параметр. Вот тут то и становится ясным, почему не следует пренебрегать понятными именами слоев. Иначе легко запутаться. Так или иначе, надеюсь, вы поняли что ничего сверхъестественного в описываемой иконке нет. Это не более, чем впомогательное средство, помогающее вам не напутать с именами и названиями параметров. Набравшись опыта вы сможете и вовсе не пользоваться этим средством и так даже будет быстрее.

Hosted by uCoz