Текущие версии программ: After Effects CC 2017 v14.2.1  Premiere Pro CC 2017 v11.1.2

не стесняйтесь создавать новые темы для новых вопросов

Генерирование текста со случайными цифрами с помощью выражений в After Effects

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение
Ссылки, описания, дополнительная информация для моих уроков на YouTube
Canonical Link
Аватара пользователя

Автор темы
aeplug
Санта
Санта
Сообщения: 1354
Зарегистрирован: 18 мар 2016 23:20
Откуда: С Ютуба
Благодарил (а): 3 раза
Поблагодарили: 158 раз

Генерирование текста со случайными цифрами с помощью выражений в After Effects


Теги:

Сообщение aeplug » 25 май 2016 03:36

Создавая технологичное видео, пропитанное духом информационных технологий, частенько бывает нужно на фоне разместить разные тестовые слои с меняющимися или статичными цифрами в качестве так называемого "визуального мусора".
poster.jpg
poster.jpg (41.1 КБ) 2098 просмотров
poster.jpg
poster.jpg (41.1 КБ) 2098 просмотров

Сделать это достаточно просто, используя систему выражений в After Effects для свойства слоя Source Text.
Свойство текстового слоя Source Text.jpg
Свойство текстового слоя Source Text.jpg (39.2 КБ) 2246 просмотров
Свойство текстового слоя Source Text.jpg
Свойство текстового слоя Source Text.jpg (39.2 КБ) 2246 просмотров

Зажимаем кнопку ALT и щелкаем мышкой по кнопке секундомера для создания простого выражения по умолчанию.
создание выражения с ALT.jpg
создание выражения с ALT.jpg (12.94 КБ) 2246 просмотров
создание выражения с ALT.jpg
создание выражения с ALT.jpg (12.94 КБ) 2246 просмотров

Более подробно о выражениях смотрите тут - Запись стрима по выражениям (expressions) в After Effects
https://www.youtube.com/watch?v=3SoxCcRYirA
Теперь через меню быстрого доступа к функциям в группе Random Numbers можем назначить нужную функцию. Выберем пока самую простую random().
Фукнкции группы Random.jpg
Фукнкции группы Random.jpg (43.11 КБ) 2246 просмотров
Фукнкции группы Random.jpg
Фукнкции группы Random.jpg (43.11 КБ) 2246 просмотров

Теперь в каждом кадре у текста будет свое уникальное цифровое значение в диапазоне от 0 до 1.
простой random.jpg
простой random.jpg (34.96 КБ) 2246 просмотров
простой random.jpg
простой random.jpg (34.96 КБ) 2246 просмотров

Для этой функции можно использовать несколько параметров в скобках - минимальное и максимальное значения.
Разновидности фукции random.jpg
Разновидности фукции random.jpg (4.3 КБ) 2246 просмотров
Разновидности фукции random.jpg
Разновидности фукции random.jpg (4.3 КБ) 2246 просмотров

Например random(1000) будет генерировать случайное число от 0 до 1000. А random(500, 2000) - в диапазоне от 500 до 2000. Не всем может понравится длинный хвост из дробных значений случайного числа. От него можно легко избавиться с помощью одной из функций:
  • Math.round()
  • Math.floor()
  • Math.ceil()
Округление чисел.jpg
Округление чисел.jpg (32.38 КБ) 2246 просмотров
Округление чисел.jpg
Округление чисел.jpg (32.38 КБ) 2246 просмотров

Честно говоря, я особо не вникал какая между ними разница, но эту информацию можно без проблем найти в интернете на сайтах посвященных JavaScript. Возьмем самую простую функцию округления, знакомую всем по начальным классам в школе. Таким образом мы избавились от "хвоста" ненужных цифр.
Нет хвоста.jpg
Нет хвоста.jpg (22.78 КБ) 2246 просмотров
Нет хвоста.jpg
Нет хвоста.jpg (22.78 КБ) 2246 просмотров

Если же все таки "хвост" нужен, но не такой длинный, можно использовать

Код: Выделить всё

toFixed(количество цифр после десятичного знака)

Действие tofixed.jpg
Действие tofixed.jpg (16.78 КБ) 2246 просмотров
Действие tofixed.jpg
Действие tofixed.jpg (16.78 КБ) 2246 просмотров

Только вот результат будет уже не цифровым значением, а текстовым. Это может вызвать проблемы с последующими арифметическими операциями в формуле. Как в этом примере, когда "+2" просто добавляется к концу текстовой строки как текст, вместо целой части самого числа.
операция сложения.jpg
операция сложения.jpg (16.43 КБ) 2246 просмотров
операция сложения.jpg
операция сложения.jpg (16.43 КБ) 2246 просмотров

Текст с такими выражениями меняется в каждом кадре и это может оказаться слишком быстрым мельтешением. В таком случаем мы можем добавить

Код: Выделить всё

posterizeTime(частота изменений в секунду)

Действие posterizeTime.jpg
Действие posterizeTime.jpg (24.63 КБ) 2246 просмотров
Действие posterizeTime.jpg
Действие posterizeTime.jpg (24.63 КБ) 2246 просмотров

В этом примере генерация нового числа будет происходит только 2 раза в секунду, а не в каждом кадре. Если на разные текстовые слои скопировать это выражение, то для каждого слоя будет создаваться свое уникальное значение. Так что просто дублируя такой слой, мы получаем новый набор цифр, что бывает удобно для быстрого создания анимированных массивов случайных цифр.
Несколько текстовых слоев.jpg
Несколько текстовых слоев.jpg (53.37 КБ) 2246 просмотров
Несколько текстовых слоев.jpg
Несколько текстовых слоев.jpg (53.37 КБ) 2246 просмотров

Дело в том, что для генерации наборов случайных чисел обычно используется уникальный идентификатор слоя (который просто не может быть одинаковым у разных слоев), свойство внутри слоя, текущего времени и значения смещения равного 0. Аналогом этого значения является параметр Seed, который часто используется в других плагинах и программах, так или иначе связанных со случайными значениями. Изменять его значения в выражении After Effects можно функцией

Код: Выделить всё

seedRandom(seed, timeless = false)

Где seed как раз и будет число, отвечающее за уникальность каждого набора (значение смещения, отличное от 0). А timeless будет ли оно меняться в течении ролика (зависеть от переменой времени time) или нет. Например seedRandom(1, true) запретит числу меняться вообще.
Статичные случайные числа.jpg
Статичные случайные числа.jpg (48.02 КБ) 2246 просмотров
Статичные случайные числа.jpg
Статичные случайные числа.jpg (48.02 КБ) 2246 просмотров

Но каждый новый слой с такой формулой все равно будет иметь свое уникальное, но постоянное значение. Тоже бывает очень удобно для создания всяких шкал и графиков, где не нужно менять числа.

Так же в группе случайных функций вы может заметить еще несколько вариантов:
  • gaussRandom()
  • gaussRandom(maxValOrArray)
  • gaussRandom(minValOrArray, maxValOrArray)
От обычного random() они отличаются гауссовым распределением (Нормальное распределение — Википедия) при генерации. Примерно 90% результатов будет находится в диапазоне 0–1, а оставшиеся 10% вне этого диапазона (так написано в документации у Adobe).

Дополнительную информацию по этой теме вы можете найти в документации по After Effects - Язык выражений в After Effects
https://helpx.adobe.com/ru/after-effects/using/expression-language-reference.html
А ниже скачать сам проект, который я использовал для демонстрации, с несколькими примерами из этого урока.
Вложения
Гереатор случаных чисел CC 2015.rar
(6.65 КБ) 134 скачивания
Гереатор случаных чисел CC 2015.rar
(6.65 КБ) 134 скачивания


Видео уроки для After Effects http://www.youtube.com/AEPlug
Платные консультации по работе в программах

Теги:


Аватара пользователя

Автор темы
aeplug
Санта
Санта
Сообщения: 1354
Зарегистрирован: 18 мар 2016 23:20
Откуда: С Ютуба
Благодарил (а): 3 раза
Поблагодарили: 158 раз

Полезные ссылки по теме

Сообщение aeplug » 27 июл 2017 02:53

Пресет для цифр с разделителем групп
Animated Number Counters - After Effects Tutorial (No Third Party Plugin)
https://www.youtube.com/watch?v=9p2sSXSFJwg
Видео уроки для After Effects http://www.youtube.com/AEPlug
Платные консультации по работе в программах


Вернуться в «Мои уроки»

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей