Примеры разработки шаблонов типа "Стикер"

Пример создания простого шаблона-стикера

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

Откроем конструктор шаблонов. В меню Файл выберем пункт Создать новый проект.

В открывшемся окне выбираем тип шаблона Стикер, выбираем Новый PSD документ, а также выбираем место сохранения проекта.

Выбор типа шаблона важен. Отличительной чертой шаблона типа Стикер является то, что фотография пользователя не кадрируется. И хотя эффект наложения стикера можно использовать и в других типах шаблонов, входная фотография не будет кадрироваться только в шаблонах типа Стикер и Фильтр.

Конструктор шаблонов сгенерирует структуру для шаблона типа Cтикер. Обратимся к ней.

В группу Стикер следует поместить графику, которая сформирует стикер.

Каждый стикер, создаваемый в рамках Конструктора шаблонов, должен быть представлен отдельной группой с названием, начинающимся со слова Стикер (например, Стикер 1, Стикер 2 и т.п.). Для шаблона с одним стикером достаточно назвать единственную группу словом Стикер.

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

Все слои, лежащие внутри стикера, растеризуются на уровне его группы. К группе стикера можно применить блендинг (см. список блендингов), а также можно применить маску.

Смарт-объект SQ Область Вписывания (не удалять!) [uv] нужен для технических целей. Также в него можно поместить фотографии для “примерки” в Photoshop.

Перенесем заранее подготовленный слой с очками в шаблон, в группу с названием Стикер [uv]. Попутно удалим Прямоугольник 1.

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

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

Перейдем в Конструктор шаблонов и перечитаем PSD-документ.

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

В левой панели появился стикер с очками.

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

Для доступа к параметрам позиции стикера в Конструкторе Шаблонов кликнем правой кнопкой мыши по слою Стикер [uv], далее в контекстном меню выберем Изменить растеризацию > SQ Область Вписывания (Не удалять!) [uv] > Растеризация "Стикер [uv].

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

Перед нами открывается редактор позиции стикера.

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

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

Центральная точка стикера изначально всегда находится по координатам x=0; y=0. Начало координат расположено в геометрическом центре изображения стикера, оси X, Y направлены вправо и вверх соответственно. Положение центральной точки визуально легко определить по положению прицела на превью самого стикера.

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

Обратите внимание на то, что при смещении центральной точки стикера ее положение относительно лица на превью не изменилось. Изменилось только положение центральной точки относительно самого изображения стикера.

До изменения центральной точки
После изменения центральной точки

Следующим этапом работы является масштабирование стикера. Руководствуясь антропологическими аргументами, лучше всего масштабировать очки относительно ширины головы. Укажем масштаб в 100%.

Масштаб стикера: 100% от ширины головы

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

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

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

Заготовленные варианты не покрывают абсолютно все случаи позиционирования стикера и не гарантируют качественный результат позиционирования для всех стикеров. Но их целесообразно использовать как начальный вариант с дальнейшей его доводкой под конкретный стикер.

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

Обратите внимание, что при выборе опорных точек на схеме они обводятся линиями. Курсор силы притяжения находится по координатам X: 0; Y: 20544. Это его положение по умолчанию для типовой привязки типа “на лбу”.

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

На превью видно, что очки начинают “вставать на своё место”.

Однако, если обратиться к другим тестовым фото, то можно заметить, что очки еще не везде “сели на переносицу”:

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

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

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

Прицел силы притяжения позиционируется по горизонтальной и вертикальной осям, по X и по Y, соответственно. Оси направлены вправо и вверх соответственно. Начало координат находится на опорной точке переносицы. Диапазон изменения координат прицела силы притяжения по оси Y=±40000, по X=±26800. Допустимы только целочисленные координаты.

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

Для текущего шаблона следует сместить прицел вниз так, как показано на следующем скриншоте. Прицел должен приобрести координаты X: 0; Y: 12500. При смещении прицела вниз силы притяжения центра стикера к правой и к левой опорным точкам становятся слабее, а сила притяжения к нижней опорной точке возрастает.

Из превью становится очевидным, что стикер с очками оказался на своем месте.

Сохраняем настройки стикера, нажав на ОК и тестируем шаблон. При необходимости можно вернуться к любому из шагов и внести необходимые правки.

Скачать получившийся в этом примере шаблон можно здесь.

Создание шаблона типа Стикер с использованием подразмеров

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

Обычно подразмеры выбираются путем деления размера пополам. Т.е. для размера 5000px можно задать следующие подразмеры: 2500px, 1250px, 625px. Также на практике распространен следующий вариант: 3200px, 1600px и 800px. Для некоторых шаблонов может потребоваться более тонкий экспериментальный подбор оптимального набора подразмеров для достижения требуемого качества обработки юзерфото. Конструктор позволяет в любой момент отредактировать подразмеры для шаблона.

При обработке юзерфото выбирается ближайший подразмер, больший либо равный (по большей стороне) данному юзерфото. Так, если вы создали шаблон с размером в 5000px по большей стороне и подразмерами в 3200, 1600 и 800 пикселей, то применимость подразмеров к юзерфото будет такой, как показано в таблице ниже:

Подразмер 800px Фотография с большей стороной до 800px включительно
Подразмер 1600px Фотография с большей стороной от 801 до 1600px включительно
Подразмер 3200px Фотография с большей стороной от 1601 до 3200px включительно
Исходная графика шаблона (5000px) Фотография с большей стороной, превышающей 3200px

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

Далее, на вкладке Дополнительно включим использование подразмеров и перейдем к диалогу их настроек, кликнув на кнопку Настроить.

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

Укажем подразмеры в соответствующем блоке: 800px, 1600px и 3200px.

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

Перечитайте psd-документ. Конструктор автоматически создаст набор графики под каждый выбранный подразмер и при обработке юзерфото будет использован наиболее близкий по размерам набор графики.

После перечитывания psd-документа необходимо позиционировать стикер.

Рекомендуемые параметры для позиционирования:

После установки параметров необходимо применить их и закрыть окно Редактора Позиции Стикера.

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

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

Выбрав с помощью фильтра фотографии, соответствующие выбранному подразмеру, можно посмотреть результаты обработки с использованием заданного подразмера.

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

Убедитесь в том, что стикер отображается в шаблоне корректно, применив его для нескольких фотографий для каждого подразмера (800, 1600, 3200, исходный размер).

Сохраните выгруженные результаты и сохраните проект.

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

Обработайте те же самые юзерфото, которые вы обрабатывали шаблоном с использованием подразмеров, и сравните результат:

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

Для уже созданных шаблонов типа "стикер" можно редактировать\добавлять\удалять значения подразмеров, нажав на меню Файл - > Редактировать проект.

В открывшемся окне на вкладке Дополнительно следует скорректировать необходимые подразмеры и сохранить изменения.

Появится предупреждение о необходимости перечитать psd-документ.

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

Получившийся в результате проект можно скачать здесь.

Пример построения симметрии для стикеров

Иногда возникают задачи по позиционированию симметричных объектов относительно вертикальной оси лица.

Задачу можно решить двумя способами.

Первый способ: Поместить оба изображения в один стикер и единожды позиционировать \ масштабировать его по какой-либо опорной точке, лежащей на оси симметрии.

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

Второй способ: Разместить каждое изображение в отдельном стикере, позиционировать сначала один стикер, а затем перенести настройки, отзеркалив их относительно вертикальной оси.

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

Следуя второму способу:

  • Отредактируйте центральную точку первого стикера, укажите масштаб, выберите опорные точки и настройте относительно них силу притяжения. Сохраните изменения.
  • Добившись удовлетворительного результата по предыдущему пункту, откройте редактор позиции второго стикера. И скопируйте настройки при помощи меню Копировать из...
  • Установите зеркально опорные точки для стикера.
  • Впишите координаты для силы притяжения центра стикера к опорным точкам. Помните, что координату по оси X (горизонтальной оси) следует писать с противоположным знаком (например, если координата была “1010”, то следует указывать координату “-1010”).

Адаптация цвета стикера под цвет кожи с пользовательской фотографии при помощи фильтра "Пипетка по маске"

В этом уроке мы разберём работу фильтра Пипетка по маске на примере шаблона со стикером руки, который нам необходимо перекрасить в цвет кожи с пользовательской фотографии. Мы попробуем добиться такого результата используя разные подходы к обработке стикера.

Исходная фотография Результат обработки шаблоном

Проект для урока вы можете скачать по этой ссылке.

Структура PSD-файла выглядит так:

  • Изображение с рукой, поделённое на три стикера: рука, рамка телефона и экран телефона.
  • Область вписывания.

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

Слои с этими стикерами сгруппированы в Photoshop, чтобы Конструктор шаблонов определял их как одно целое. О том, как это делается и зачем это нужно, вы можете узнать из этого раздела: Объединение стикеров в группы.

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

Шаг # 1

Первым делом добавим растеризацию для стикеров, чтобы они отобразились в нашем проекте. Растеризацию создаём по единственной области вписывания, которая имеется у нас в проекте.

Первым делом мы позиционируем Стикер Рука со следующими параметрами настройки позиции стикера:

  • Центральная точка X: 118
  • Центральная точка Y: 509
  • Размер стикера: 90% от ширины головы

Все остальные параметры находятся в стандартных значениях:

  • Точка привязки: по умолчанию (на переносице)
  • Координаты маркера силы притяжения: X: -100; Y: 16155

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

Шаг # 2

Добавим к области вписывания фильтр "Пипетка по маске" cо следующими параметрами:

  • Маска: по коже;
  • Метод вычисления цвета: медиана.

Обратите внимание, что данный фильтр должен находиться первым в списке.

Принцип работы данного фильтра очень простой: он находит на заданной области пользовательской фотографии цвет и заливает всю область вписывания этим цветом. Область пользовательской фотографии, с которой берётся образец цвета задается маской в настройках фильтра.

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

Исходная фотография Результат обработки шаблоном

Шаг # 3

Как видно из результирующего фото из предыдущего шага, область вписывания с пипеткой полностью закрыла фотографию. Нам необходимо, чтобы она располагалась только на руке. Для этого первым делом через меню Вставка добавим еще одну область вписывания типа Рамка с названием "SQ Основное фото" и расположим её в самом низу структуры шаблона.

Текущую область вписывания переименуем в "SQ Область Пипетка по маске" и в Конструкторе шаблонов перечитаем PSD.

После перечитывания переходим в редактор динамических масок слоя "SQ Область Пипетка по маске" и создаём маску по стикерам по этому же слою.

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

Шаг # 4

Теперь необходимо покрасить руку в цвет слоя с пипеткой. Логично будет сделать это с помощью режимов наложения.

У нас есть два варианта расположения слоёв:

Cлой с пипеткой внизу, сверху рука с режимами наложения Рука внизу, слой с пипеткой с режимами наложения наверху

Двухцветный слой на иллюстрации является комбинацией из результатов применения фильтра "пипетка" к тестовым фотографиям. Результаты можно увидеть в таблице в Шаге # 2.

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

Однако, реальность такова, что этот режим только тонирует руку и не меняет яркость и для тёмной кожи данный режим не подходит, несмотря на то что на светлой он выглядит идеально. Симметричным образом этот режим будет работать и с изображением тёмной руки: тёмная рука + цветность дадут хороший результат на тёмной коже, но на светлой будут выглядеть плохо. Приходим к выводу, что этот вариант нам не подходит.

На данном этапе давайте вспомним как вообще работают режимы наложения и подумаем, чего мы вообще хотим в итоге добиться. По сути, нам необходимо корректно совместить цвет и объём. Объём — это проявление на плоскости бликов и теней. Исходя из этого мы и будем подбирать режимы наложения.

Все режимы наложения делятся на несколько блоков:

Красным выделены режимы наложения, которые не поддерживает конструктор: темнее, светлее, вычитание, разделить. Остальные можно использовать.

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

Далее, путём простого перебора нам нужно выявить наиболее подходящие результаты.

Перекрытие
Мягкий свет
Жесткий свет
Яркий свет
Линейный свет
Точечный свет
Жесткое смешение

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

Мы также снизили яркость и контрастность слоя с рукой примерно вполовину (яркость: -60, контрастность: -25), чтобы получить наиболее оптимальный вариант.

Несмотря на то, что это лучшие результаты и их можно использовать, они не являются идеальными: в них невозможно добиться равного контраста на светлой и темной коже. Светлая кожа получается пересвеченной, а тёмная — недостаточно контрастной.

Шаг # 5

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

Чтобы сделать из слоя текстуру нужны всего 3 условия:

  • Смарт-фильтр Кривые с фиксированными параметрами;
  • фильтр Краевой контраст;
  • блендинг Линейный свет для этого слоя.

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

Перейдём в фотошоп и добавляем к слою "Рука" последовательно фильтр "Краевой контраст" и кривые для снижения контраста, а также смарт-фильтр "Цветовой тон/Насыщенность". Далее для группы "Стикер рука" устанавливаем режим наложения слоя "Линейный свет". Таким образом мы выделили текстуру. Самое сложное на этом этапе — это подобрать правильные параметры для текстуры, чтобы она смотрелась естественно на любом цвете кожи. В нашем примере мы использовали следующие параметры:

Кривые Краевой контраст Цветовой тон/насыщенность

Точка белого

  • Вход: 0
  • Выход: 64

Точка чёрного

  • Вход: 255
  • Выход: 192
Радиус: 30 пикселей

Цветовой тон: -11

Насыщенность: -50

Приведённые здесь параметры не являются универсальными и их необходимо индивидуально подбирать для каждого конкретного случая. Удобней всего это делать как в примерах выше: подложив двухцветный слой в фотошопе.

Вернёмся в Конструктор шаблонов и перечитаем PSD, чтобы проверить получившийся шаблон на тестовых фотографиях.

Результат получился приемлемый

Шаг # 6

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

Через меню Вставка создадим новую область вписывания типа Рамка с названием "SQ Область экрана", которую расположим в Photoshop поверх всех имеющихся областей вписывания. После чего перечитаем шаблон и применим к ней фильтр "Обесцвечивание".

Для стикера Экран создадим растеризацию по области вписывания "SQ Основное фото". Настройки позиции для данного стикера проще всего будет взять через копирование позиции, используя меню "Копировать из" в редакторе позиции стикера.

A к области вписывания "SQ Область экрана" добавим динамическую маску по стикеру, построенную по области вписывания "SQ Основное фото".

Обрабатываем фотографии и проверяем получившийся результат.

Шаг #7

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

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

  • Выберите Файл > Изменить проект, перейдите во вкладку Дополнительно и нажмите Редактировать правила предобработки.
  • В появившемся окне нажмите Добавить, чтобы создать новое правило предобработки.
  • В разделе Размеры фото нажмите Кадрировать по маске и выберите опцию По лицу в выпадающем списке.
  • Чтобы настроить отступы от границ лица для рамки кадрирования, задайте следующие размеры полей:
    Поле Значение
    Верхнее 50
    Нижнее 60
    Левое 40
    Правое 40
  • Нажмите ОК, чтобы сохранить изменения.

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

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

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