Оптимизация проекта «Исторические ленты». Часть 1

Итак, очередная оптимизация ежедневного проекта. На этот раз «Исторические ленты». Немного картинок, немного анимации, немного текста и много экспрешенов, и скрипт в придачу.

это то, что должно получится на выходе:

 

Дано на входе:

  • одна папка со всеми данными
  • всегда разные картинки
  • всегда разный текст
  • всегда разное их количество

на выходе должно получиться:

  • конечная композиция, подогнанная по хронометражу в зависимости от количества фотографий

Проблемы:

  • разный размер фотографий
  • разное количество текста на одной плашке
  • разная (не повторяющаяся) анимация для соседних картинок
  • разный хронометраж конечного ролика

Часть проблем решалось экспрешенами, вторая часть скриптом.

Перед тем как приступать к работе, нужно хорошенько подумать что мы будем делать, где есть похожие операции(действия), где разовые. Самое, наверное, идеальное записать все действия на листочке и проанализировать…

В моём случае повторяющихся действий было много, весь проект — это простая анимация, замена картинок и текста. Поэтому эту часть было решено предоставить скрипту… запустим цикл, который будет повторяться до тех пор, пока не кончатся картинки в папке… текст тоже нужно организовать. Обычный текстовый файл не пойдет, нужна таблица… Создадим её в EXELе и экспортируем потом в CSV... посчитаем длительность открывающих и закрывающих видео и добавим к нему длительность наших композиций с картинками умноженную на их количество... Это то что будет делать скрипт, а всю анимацию и подгон картинок по размеру композиции предоставим экспрешенам...

Так что создаем проект, пустой, но со всеми настройками и экспрешенами.

Итак. Есть главная композиция (которая будет рендериться), в ней открывашка (её никак не трогаем), закрывашка (потом её нужно будет поставить в конец композиции), звук (в конце композиции надо будет увести громкость на нет), легкий блик и плашка под титры(просто просчитанная композиция с альфа-каналом), основная композиция с картинками (на ней несколько контроллеров), титры для неё и простенький переход.

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

 

В первую очередь создал несколько пустых шейповых слоёв (можно использовать и нуль-объекты, кому как нравиться, главная идея тут: название слоев соответствует способу анимации передней картинки, а к какому параметру привязывать - решать вам.. хотите к размеру, хотите к вращению... главное потом на него ссылаться), обозвал их по способу  анимации и выставил позицию по Х  1...6 (потом будем Layer Controlом выбирать анимацию) и в зависимости от того, какая будет цифра — будет и способ анимации

Этот этап можно пропустить если создать свой выпадающий список с помощью скрипта Flexx Effector, и потом уже ссылаться на него.

В главной композиции (main) есть прекомпоз Picture, и вот тут начинаются танцы с бубнами. Чтобы постоянно не залезать внутрь этой композиции, все настроечные  контролы будут находиться на этом слое в главной композиции. Этот прекомпоз будет только дублироваться и заменяться другим, чтобы все настройки (контролы) оставались на этом слое… +надо чтобы эти настройки не пересекались друг с другом. Вот контролы, которые я добавил на слой.

 

В следующей статье рассмотрим все основные экспрешены, используемые в этом проекте.