Разработка анимированных шаблонов

Анимация - это опция, расширяющая возможности всех существующих типов шаблонов. На основе любого типа шаблона можно построить анимированный.

Анимированный шаблон создается с помощью покадровой анимации, а результат обработки юзерфото экспортируется в анимированный GIF.

Введение в анимацию в контексте Конструктора шаблонов

Механизм создания анимированных шаблонов базируется на функциональности покадровой анимации в Photoshop. Эта функциональность расширяется возможностями Конструктора шаблонов, добавляя специфичные для шаблонов инструменты и возможности.

Покадровая анимация в Photoshop поддерживает следующие возможности, которые можно изменять от кадра к кадру:

  • Включение \ отключение видимости слоев и групп слоев.
  • Изменение положения слоев.
  • Изменение непрозрачности слоя.
  • Изменение режима наложения слоев (блендингов).
  • Изменение стилей слоя.
  • Задержку отображения кадра.

Узнать больше о принципах покадровой анимации в Photoshop можно здесь.

Конструктор шаблонов способен извлекать из кадров в Photoshop следующую информацию для анимации:

  • Изменение положения слоев.
  • Включение\отключение видимости слоев областей вписывания
  • Изменение режима наложения слоев (блендингов).
  • Задержку отображения кадра.

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

Как видно из списков выше, Конструктор шаблонов не поддерживает следующие возможности покадровой анимации в Photoshop:

  • Добавление стилей к слоям.
  • Изменение непрозрачности слоя.

В действительности, добавление стилей и изменение непрозрачности не работают со смарт-объектами, но их можно применять к графическим слоям.

Также Конструктор шаблонов не поддерживает параметры воспроизведения анимации, имеющиеся в Photoshop, используя свои собственные.

Конструктор шаблонов расширяет модель покадровой анимации в Photoshop с помощью фильтров, динамических масок и других настроек, которые можно увидеть на панели свойств слоя. Данные инструменты носят локальных характер для каждого кадра, т.е. набор фильтров и/или конфигурация их параметров для одной и той же области вписывания могут отличаться от кадра к кадру. Аналогично с настройками динамических масок для графических слоев. Переключаясь между кадрами можно установить для одной и той же области вписывания или графического слоя различные настройки.

При копировании кадров с помощью Photoshop для копий кадров теряются установленные в Конструкторе шаблонов настройки. Для того, чтобы скопировать кадр с сохранением фильтров и пр., следует выполнять копирование кадра с помощью меню Шаблон - “Копировать кадр” в главном окне Конструктора.

Нестандартные приемы анимирования

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

Если для простого передвижения смарт-объекта или графического слоя будет достаточно использовать инструмент “Перемещение / Move” и это будет работать для каждого кадра независимо, то инструменты, которые не являются явно анимируемыми в Photoshop будут иметь сквозной характер для кадров. К явно неанимируемым в Photoshop относятся такие действия как: вращение, масштабирование, подкраска графики, маскирование, деформация, а также ряд других действий. Т.е. применяя эти действия для объекта одного кадра, вы автоматически изменяете этот объект на всех кадрах.

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

Приемы обхода сквозной анимации для смарт-объектов областей вписывания

Для смарт-объектов и графических слоев в контексте анимации включение\отключение их видимости работает локально для каждого кадра (это правило не распространяется на группы слоев, см. выше). Эту особенность можно использовать для обхода ограничений, накладываемых сквозным распространением изменений между кадрами. Для этого требуется раскопировать смарт-объект внутри шаблона так, чтобы количество его копий соответствовало количеству кадров, на которых он изменяется.

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

На следующем кадре следует отобразить следующую область вписывания и модифицировать её в соответствии с потребностями этого кадра. Модифицированную область вписывания следует оставить единственно видимой относительно всех ее копий и так далее.

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

Приемы обхода сквозной анимации для графических слоев

Идея “обхода” сквозных изменений графических слоев такая же, как и для смарт-объектов. Однако здесь предметом копирования, настройки и переключения видимости являются не подгруппы графических слоев, а находящиеся в ней графические слои (или вложенные подгруппы с графическими слоями).

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

В остальном подход повторяет идею обхода сквозной анимации, описанную для смарт-объектов областей вписывания.

Действия, ломающие анимацию

Существуют действия, которые могут испортить анимацию, приведя частично или полностью в негодность шаблон:

Особенности работы с индексами фотографии в шаблонах для нескольких юзерфото

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

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

Так, например, в анимированном шаблоне из 5 кадров, в котором на кадр отображается по одной области вписывания, порядок индексов для каждого кадра следующий 0 - 1 - 2 - 1 - 0. Т.е. индексы носят сквозной характер и строятся относительно всего шаблона. Для тестирования такого шаблона на нескольких юзерфото понадобится 3 разных фотографии.

Поддерживаемые режимы зацикливания анимации

Конструктор шаблонов полностью игнорирует режимы воспроизведения анимации, установленные в Photoshop, анимируя шаблон либо в зацикленном , либо в симметрично-зацикленном режиме.

Если с зацикленным режимом все понятно из его названия, то симметрично-зацикленный режим представляет собой бесконечный цикл, в котором в рамках одной итерации анимация проигрывается от начала до конца, а потом - с конца в начало, исключая повторное воспроизведение первого и последнего кадров. Т.е. кадры будут идти в таком порядке: 1, 2, 3 … N, N-1 … 3, 2 (где N - это количество кадров шаблона). При таком режиме истоговое число кадров возрастает в почти 2 раза (за вычетом первого и последнего кадров), вместе с ним почти в два раза увеличивается размер файла.

Управлять режимами зацикливания в Конструкторе шаблонов возможно с помощью галочки напротив “Симметрично зациклить анимацию” . Если галочка не установлена, то анимация проигрывается по умолчанию в простом зацикленном варианте.

Палитра анимированного GIF-файла: глобальная и локальная палитры

На качество итогового шаблона может повлиять тип построения палитры анимированного GIF. Каждый GIF-файл хранит в себе собственную палитру - глобальную или локальную. Палитра представляет собой таблицу, которая может хранить в себе до 256 индексов - 256 цветов.

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

В случае использования глобальной палитры, для всех кадров будет построена одна общая палитра, вмещающая в себя до 256 цветов и их оттенков.

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

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

Использовать локальную палитру следует только тогда, когда это необходимо, т.к. сохранение отдельной палитры на каждый кадр может значительно увеличить объем результирующего GIF.

Ниже представлена схема, наглядно показывающая на примере одного кадра разницу экспорта анимированных GIF с разной палитрой.

Глобальная палитра + близкие по цветовой гамме кадры Глобальная палитра + различающиеся по цветовой гамме кадры Локальная палитра + близкие по цветовой гамме кадры Локальная палитра + различающиеся по цветовой гамме кадры

Ограничения анимированных шаблонов

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

Ниже перечислены ситуауции, в которых анимация может работать некорректно:

  • Шаблон типа стикер, в котором на разных кадрах используются разные юзерфото (например, на кадре 1 юзерфото 1, на кадре 2 - юзерфото 2).
  • Шаблон типа рамка, в котором на разных кадрах для одной и той же области вписывания со стикерами используются разные юзерфото.
  • Шаблон, где стикер применяется на область вписывания лица и при этом анимируется позиция области вписывания

Примеры разработки шаблонов с анимацией

Пошаговые пример создания анимированных шаблонов