Давайте рассмотрим выражения в After Effects и ошибки, которые возникают из-за использования русской версии программы на примере простого проекта, присланного мне подписчиком. Я всем рекомендую устанавливать и использовать Adobe After Effects только английской версии, и вот вам еще одна причина зачем так делать.
https://www.youtube.com/watch?v=-wEPBXPlVMI
Еще больше видеоуроков по выражениям для After Effects вы найдете в плейлисте на канале
Сразу после открытия проекта я обнаружил, что проект в нерабочем состоянии и стандартное сообщение об ошибке: This project contains an expression error / Проект содержит ошибку выражения (This project contains expression errors / Этот проект содержит ошибки выражений).
В присланном мне проекте мы видим, что при попытке выражения найти нужный слайдер в композиции на слое в After Effects, происходит ошибка доступа. Программа не может найти свойство с именем "Ползунок", потому что оригинальное выражение создавалось в русской версии After Effects. Что интереснее, подобные ошибки возникают и в обратную сторону - на русской версии After Effects не работают некоторые полезные скрипты и выражения.
Но для решения этой проблемы есть скрипт ExpressionUniversalizer, задача которого преобразовать все стандартные обращений к подобным элементам управления в универсальные идентификаторы ADBE. Например, список таких названий для стандартных эффектов вы можете найти у меня на сайте: Перевод названий эффектов для After Effects.
И вот легким движением руки скрипт ExpressionUniversalizer превращает "Ползунок" в "ADBE Slider Control-0001", который будет уже без ошибок работать во всех версиях After Effects. А вот переименовывать слои и эффекты не обязательно, After Effects знает о возможности менять имена у этим элементов и находит их правильно.
Поступил интересный комментарий от зрителя Mr.Masterpiece:
Можно и самому универсальные выражения писать, в данном случае было бы достаточно ("Ползунок") исправить на (1). Это так же работало бы на любом языке ;D
Есть специальное выражение, которое кидается на Source text. Оно показывает индекс любого параметра. Тут показывается как его применяют на 19 минуте: https://vimeo.com/19485387
Кстати, в бесплатном наборе скриптов redefinery.com: rd: scripts есть несколько под общим названием rd: Gimme Prop, что помогут определить путь или номер к нужному свойству эффекта для выражения в нескольких видах, в том числе и ADBE. Так что можно сразу писать выражения в правильной универсальной форме для любого языка.
Еще один комент от Виктора Иванова на ту же тему. Он прислал скрипт, который сразу показывает название и номер свойства слоя или эффекта, только скопировать не получится. Я немного упростил код, выбираете свойство, запускаете скрипт с кнопки или из файла и видите сообщение с нужной информацией.
Код: Выделить всё
var curComp = app.project.activeItem;
if(curComp != null && curComp instanceof CompItem){
var selProps = curComp.selectedProperties;
if(selProps.length == 1){
alert("Name: " + selProps[0].name +
"\nIndex: " + selProps[0].propertyIndex +
"\nMatch Name: " + selProps[0].matchName);
} else if(selProps.length > 1){
alert("Name: " + selProps[1].name +
"\nIndex: " + selProps[1].propertyIndex +
"\nMatch Name: " + selProps[1].matchName);
} else {
alert("No Property are selected")
}
} else {
alert("No Composition are selected");
}
Полезные ссылки:
Запись стрима по выражениям (expressions) в After Effects
Русский против Английского интерфейса
Как сменить язык у After Effects с русского на английский