Bounce на каждом маркере

jumpy

Сегодня я хотел написать свое выражение, но нашел абсолютно схожее внутри мануала по афтерэффектсу (еще раз — всем читать Expression Reference), и решил, что мы разберем его.
Как и со всеми классными выражениями, это можно аккуратно порезать на части и использовать в разных проектах.

Это выражение заставляет объект весело дрыгаться как желе на каждом маркере. Кто не знает, маркеры на слой ставятся клавишей «звездочка» на NumPad’е.

Также выражение использует всеми любимые затухающие колебания, значит понравится всем.

Для этого мы будем использовать доступ к маркерам слоя в выражении.
Чтобы получить количество маркеров на слое, нам надо написать:

Затем, мы можем получить доступ к любому маркеру по номеру.

marker.key(2).index возвращает номер второго маркера =)
marker.key(3).time возвращает время, на котором находится третий маркер.
marker.neareastKey(time).index возвращает номер ближайшего маркера.

Проблема в том, что, находясь между двумя маркерами, nearestKey(time) выдаст номер того, что ближе, неважно слева или справа.
Для наших целей надо знать номер ближайшего маркера слева (надо чтобы движение начиналось именно на маркере). Поэтому введем проверку: если время ближайшего маркера больше текущего времени, то ближайший маркер имеет номер на 1 меньше. (Картинка прилагается. Надеюсь никто не забыл про бумажку и карандаш).

Всем советую читать мануал по выражениям

Важно

Если написать marker.key(2) или даже marker.nearestKey(time), то получим ошибку, потому что эти запросы вернут нам объект «маркер», который не имеет численного выражения. Поэтому надо уточнять, чего ты хочешь от маркера — его время или номер например (это вытекает из природы JavaScript, да и любого другого языка программирования).
Почитайте мануал, чтобы понять, что еще у него можно спросить и как это можно использовать.

Если вы не поняли, что значит «возвращает»

  • Вы передаете функции значения аргументов, а она возвращает вам результат.
  • «+» это функция, 2+3 возвращает 5.

Конечно это все упрощенно и для не-программистов.

А как это можно использовать? Посмотрите например на этот скрипт.
http://aescripts.com/audiotomarkers/
И пишите свои идеи и вопросы в комментариях

There is one comment

  1. Алина

    Приветствую!
    А для реализации данного выражения — его добавить в scale ? поставив перед этим пару маркеров и ключей. ( конечно я так и сделала, но просто так сразу у меня не получилось =р ).

Comments are closed.