Скрипты
Ради них, в общем, и писался этот ответ. В основных приложениях адоба (Илюстратор, Фш, ИнДиз, Афтер) реализована возможность использовать скрипты, написанные на языках AppleScript (под макосью), VBScript (под виндой) и JavaScript (везде). Я практиковал только js-скрипты для Иллюстратора и Индизайна, поэтому авторитетно могу только об этих комбинациях рассказывать. О всех вариантах подробно рассказано на специальном разделе сайта адоба: https://www.adobe.com/devnet/noscripting.html.
По сути речь идет об управление программой через код. Жмешь в иллюстраторе File → Scripts → Other Script…, выбираешь js-файл, и начинается исполнение заложенных в него команд, которые не ограничены практически ничем: можно манипулировать любыми объектами, текстовыми полями, слоями, свотчами, стилями, двигать точки у кривых, при открытии программы автоматически менять воркспейс в зависимости от времени суток и лунного календаря, закрывать и открывать файлы, открывать страницы в браузерах, отправлять файл на печать, считывать файлы с компьютера и интернета и писать файлы с результатом обратно на диск. Список объектов, свойств и методов, которыми можно вертеть, например, в Иллюстраторе, перечислен в официальной пдфке.
За неограниченность возможностей, конечно, придется расплачиваться относительно высоким входным порогом: да, это программирование, поэтому для погружения в этот мир надо хотя бы не бояться открытого в текстовом редакторе кода, преодолеть стадию «ой, тут какие-то цветные буковки непонятные и закорючки». Но рабочий и полезный скрипт может занимать и две строчки кода, и в целом для написания скриптов достаточно владеть уровнем «писал на jquery всякие эффектики себе на домашнюю страничку». Хотя скрипт для обработки карт для московского метро у меня занял уже четыре тысячи строчек кода.
Понятное дело, что разработка любого скрипта требует куда больше времени, чем настройка экшенов или хоткеев. Эта относительно высокая цена ограничивает сферу примнения скриптов несколькими случаями:
1. Огромный тираж. Ну типа пять тысяч файлов, в которых надо сделать одно и то же действие. Например, те же карты для метро: любая простейшая операция вроде «поменять прозрачность у плашки» превращается в сложновыполнимую, когда речь идет о 200 станциях метро, у каждой из которых может быть до 12 карт.
2. Регулярное повторение однотипных операций над одним файлом. Например, работаешь над транспортной схемой и постоянно приходится выравнивать название станции относительно пенька. Действие специфическое и тупое, но регулярность действия оправдывает затраты на разработку скрипта для этого.
3. Разработка универсального скрипта с действиями, которые часто нужны в самых разных файлах вне зависимости от проекта. По сути это такой колхозный самописный плагин (колхозный, потому что настоящие плагины пишутся уже на солидном C++ и у них совершенно другой уровень доступа к программе). Например, скрипт, который типографит выделенное текстовое поле: добавляет неразрывные пробелы, кавычки елочками делает и т.д.
За пределами этих случаев писать скрипт обычно просто нерационально. Ну как с формулами в экселях: при небольших объемах таблички проще подсчитать нужное свойство самому, чем сочинять формулу.
Ради них, в общем, и писался этот ответ. В основных приложениях адоба (Илюстратор, Фш, ИнДиз, Афтер) реализована возможность использовать скрипты, написанные на языках AppleScript (под макосью), VBScript (под виндой) и JavaScript (везде). Я практиковал только js-скрипты для Иллюстратора и Индизайна, поэтому авторитетно могу только об этих комбинациях рассказывать. О всех вариантах подробно рассказано на специальном разделе сайта адоба: https://www.adobe.com/devnet/noscripting.html.
По сути речь идет об управление программой через код. Жмешь в иллюстраторе File → Scripts → Other Script…, выбираешь js-файл, и начинается исполнение заложенных в него команд, которые не ограничены практически ничем: можно манипулировать любыми объектами, текстовыми полями, слоями, свотчами, стилями, двигать точки у кривых, при открытии программы автоматически менять воркспейс в зависимости от времени суток и лунного календаря, закрывать и открывать файлы, открывать страницы в браузерах, отправлять файл на печать, считывать файлы с компьютера и интернета и писать файлы с результатом обратно на диск. Список объектов, свойств и методов, которыми можно вертеть, например, в Иллюстраторе, перечислен в официальной пдфке.
За неограниченность возможностей, конечно, придется расплачиваться относительно высоким входным порогом: да, это программирование, поэтому для погружения в этот мир надо хотя бы не бояться открытого в текстовом редакторе кода, преодолеть стадию «ой, тут какие-то цветные буковки непонятные и закорючки». Но рабочий и полезный скрипт может занимать и две строчки кода, и в целом для написания скриптов достаточно владеть уровнем «писал на jquery всякие эффектики себе на домашнюю страничку». Хотя скрипт для обработки карт для московского метро у меня занял уже четыре тысячи строчек кода.
Понятное дело, что разработка любого скрипта требует куда больше времени, чем настройка экшенов или хоткеев. Эта относительно высокая цена ограничивает сферу примнения скриптов несколькими случаями:
1. Огромный тираж. Ну типа пять тысяч файлов, в которых надо сделать одно и то же действие. Например, те же карты для метро: любая простейшая операция вроде «поменять прозрачность у плашки» превращается в сложновыполнимую, когда речь идет о 200 станциях метро, у каждой из которых может быть до 12 карт.
2. Регулярное повторение однотипных операций над одним файлом. Например, работаешь над транспортной схемой и постоянно приходится выравнивать название станции относительно пенька. Действие специфическое и тупое, но регулярность действия оправдывает затраты на разработку скрипта для этого.
3. Разработка универсального скрипта с действиями, которые часто нужны в самых разных файлах вне зависимости от проекта. По сути это такой колхозный самописный плагин (колхозный, потому что настоящие плагины пишутся уже на солидном C++ и у них совершенно другой уровень доступа к программе). Например, скрипт, который типографит выделенное текстовое поле: добавляет неразрывные пробелы, кавычки елочками делает и т.д.
За пределами этих случаев писать скрипт обычно просто нерационально. Ну как с формулами в экселях: при небольших объемах таблички проще подсчитать нужное свойство самому, чем сочинять формулу.
У скриптописания, конечно же, есть свое комьюнити, сайты по интересам, самописные документации помимо официальной, уроки, видосы с гайдами на ютубе, раздел на форуме adobe, движ на стэковерфлоу и так далее. Это всё очень полезно, потому что даже официальная документация от адоба не упоминает все возможности скриптов. Например, скрипты также могут обладать своим интерфейсом: панелькой с чекбоксами, ползунками и прочими способами настройки функционала, и обучиться этой магии поможет только неофициальная документация вроде этой безумно-полезной пдфки.
Ну и еще парочка ссылок из гугла про скриптование:
онлайн-учебник: https://illustrator-noscripting-guide.readthedocs.io/
обсуждение на русском: https://vk.com/topic-159903417_38752810
гайд по скриптованию Ai без привязки к языку (что как вообще, объектная модель иллюстратора и тд): https://www.adobe.com/content/dam/acom/en/devnet/illustrator/pdf/AI_ScriptGd_2017.pdf
Ну и еще парочка ссылок из гугла про скриптование:
онлайн-учебник: https://illustrator-noscripting-guide.readthedocs.io/
обсуждение на русском: https://vk.com/topic-159903417_38752810
гайд по скриптованию Ai без привязки к языку (что как вообще, объектная модель иллюстратора и тд): https://www.adobe.com/content/dam/acom/en/devnet/illustrator/pdf/AI_ScriptGd_2017.pdf
Еще не менее прекрасная сторона существования этого движа: можно и не писать свои скрипты, а пользоваться сотнями, тысячами уже написанных другими ребятами. На гитхабе этих подборок просто дохерище. Первые три из выдачи гугла:
https://github.com/creold/illustrator-noscripts
https://github.com/shspage/illustrator-noscripts
https://github.com/nvkelso/illustrator-noscripts
Или, например, подборка подборок скриптов: https://github.com/topics/illustrator-noscripts
Ну и всякие статьи с перечнем крутых скриптов, например:
https://design.tutsplus.com/articles/20-free-and-useful-adobe-illustrator-noscripts--vector-3849
Минус тут в том, что они попадают все только под категорию 3 из перечисленных выше кейсов использования скриптов, то есть это общие скрипты-плагины, и узкоспециализированную задачу под твой проект они никак не решат.
https://github.com/creold/illustrator-noscripts
https://github.com/shspage/illustrator-noscripts
https://github.com/nvkelso/illustrator-noscripts
Или, например, подборка подборок скриптов: https://github.com/topics/illustrator-noscripts
Ну и всякие статьи с перечнем крутых скриптов, например:
https://design.tutsplus.com/articles/20-free-and-useful-adobe-illustrator-noscripts--vector-3849
Минус тут в том, что они попадают все только под категорию 3 из перечисленных выше кейсов использования скриптов, то есть это общие скрипты-плагины, и узкоспециализированную задачу под твой проект они никак не решат.
Теперь немного примеров и бахвальства. Чтобы немного расшевелить фантазию, перечислю примерный функционал написанных мной скриптов:
— Скрипт, который объединяет выделенные текстовые поля в одно с сохранением порядка текста и стилей
— Скрипт, который при сохранении INDD-файла автоматически сохраняет рядом для совместимости IDML-версию.
— Скрипт, который при сохранении ai-файла для CC автоматически сохраняет рядом версию для CS6.
— Скрипт, обсчитывающий сеть дорог на плане территории и сохраняющий ее в виде файла для дальнейшего обсчета оптимальных маршрутов
— Скрипт, наполняющий шаблон значениями из гугл.таблицы и выгружающий экземпляр в пдф с генерацией пнг-превьюшки (конвейер, генерящий подобные макеты на основе шаблона)
— Скрипт, проверяющий все названия станций на схеме метро на наличие опечаток при помощи сравнения с хранящимися в гугл.таблице идеалами + проверка на отсутствие лишних или пропущенных названий
— Скрипт, удаляющий из файла весь русский/английский/китайский язык или меняющий их местами
— Скрипт, меняющий весь текст в файле по таблице соответствия «что на что менять»
— Скрипт, меняющий пропорции букв в зависимости от их положения относительно глаз пользователя для компенсации перспективных искажений
— Скрипт, считающий площадь выделенного объекта
— Скрипт, выравнивающий названия станций метро относительно пеньков
— Скрипт, который объединяет выделенные текстовые поля в одно с сохранением порядка текста и стилей
— Скрипт, который при сохранении INDD-файла автоматически сохраняет рядом для совместимости IDML-версию.
— Скрипт, который при сохранении ai-файла для CC автоматически сохраняет рядом версию для CS6.
— Скрипт, обсчитывающий сеть дорог на плане территории и сохраняющий ее в виде файла для дальнейшего обсчета оптимальных маршрутов
— Скрипт, наполняющий шаблон значениями из гугл.таблицы и выгружающий экземпляр в пдф с генерацией пнг-превьюшки (конвейер, генерящий подобные макеты на основе шаблона)
— Скрипт, проверяющий все названия станций на схеме метро на наличие опечаток при помощи сравнения с хранящимися в гугл.таблице идеалами + проверка на отсутствие лишних или пропущенных названий
— Скрипт, удаляющий из файла весь русский/английский/китайский язык или меняющий их местами
— Скрипт, меняющий весь текст в файле по таблице соответствия «что на что менять»
— Скрипт, меняющий пропорции букв в зависимости от их положения относительно глаз пользователя для компенсации перспективных искажений
— Скрипт, считающий площадь выделенного объекта
— Скрипт, выравнивающий названия станций метро относительно пеньков
This media is not supported in your browser
VIEW IN TELEGRAM
— Скрипт, выравнивающий подпись относительно иконки
This media is not supported in your browser
VIEW IN TELEGRAM
— Скрипт, генерящий 756 плакатов с уникальными маршрутами от каждой станции московского метро до стадионов, принимающих матчи ЧМ.
https://www.artlebedev.ru/metro/fans-way/
https://www.artlebedev.ru/metro/fans-way/
This media is not supported in your browser
VIEW IN TELEGRAM
— Скрипт, определяющий, какие объекты оказались за пределами карты, и расставляюлий их в виде зарамочных указателей в нужном месте
This media is not supported in your browser
VIEW IN TELEGRAM
— Скрипт, обрабатывающий сырые заготовки карт для навигации в метро (с этого всё началось): устанавливать правильные графические стили элементам карты, очищать файл от мусора, менять порядок слоев, правильно расставлять номера домов, формировать нужный облик остановок транспорта и станций метро, сортировать номера маршрутов, типографить текст, автоматически выравнивать его относительно ближайшей пиктограммы и генерировать зарамочные указатели из эксель-таблички.
https://www.artlebedev.ru/metro/passage-navigation/process/
https://www.artlebedev.ru/metro/passage-navigation/process/
Кажется, это всё, что хотел рассказать при скрипты, но даже это не полный ответ на оригинальный вопрос про автоматизацию в работе Студии Лебедева. Со скриптов всё только начиналось, и сейчас этот кустарный быдлокодинг на коленке уже перерос в огромную махину с шерстящими по файловой системе демонами, обсчитывающей фермой, очередью задач, веб-интерфейсом с контрольной панелью и прочими солидными штуками из мира промышленного программирования.
К созданию этой махины я уже имею очень поверхностное отношение, так что и рассказывать о ней не считаю возможным. Надеюсь, вскоре об этом расскажут компетентные люди.
К созданию этой махины я уже имею очень поверхностное отношение, так что и рассказывать о ней не считаю возможным. Надеюсь, вскоре об этом расскажут компетентные люди.
Групповые фотографии
Сегодня я залезу на чужую территорию, а именно хочу поделиться наблюдениями о групповых фотографиях. Может кому поможет при съемках коллектива для какого-нибудь раздела «О компании». Прошу прощения у фотографов, которым придется это прочитать.
Для начала хочу сказать, что оптимальней всего фотографировать людей в рабочей обстановке, во время занятия своим делом. В этот момент человек король ситуации, он светится харизмой, характером, правдой. Запечатлеть его настоящим в эти моменты проще всего.
Сегодня я залезу на чужую территорию, а именно хочу поделиться наблюдениями о групповых фотографиях. Может кому поможет при съемках коллектива для какого-нибудь раздела «О компании». Прошу прощения у фотографов, которым придется это прочитать.
Для начала хочу сказать, что оптимальней всего фотографировать людей в рабочей обстановке, во время занятия своим делом. В этот момент человек король ситуации, он светится харизмой, характером, правдой. Запечатлеть его настоящим в эти моменты проще всего.
Но обычно такое мало в какой сфере возможно, большой коллектив во время работы разбросан кое-как, поэтому приходится делать постановочные фото. Выходит максимально уныло.
Конечно, многое зависит от того, кто изображен на фотографии. Иногда крутота людей на фотографии затмевает натужность композиции.