Size: a a a

2020 November 26

TR

Tom Reddle in MOTION TALK
/rules
источник

G

Group Butler [beta] in MOTION TALK
ПРАВИЛА:
Писать большими сообщениями, не дробить и не частить;
Отвечать через Reply, а не Forward;
Без "а есть тут те, кто...?", сразу к вопросу;

Не нубите и не раздражайте ламерскими вопросами.

Рабочие предложения СРАЗУ подкрепляйте референсами, ТЗ, бюджетами.

Best of чат - @MOTIONTIPS
Флудилка - @MOTIONFLOOD;
Железо и компы - @HARD_TALK;
Коллективный бессознательный артдир - @MOTIONDAILIES;
Опергруппа - @dop_talk.
источник

G

Group Butler [beta] in MOTION TALK
ПРАВИЛА:
Писать большими сообщениями, не дробить и не частить;
Отвечать через Reply, а не Forward;
Без "а есть тут те, кто...?", сразу к вопросу;

Не нубите и не раздражайте ламерскими вопросами.

Рабочие предложения СРАЗУ подкрепляйте референсами, ТЗ, бюджетами.

Best of чат - @MOTIONTIPS
Флудилка - @MOTIONFLOOD;
Железо и компы - @HARD_TALK;
Коллективный бессознательный артдир - @MOTIONDAILIES;
Опергруппа - @dop_talk.
источник

А

Андрей in MOTION TALK
Да ничего сверхсложного там не планируется, не думаю что будут проблемы.
источник

А

Андрей in MOTION TALK
Переслано от Андрей
Ребята, привет!
Шарящие в выражениях, подскажите, пожалуйста:
Нужно сделать ограничение (clamp) на wiggle, который влияет на скейл только по одной оси (Х в данном случае, т.е. длина). Допустим, чтобы по Х скейл не падал ниже 80% и не поднимался выше 250%.
У меня получилось выражение вида:
a=effect("amplitude")("Slider");
w=[wiggle(.1,a)[0],scale[1]];
clp=clamp(w,80,250);
transform.scale[clp],[1]
Без clamp всё работает, а вот с ним я где-то накосячил, не оч шарю в программировании, подскажите, где ошибка.
источник

НТ

Никита Томилко... in MOTION TALK
Андрей
Переслано от Андрей
Ребята, привет!
Шарящие в выражениях, подскажите, пожалуйста:
Нужно сделать ограничение (clamp) на wiggle, который влияет на скейл только по одной оси (Х в данном случае, т.е. длина). Допустим, чтобы по Х скейл не падал ниже 80% и не поднимался выше 250%.
У меня получилось выражение вида:
a=effect("amplitude")("Slider");
w=[wiggle(.1,a)[0],scale[1]];
clp=clamp(w,80,250);
transform.scale[clp],[1]
Без clamp всё работает, а вот с ним я где-то накосячил, не оч шарю в программировании, подскажите, где ошибка.
В следующий раз используй форматирование "моноширинный" так будет легче читать в телеграмме код.
И сам код пиши с пробелами так он будет лучше читаться в любой программе.
Выделяй числа в переменные что бы не путаться где что, и тогда все будет понятно когда ты вернешься к своему коду через пару месяцев.

frq = 0.1;
amp = effect("amplitude")("Slider");
clamp_min = 80;
clamp_max = 250;

scale_wiggle = wiggle(frq, amp);
x = clamp(scale_wiggle[0], clamp_min, clamp_max);
y = value[1];

[x, y];

У тебя есть очень странная строчка:

transform.scale[clp],[1]

Как она должна работать?
источник

А

Андрей in MOTION TALK
Никита Томилко
В следующий раз используй форматирование "моноширинный" так будет легче читать в телеграмме код.
И сам код пиши с пробелами так он будет лучше читаться в любой программе.
Выделяй числа в переменные что бы не путаться где что, и тогда все будет понятно когда ты вернешься к своему коду через пару месяцев.

frq = 0.1;
amp = effect("amplitude")("Slider");
clamp_min = 80;
clamp_max = 250;

scale_wiggle = wiggle(frq, amp);
x = clamp(scale_wiggle[0], clamp_min, clamp_max);
y = value[1];

[x, y];

У тебя есть очень странная строчка:

transform.scale[clp],[1]

Как она должна работать?
Благодарю за подсказку по форматированию, действительно легче читать.

По поводу "transform.scale[clp],[1]" даже не знаю что сказать )) смотрел туторы увидел эту строчку. Я так понял она возвращает значение (в данном случае скейла) и первый индекс, т.е. "х" я поставил клемп, а "у" оставил как есть [1]. Я говорю в программировании не шарю )
Еще вопрос - как можно это модифицировать если есть ключи на скейл на слое? Вначале у меня идет рост скейла от 0 до 100, потом врубается виггл через слайдер (понятно что с таким clamp ничего не будет работать, т.к. минимум 80).
Я пока придумал просто разрезать слой в месте последнего кейфрейма и выражение оставить только у второго дубликата, но на стыке иногда есть скачок из-за wiggle.
И еще очень странно себя видет виггл - долгое время анимация стоит на месте (когда упирается в "минимальную" стенку), потом когда значения меняются начинается какое-то движение. Если увеличить частоту то эта пауза становится меньше, но сам виггл работает бешено.
источник

НТ

Никита Томилко... in MOTION TALK
Андрей
Благодарю за подсказку по форматированию, действительно легче читать.

По поводу "transform.scale[clp],[1]" даже не знаю что сказать )) смотрел туторы увидел эту строчку. Я так понял она возвращает значение (в данном случае скейла) и первый индекс, т.е. "х" я поставил клемп, а "у" оставил как есть [1]. Я говорю в программировании не шарю )
Еще вопрос - как можно это модифицировать если есть ключи на скейл на слое? Вначале у меня идет рост скейла от 0 до 100, потом врубается виггл через слайдер (понятно что с таким clamp ничего не будет работать, т.к. минимум 80).
Я пока придумал просто разрезать слой в месте последнего кейфрейма и выражение оставить только у второго дубликата, но на стыке иногда есть скачок из-за wiggle.
И еще очень странно себя видет виггл - долгое время анимация стоит на месте (когда упирается в "минимальную" стенку), потом когда значения меняются начинается какое-то движение. Если увеличить частоту то эта пауза становится меньше, но сам виггл работает бешено.
Осталась ссылка на тутор?

По поводу второго вопроса. Я как раз на днях написал вигл который может включатся по времени плавна нарастая, без рывков, сейчас найду...

На счет проблем с виглом, - ему нельзя менять значения во времени так как он использует время где то в своих потрохах. Та ошибка которую ты словил распространённый эффект когда используется что-то вроде time * slider. Обойти никак нельзя кроме просчета значений отдельно для каждого кадра.
источник

А

Андрей in MOTION TALK
Никита Томилко
Осталась ссылка на тутор?

По поводу второго вопроса. Я как раз на днях написал вигл который может включатся по времени плавна нарастая, без рывков, сейчас найду...

На счет проблем с виглом, - ему нельзя менять значения во времени так как он использует время где то в своих потрохах. Та ошибка которую ты словил распространённый эффект когда используется что-то вроде time * slider. Обойти никак нельзя кроме просчета значений отдельно для каждого кадра.
Блин, по ходу проще просто вручную заанимировать в данном случае :D
По поводу туторов не подскажу уже, кучу сайтов смотрел, долго искать в истории.
источник

НТ

Никита Томилко... in MOTION TALK
Андрей
Благодарю за подсказку по форматированию, действительно легче читать.

По поводу "transform.scale[clp],[1]" даже не знаю что сказать )) смотрел туторы увидел эту строчку. Я так понял она возвращает значение (в данном случае скейла) и первый индекс, т.е. "х" я поставил клемп, а "у" оставил как есть [1]. Я говорю в программировании не шарю )
Еще вопрос - как можно это модифицировать если есть ключи на скейл на слое? Вначале у меня идет рост скейла от 0 до 100, потом врубается виггл через слайдер (понятно что с таким clamp ничего не будет работать, т.к. минимум 80).
Я пока придумал просто разрезать слой в месте последнего кейфрейма и выражение оставить только у второго дубликата, но на стыке иногда есть скачок из-за wiggle.
И еще очень странно себя видет виггл - долгое время анимация стоит на месте (когда упирается в "минимальную" стенку), потом когда значения меняются начинается какое-то движение. Если увеличить частоту то эта пауза становится меньше, но сам виггл работает бешено.
Вот вигл для конретного времени.

amp = 25; // амплитуда
frq = 2; // частота колебаний
timeToStart = 2; // начало анимации
timeToStop = 4; // конец анимации
timeInOut = 1; // затухание (не = 0)

lin1 = linear(time, timeToStart, timeToStart + timeInOut, 0, amp);
lin2 = linear(time, timeToStop - timeInOut, timeToStop, lin1, 0);

wiggle(frq, lin2);

Можно поменять установив начало действия после последнего кейфрейма и до конца композиции.

amp = 25; // амплитуда
frq = 2; // частота колебаний
timeToStart = thisProperty.key(thisProperty.numKeys).time; // начало анимации
timeToStop = thisComp.duration + 1; // конец анимации
timeInOut = 1; // затухание (не = 0)

lin1 = linear(time, timeToStart, timeToStart + timeInOut, 0, amp);
lin2 = linear(time, timeToStop - timeInOut, timeToStop, lin1, 0);

wiggle(frq, lin2);

Совмещаем первое выражение + второе

frq = 20;
amp = effect("amplitude")("Slider");
clamp_min = 80;
clamp_max = 250;

timeToStart = thisProperty.key(thisProperty.numKeys).time; // начало анимации
timeToStop = thisComp.duration + 1; // конец анимации
timeInOut = 1; // затухание (не = 0)

lin1 = linear(time, timeToStart, timeToStart + timeInOut, 0, amp);
lin2 = linear(time, timeToStop - timeInOut, timeToStop, lin1, 0);

scale_wiggle = wiggle(frq, lin2);
x = clamp(scale_wiggle[0], clamp_min, clamp_max);
y = value[1];

[x, y];

Я проверил - у меня работает.
Но я так же полагаю что твой вариант с clamp() неудачный так как  фигура будет задерживаться максимумах и минумах амплитуды и ждать пока значение не снизится. Поэтому тут нужна интерполяция, что бы впихнуть всю амплитуду wiggle() в нужные рамки для этого можно использовать linear(). Вот то что тебе нужно без побочных эффектов:

frq = 20;
amp = effect("amplitude")("Slider");
value_min = 80;
value_max = 250;

timeToStart = thisProperty.key(thisProperty.numKeys).time; // начало анимации
timeToStop = thisComp.duration + 1; // конец анимации
timeInOut = 1; // затухание (не = 0)

lin1 = linear(time, timeToStart, timeToStart + timeInOut, 0, amp);
lin2 = linear(time, timeToStop - timeInOut, timeToStop, lin1, 0);

scale_wiggle = wiggle(frq, lin2);
x = linear(scale_wiggle[0], value[0] - amp, value[0] + amp, value_min, value_max)
y = value[1];

[x, y];
источник

А

Андрей in MOTION TALK
Никита Томилко
Вот вигл для конретного времени.

amp = 25; // амплитуда
frq = 2; // частота колебаний
timeToStart = 2; // начало анимации
timeToStop = 4; // конец анимации
timeInOut = 1; // затухание (не = 0)

lin1 = linear(time, timeToStart, timeToStart + timeInOut, 0, amp);
lin2 = linear(time, timeToStop - timeInOut, timeToStop, lin1, 0);

wiggle(frq, lin2);

Можно поменять установив начало действия после последнего кейфрейма и до конца композиции.

amp = 25; // амплитуда
frq = 2; // частота колебаний
timeToStart = thisProperty.key(thisProperty.numKeys).time; // начало анимации
timeToStop = thisComp.duration + 1; // конец анимации
timeInOut = 1; // затухание (не = 0)

lin1 = linear(time, timeToStart, timeToStart + timeInOut, 0, amp);
lin2 = linear(time, timeToStop - timeInOut, timeToStop, lin1, 0);

wiggle(frq, lin2);

Совмещаем первое выражение + второе

frq = 20;
amp = effect("amplitude")("Slider");
clamp_min = 80;
clamp_max = 250;

timeToStart = thisProperty.key(thisProperty.numKeys).time; // начало анимации
timeToStop = thisComp.duration + 1; // конец анимации
timeInOut = 1; // затухание (не = 0)

lin1 = linear(time, timeToStart, timeToStart + timeInOut, 0, amp);
lin2 = linear(time, timeToStop - timeInOut, timeToStop, lin1, 0);

scale_wiggle = wiggle(frq, lin2);
x = clamp(scale_wiggle[0], clamp_min, clamp_max);
y = value[1];

[x, y];

Я проверил - у меня работает.
Но я так же полагаю что твой вариант с clamp() неудачный так как  фигура будет задерживаться максимумах и минумах амплитуды и ждать пока значение не снизится. Поэтому тут нужна интерполяция, что бы впихнуть всю амплитуду wiggle() в нужные рамки для этого можно использовать linear(). Вот то что тебе нужно без побочных эффектов:

frq = 20;
amp = effect("amplitude")("Slider");
value_min = 80;
value_max = 250;

timeToStart = thisProperty.key(thisProperty.numKeys).time; // начало анимации
timeToStop = thisComp.duration + 1; // конец анимации
timeInOut = 1; // затухание (не = 0)

lin1 = linear(time, timeToStart, timeToStart + timeInOut, 0, amp);
lin2 = linear(time, timeToStop - timeInOut, timeToStop, lin1, 0);

scale_wiggle = wiggle(frq, lin2);
x = linear(scale_wiggle[0], value[0] - amp, value[0] + amp, value_min, value_max)
y = value[1];

[x, y];
Ух мощно ) Спасибо, буду тестить
источник

DK

Denis Kharitonov in MOTION TALK
машинисты!

если вы планировали в эту черную пятницу тариться пиксельлэбовскими вдб-облаками, то я тоже планирую

можно загрупбаить

сумма совсем небольшая, но вдруг она для кого-то велика

https://www.thepixellab.net/products

пока не решил, хочу ли все три пака или 1 и 3, но можно обсудить
источник

AM

Andrew MotionGuy in MOTION TALK
@mbakiev @Vladimir_Lukoyanov я знаю вы любите облака :D
источник

B

Bakiev M. in MOTION TALK
Я их сам генерю 😝
источник

DK

Denis Kharitonov in MOTION TALK
Bakiev M.
Я их сам генерю 😝
ну молодец, я тоже сам генерю, но дешевле покупать готовые
источник

B

Bakiev M. in MOTION TALK
Не буду препятствовать ;)
источник

RK

Roman Kopyttsev in MOTION TALK
Denis Kharitonov
ну молодец, я тоже сам генерю, но дешевле покупать готовые
Вот ведь какой. Сам себе денег пожалел?:)))
источник

DK

Denis Kharitonov in MOTION TALK
ага!
источник

RK

Roman Kopyttsev in MOTION TALK
Как это там...Я слишком дорого сам себе обхожусь!:)
источник

DK

Denis Kharitonov in MOTION TALK
мне всегда хочется сделать все своими руками

но надо что-то выбирать

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