Как сделать GIF анимацию бесконечной рекурсии фотографий

Урок для фотошопа

Если вы сюда зашли - вы наверняка знаете, что такое рекурсия фото. Если же нет, то, минуя скучные объяснения, я просто покажу, как она выглядит.

Как сделать GIF анимацию бесконечной рекурсии фотографий

В этой статье я расскажу, как создать такую GIF анимацию из вашей фотографии при помощи созданных мною скриптов. Этот урок рассчитан на средний уровень владения программой Photoshop. Если же у вас отношения с ним натянутые, а сделать гифку из своей фотографии все-таки хочется, то лучше воспользуйтесь другим моим бесплатным сервисом. Ну а если вы все-таки полны решимости все сделать самостоятельно - давайте поскорее начнем.

1. Подготовка

1.1 Основа работы - выбор исходного изображения. Для работы я выбрал вот это изображение из свободного доступа.

Поскольку изображение должно бесконечно повторять само себя, фото человека с рамкой в руках подходит как нельзя лучше. Но это может быть не только рамка, но и картина на стене, окно, отражение в зеркале - все зависит от вашего желания экспериментировать. Но для первого раза я рекомендую использовать фото, максимально похожее на мой исходник. Важно, чтобы рамка в руках была ближе к середине всей фотографии, и занимала не менее 50% от площади всей фотографии

1.2 Создаем дубликат фона на случай неудачи, скройте его.

1.3 Увеличиваем всю фотографию на 200%-300%

1.4 Обрезаем изображение, делая его квадратным. Кадрировать нужно так, чтобы рамка оказалась ближе к середине. Я делаю так: увеличиваю канву (Canvas) на 200%, отмечаю центр двумя линиями (Guides).

1.5. Правильно позиционирую фото к центру.

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

2. Расчет параметров будущей анимации

2.1 Клонируем полученный слой (Duplicate layer в контекстном меню, или просто перетащить слой в пиктограмму слоя в свитке Layers)

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

2.3 Выбираем нижний слой-клон, масштабируем и вращаем так, чтобы этот слой полностью оказался в рамке верхнего слоя. Желательно сделать так, чтобы все персонажи, присутствующие на фото, влезли в рамку. Не применяя изменения, списываем параметры изменений, масштабирования и угол поворота. В моем примере получилось 54% масштабирование, 10 град. поворот. Все, теперь этот слой можно удалить.

3. Создаем коридор в глубину

3.1 Выберите начальный слой. Примените скрипт createCorridor.jsx (см. так же Как исполнить скрипт в photoshop). В параметрах задайте достаточное количество шагов, так что бы конечное изображение было всего несколько пикселей. Остальные параметры масштабирования и угол поворота задавайте те что выяснили на предыдущем шаге.

3.2 Теперь немного творчества. Есть у вас центр рамки не совпадает с центром всего изображения вашего проекта. А это как правил так и есть. Следует позиционировать слои поочередно сверху вниз так что бы изображение в рамке, которое вы редактируете, соответствовало тому что будет снаружи рамки. (см. рисунок). Таким образом самое нижнее, маленькое изображение, окажется на месте центра вращения и движения всего коридора.

3.3 Когда все тщательно выполнено и проверено по предыдущим шагам, все видимые слои можно объединить. (Ctrl+Shift+E)

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

4.1 Поместите вспомогательные линии (Guides) так что бы они пересекались в центре схождения перспективы коридора. Это пригодиться потом, когда надо будет все слои участвующие в анимации позиционировать по этому центру.

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

  • От количества кадров зависит плавность анимации, чем больше кадров, тем плавнее движение. Но помните, что размер GIF файла может получиться слишком большим из за большого количества кадров. В среднем надо рассчитывать так что бы на секунду анимации приходилось около 16 кадров (в примере я сделал 16 кадров, т.е. 1 сек. анимации.)
  • Угол поворота надо задавать тот что мы получили на шаге 2.2 (см. выше "Расчет параметров будущей анимации"), но только с отрицательным знаком.
  • Для масштабирования так же берем значение полученное на шаге 2.2, делим на 100 потом 100 делим на полученное значение. В моем примере: 100/(54/100)=185.2

4.3 В результате работы скрипта получим несколько новых слоев. Каждый слой соответствует одному кадру анимации.

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

4.5 Откройте окно анимации. Для кадра задайте время 1/количество кадров в сек. В моем примере 1/16=0.06

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

4.7 Выберите первый кадр в окне анимации и обрежьте (Crop) изображение по первой, самой большой рамке.

5. Заключительная обработка

5.1 Анимация готова, теперь используйте инструмент "Save for Web & Devices" (см. в меню File)

5.2 Размер получаемого GIF файла уменьшите в два раза (или во столько, во сколько вы увеличивали в самом начале). Остальные параметры - на ваше усмотрение. Напомню только, что от размера палитры зависит размер самого файла, который вы получите, а также качество изображения.

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

Остается пожелать вам удачных работ и интересных идей!