Объект | Описание | Пример |
---|---|---|
thisComp | Текущая композиция | thisComp; |
thisLayer | Текущий слой | thisLayer.transform.scale[1]; |
thisProperty | Текущее свойство выражение применяется. | thisProperty[1]; |
time | Текущий тайм -код в положении курсора за считанные секунды. | "Seconds: " + time; |
value | Текущее значение, связанное с текущим свойством. | value + "_TEST"; |
Объект | Описание | Пример |
---|---|---|
colorDepth | Глубина цвета проекта в битах на пиксель. | colorDepth; |
Функция | Описание |
---|---|
layer(index || number) | Возвращает слой, свет или объект камеры. |
layer(layer, relIndex) | Возвращает объект с относительным индексом к данному слою. |
Функция | Описание | Пример |
---|---|---|
framesToTime(frames, fps) | Преобразовать кадры в временный код за считанные секунды. | framesToTime(50, 1.0 / thisComp.frameDuration); |
timeToCurrentFormat(t, fps, isDuration) | Преобразует TimeCode в текущий формат отображения настройки проекта. | |
timeToFeetAndFrames(t, fps, framesPerFoot, isDuration) | Преобразует временный код в формат ног и кадров. | |
timeToFrames(t, fps, isDuration) | Преобразует временный код в кадры. | |
timeToNTSCTimecode(t, ntscDropFrame, isDuration) | Преобразует Timecode в NTSC Timecode с или без кадра. | |
timeToTimecode(t, timecodeBase, isDuration) | Преобразует временный код в другой временный код, используя данную временную базу. |
Функция | Описание | Пример |
---|---|---|
comp(name) | Найдите открытую композицию с данным именем. | comp("Comp 1"); |
footage(name) | Найдите кадры проекта с данным именем. | footage("RedHarring.png"); |
У вас есть:
Вы хотите:
Решение:
Допустим, у вас есть слой формы с прямоугольной формой.
Установите родителя прямоугольного слоя на текстовый слой, это сделает позиционирование относительно позиционирования текстового слоя.
Добавить следующее выражение в свойство размера прямоугольника
var textLayer = thisComp . layer ( "Text Layer 1" ) ;
var textRect = textLayer . sourceRectAtTime ( time - textLayer . inPoint , true ) ;
// set size of rectangle path to text rectangle's width and height
[ textRect . width , textRect . height ] ;
Это установит размер прямоугольника размеру текста. Когда есть несколько линий, он занимает полный размер всех линий.
var rectPath = content ( "Rectangle 1" ) . content ( "Rectangle Path 1" ) ;
var x = rectPath . size [ 0 ] ;
var y = rectPath . size [ 1 ] ;
// set position of rectangle path to text rectangle's width and height
[ x / 2 , - ( y / 2 ) ] ;
Это устанавливает нижнее левое положение пути прямоугольника вверху слева от слоя. Текстовые слои всегда имеют свои якорные точки слева от первой строки текста. Это сделает расчет более простым в выполнении.
var textLayer = thisComp . layer ( "Text Layer 1" ) ;
var textRect = textLayer . sourceRectAtTime ( time - textLayer . inPoint , true ) ;
[ textLayer . transform . position [ 0 ] + textRect . left ,
textLayer . transform . position [ 1 ] + textRect . top + textRect . height ] ;
Это устанавливает положение слоя прямоугольника в положение текста. Причина добавления размера прямоугольника заключается в том, что визуализация шрифта может привести к тому, что первая буква будет на несколько пикселей от позиции. Добавление координат прямоугольника будет компенсировать это.
Проблемы:
У вас есть:
Вы хотите:
Добавьте горизонтальный джиттер в видео, чтобы оно выглядело как 50 Гц.
Решение:
[ transform . position [ 0 ] , transform . position [ 1 ] + ( ( timeToFrames ( time ) % 2 ) * 2 ) ]
Проблемы:
Джиттер слишком тяжелый, вы можете решить это, удалив умножение в выражении
[ transform . position [ 0 ] , transform . position [ 1 ] + ( timeToFrames ( time ) % 2 ) ]
Или даже множественные его наполовину, чтобы получить очень тонкий встряхивание.
[ transform . position [ 0 ] , transform . position [ 1 ] + ( ( timeToFrames ( time ) % 2 ) * 0.5 ) ]
Текст должен быть вертикально центрирован. Добавить следующее выражение в преобразование текстового слоя. Свойство положения
S = thisLayer ;
x = transform . position [ 0 ] ;
y = transform . position [ 1 ] ;
rect = S . sourceRectAtTime ( time , false ) ;
y_offset = rect . height / 2 ;
[ x , y - y_offset ]