This media is not supported in your browser
VIEW IN TELEGRAM
Range Mapper
Добавить эффект Slider Control на слой с экспрешном;
Применить к любому параметру:
input = effect("Slider Control")("Slider");
inputLow = 0;
inputHigh = 100;
outputLow = 466;
outputHigh = 618;
linear(input,inputLow,inputHigh,outputLow,outputHigh)
#expressions
Добавить эффект Slider Control на слой с экспрешном;
Применить к любому параметру:
input = effect("Slider Control")("Slider");
inputLow = 0;
inputHigh = 100;
outputLow = 466;
outputHigh = 618;
linear(input,inputLow,inputHigh,outputLow,outputHigh)
#expressions
👍32❤4💩1
This media is not supported in your browser
VIEW IN TELEGRAM
Счётчики
1) Обычный счётчик
toFixed(1) — количество цифр после запятой;
Добавить эффект Slider Control на слой с экспрешном;
Применить к «Source Text» у текста:
parseFloat(effect("Slider Control")("Slider")).toFixed(1)
2) Счётчик с запятыми вместо точек
Полезно в анимациях для неанглоязычных стран, где используется запятая в качестве десятичного разделителя вместо точки. Если нужен похожий сетап с большим количеством настроек, то он вот здесь.
c = parseFloat(effect("Slider Control")("Slider")).toFixed(1);
c.toString().replace(".", ",")
3) Счётчик с дополнительными знаками
"+"+parseFloat(effect("Slider Control")("Slider")).toFixed(1)+"%"
#expressions
1) Обычный счётчик
toFixed(1) — количество цифр после запятой;
Добавить эффект Slider Control на слой с экспрешном;
Применить к «Source Text» у текста:
parseFloat(effect("Slider Control")("Slider")).toFixed(1)
2) Счётчик с запятыми вместо точек
Полезно в анимациях для неанглоязычных стран, где используется запятая в качестве десятичного разделителя вместо точки. Если нужен похожий сетап с большим количеством настроек, то он вот здесь.
c = parseFloat(effect("Slider Control")("Slider")).toFixed(1);
c.toString().replace(".", ",")
3) Счётчик с дополнительными знаками
"+"+parseFloat(effect("Slider Control")("Slider")).toFixed(1)+"%"
#expressions
👍53
This media is not supported in your browser
VIEW IN TELEGRAM
Случайная позиция в пределах композиции
seed = 20;
min = [25,25,-1900]; // Подключить к 3D Point Control для контроля
max = [thisComp.width,thisComp.height,50]
seedRandom(seed,true);
random(min,max);
// Тоже самое что и
// x= random(min[0],max[0]);
// y= random(min[1],max[1]);
// z= random(min[2],max[2]);
// [x,y,z]
#expressions | Desmond Du👍26😱4❤2🔥2
This media is not supported in your browser
VIEW IN TELEGRAM
Text Typewriter Effect
Все что нужно сделать, это переназначить время на количество букв в нашем тексте и применить следующее выражение к свойству «Source Text» (Исходный текст) текстового слоя.
Все что нужно сделать, это переназначить время на количество букв в нашем тексте и применить следующее выражение к свойству «Source Text» (Исходный текст) текстового слоя.
// properties you can change#expressions
var startAt = 0;
var endAt = 9;
// trim the text
var maxLetters = Math.floor(linear(time, startAt, endAt, 0, value.length)); // number
var result = value.substring(0, maxLetters); // trim
result
👍38❤8
Выражение Bounce - отлично подходит для добавления к настройкам Scale, Rotation и Position.
amp = .1;
freq = 2.0;
decay = 2.0;
n = 0;
if (numKeys > 0){
n = nearestKey(time).index;
if (key(n).time > time){
n–;
}}
if (n == 0){ t = 0;
}else{
t = time – key(n).time;
}
if (n > 0 && t < 1){
v = velocityAtTime(key(n).time – thisComp.frameDuration/10);
value + v*amp*Math.sin(freq*t*2*Math.PI)/Math.exp(decay*t);
}else{value}
#expressions
amp = .1;
freq = 2.0;
decay = 2.0;
n = 0;
if (numKeys > 0){
n = nearestKey(time).index;
if (key(n).time > time){
n–;
}}
if (n == 0){ t = 0;
}else{
t = time – key(n).time;
}
if (n > 0 && t < 1){
v = velocityAtTime(key(n).time – thisComp.frameDuration/10);
value + v*amp*Math.sin(freq*t*2*Math.PI)/Math.exp(decay*t);
}else{value}
#expressions
👍31💩4😱3❤2🔥1
This media is not supported in your browser
VIEW IN TELEGRAM
Выражения для использования контуров как траекторий слоев
Выражение для размещения слоя по контуру:
(использовать в Position)
(использовать в Rotation)
Выражение для размещения слоя по контуру:
(использовать в Position)
path = thisComp.layer("path").content("Shape 1").content("Path 1").path; // ccылка на контур
s = effect("Slider Control")("Slider"); // ссылка на слайдер, рабочий диапазон (0, 100)
path.pointOnPath(0 + s/100, t = time)
Выражение для автоматической ориентации по контуру:(использовать в Rotation)
path = thisComp.layer("path").content("Shape 1").content("Path 1").path; // ccылка на контур
s = effect("Slider Control")("Slider"); // ссылка на слайдер, рабочий диапазон (0, 100)
s = s / 100;
p1 = path.pointOnPath(clamp(-0.001+ s, 0, 1 - 0.01), t = time);
p2 = path.pointOnPath(clamp(0.001 + s, 0.01, 1), t = time);
v = p2 - p1;
value + radiansToDegrees(Math.atan2(v[1], v[0]));
#expressions🔥45👍11😱2
This media is not supported in your browser
VIEW IN TELEGRAM
Выражение для ограничения значений параметров - clamp()
Примеры:
min = 400;Для позиции в
max = 1200;
clamp(value, min, max);
min и max нужно использовать координаты [ x , y ], либо ограничивать только x или только y.Примеры:
min = [400, 600];Выражение ограничивающие перемещение по оси y
max = [1200,600];
clamp(value, min, max)
min = 500;#expressions
max = 700;
[value[0], clamp(value[1], min, max)]
👍38
This media is not supported in your browser
VIEW IN TELEGRAM
Случайная позиция в пределах композиции
seed = 20;
min = [25,25,-1900]; // Подключить к 3D Point Control для контроля
max = [thisComp.width,thisComp.height,50]
seedRandom(seed,true);
random(min,max);
// Тоже самое что и
// x= random(min[0],max[0]);
// y= random(min[1],max[1]);
// z= random(min[2],max[2]);
// [x,y,z]
#expressions | Desmond Du❤30👍1
This media is not supported in your browser
VIEW IN TELEGRAM
Выражение для анимации текста
Что бы его использовать, вам нужно добавить текстовый аниматор с любыми преобразованиями и добавить к нему Expression selector - Add > Selector > Expression.
Вставлять в параметр Amount селектора:
Что бы его использовать, вам нужно добавить текстовый аниматор с любыми преобразованиями и добавить к нему Expression selector - Add > Selector > Expression.
Вставлять в параметр Amount селектора:
delay = 0.03; // Delay
freq = 3; // Frequency
amp = 60; // Amplitude
decay = 10; // The smaller the value, the more fluctuations
Speed = 0.8; // The smaller the value, the slower the animation
myDelay = delay*textIndex;
t = (time - inPoint)*Speed - myDelay;
if (t >= 0){
freq;
amp;
decay;
s = amp*Math.cos(freq*t*2*Math.PI)/Math.exp(decay*t);
[s,s] }else{
value
}
#expressions👍51❤6
This media is not supported in your browser
VIEW IN TELEGRAM
Ежесекундные ступенчатые повороты.
Замена time*n. Только вместо плавного поворота — ступенчатый. Чаще всего пригождается, чтобы сделать анимацию секундной стрелки, шестерёнок или других похожих механизмов.
Применить к rotation:
angle = 15; // Угол поворота в секунду
rotateDuration = 10; // Длительность поворота в кадрах
Замена time*n. Только вместо плавного поворота — ступенчатый. Чаще всего пригождается, чтобы сделать анимацию секундной стрелки, шестерёнок или других похожих механизмов.
Применить к rotation:
angle = 15; // Угол поворота в секунду
rotateDuration = 10; // Длительность поворота в кадрах
rotateDurationFr = rotateDuration/(1/thisComp.frameDuration);
wholeSecond = Math.floor(time);
startAngle = wholeSecond * angle;
ease(time, wholeSecond, wholeSecond + rotateDurationFr, startAngle, startAngle + angle)
#expressions❤49🔥18👍11
This media is not supported in your browser
VIEW IN TELEGRAM
Выражение маятник
freq=6;
amp=0.2;
decay=0.5;
if(numKeys>1 && time>key(2).time) {
v=velocityAtTime(key(2).time-0.01);
x=time-key(2).time;
s=amp*v*Math.sin(x*freq)/Math.exp(x*decay);
value+s;
}
else
{value}
#expressions | By paul.npx
freq=6;
amp=0.2;
decay=0.5;
if(numKeys>1 && time>key(2).time) {
v=velocityAtTime(key(2).time-0.01);
x=time-key(2).time;
s=amp*v*Math.sin(x*freq)/Math.exp(x*decay);
value+s;
}
else
{value}
#expressions | By paul.npx
👍35❤8