Автор Тема: Скрипт для формирования "пляшущего Текста".  (Прочитано 6610 раз)

Оффлайн iv131Автор темы

  • Ветеран
  • ******
  • Сообщений: 5139
  • г. Озёрск на Урале iv131@mail.ru
Подскажите, вроде видел где-то скрипт для разбора текста на отдельные буквы. Не могу найти.

Можно ведь на его основе сделать "пляшущий текст". Чтобы все буквы слегка произвольно меняли наклон, масштаб?
Учиться, учиться и еще раз учиться, чтобы не было мучительно больно за бесплатно потраченное время.
Ленин-Островский-Иваныч.

Оффлайн jazz-y

  • Живет здесь
  • *****
  • Сообщений: 655
Я бы тоже хотел на этот скрипт посмотреть.

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

В общем, повернуть и масштабировать рандомно - не проблема. А вот разбить на буквы - задница.

Оффлайн iv131Автор темы

  • Ветеран
  • ******
  • Сообщений: 5139
  • г. Озёрск на Урале iv131@mail.ru
Вспомнил. В фотошопе в 3d после выдавливания есть такая функция, разбить на составляющие.
Учиться, учиться и еще раз учиться, чтобы не было мучительно больно за бесплатно потраченное время.
Ленин-Островский-Иваныч.

Оффлайн jazz-y

  • Живет здесь
  • *****
  • Сообщений: 655
Вообще тема интересная, вижу пару применений в своих макетах.

Алгоритм придумал, но это та еще головоломка, конечно (напишу здесь, чтобы не забыть).

Скрипт принимает два параметра: коэффициент масштабирования символов от исходного (%), коэффициент поворота (градусы)
- создаем копию текстового слоя (на случай последующего редактирования)
- у исходного текста отрубаем прозрачность
- конвертируем копию текстового слоя в смарт объект
- открываем смарт-объект
- анализируем текст, находим все значимые символы (исключаем разделители слов и строк)
- чтобы сохранить читаемость текста (избежать накладывания букв друг на друга) сразу посимвольно меняем масштаб букв на случайную величину в пределах заданного процента
- чтобы сохранить оформление в виде эффектов копируем слой с полученным текстом по количеству символов
- проходимся по каждому слою, оставляя в каждом одну букву (попутно сохраняя стиль оформления текста/параграфа)
- отключаем видимость каждого слоя-буквы (чтобы не мешали в дальнейшем)
- возвращаемся к исходному тексту, делаем его копию, отрубаем эффекты и делаем весь текст черным (чтобы оформление текста не мешало нашему хитрому плану)
- создаем слой, заливаем его черным, помещаем в самый низ
далее в цикле:
- копируем исходный текст
- выбираем в нем n-букву, делаем ее белой, по сути создавая маску буквы
- даем фотошопу команду обновления интерфейса (чтобы он перерисовал букву в документе, иначе она так и останется черной)
- идем в каналы, создаем выделение по маске
- находим n-букву среди слоев
- выравниваем позицию n-буквы с нашей белой буквой
- удаляем временный слой с копией исходного текста

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

Осталось найти время чтобы превратить идею в скрипт  ::)

Оффлайн jazz-y

  • Живет здесь
  • *****
  • Сообщений: 655
Наконец-то появилось немного времени, быстренько набросал скрипт:
<a href="http://www.youtube.com/watch?v=q1DLwo-nAwg" target="_blank">http://www.youtube.com/watch?v=q1DLwo-nAwg</a>

В принципе, сделал всё как хотел: сохраняются эффекты текстового слоя, сохраняются стили оформления самого текста.
Масштаб и угол задаются случайным образом в рамках заданных значений. scale - это процент увеличения/уменьшения, angle - максимальный угол наклона букв (вправо или влево). Т.е. при необходимости можно открыть файл скрипта и поменять эти значения.
scale = 40, // percent
angle = 15;

файл со скриптом по ссылке:
https://yadi.sk/d/Yc8Q6jnScd9aAA

Оффлайн jazz-y

  • Живет здесь
  • *****
  • Сообщений: 655
Немного погонял, добавил еще один параметр:
scale = 30, // percent
offset = 2, // percent;
angle = 15;

offset - смещение букв по вертикальной оси, т.е. "разлёт" от baseline (в процентах от высоты буквы)

Для достижения нужного эффекта можно отключать параметры (писать 0 вместо значения), т.е. scale = 0, offset = 0, angle = 0; даст практически исходный текст (практически, потому что при сборке слоя из букв используются операции перемещения, точность округления пикселов страдает).

Оффлайн iv131Автор темы

  • Ветеран
  • ******
  • Сообщений: 5139
  • г. Озёрск на Урале iv131@mail.ru
Круто!
А раскраска побуквенная тоже скрипт?
Учиться, учиться и еще раз учиться, чтобы не было мучительно больно за бесплатно потраченное время.
Ленин-Островский-Иваныч.

Оффлайн jazz-y

  • Живет здесь
  • *****
  • Сообщений: 655
Конкретно тут шаблон был набран вручную.
Но есть вот такое: https://community.adobe.com/t5/photoshop-ecosystem-discussions/can-you-automatically-give-every-subsequent-letter-a-different-color-for-a-batch-of-text-designs/m-p/12325550 , я, вроде, его тут в сниппетах выкладывал (на адобовском форуме есть полезная доделка от другого автора: брать не случайный набор цветов, а крутить по кругу заранее предопределенный).

По поводу скрипта выше есть 3 момента:
1. Слой должен иметь не дефолтный стиль (т.е. это должен быть не свежесозданный слой с настройками по-умолчанию). Я решил не заморачиваться с поиском атрибутов стиля по умолчанию, так как большинство таких надписей как правило стилизованы.
1. Может не работать на старых версиях Фотошопа CC2014-CC2020 (там использовался другой способ задания размера шрифта, легко поправить, если кому-то нужно, сделаю)
2. Не работает в фотошопах CS серии (там немного другая структура таблиц стилей текста, нужно писать отдельный обработчик. Лень)

Возможно все это поправлю, но пока нет времени.
« Последнее редактирование: 06 Июль 2022, 13:45:28 от jazz-y »

 





Рейтинг@Mail.ru Яндекс цитирования Мастерхост
Виньетка.ру

16+