forum.boolean.name

forum.boolean.name (http://forum.boolean.name/index.php)
-   Создание текстур (http://forum.boolean.name/forumdisplay.php?f=20)
-   -   художественный pipeline (http://forum.boolean.name/showthread.php?t=17184)

jimon 15.08.2012 15:44

художественный pipeline
 
Вложений: 1
В общем как выглядит это в большинстве проектов :
1) дизайнер делает концепты
2) программист пытается вникать
3) дизайнер делает продакшен арт в своих фотошопах
4) программист пытается советовать
5) дизайнер нарезает
6) программист\инженер\левелдизайнер\etc вставляет это в игру
7) if продюсер.бугорт() then goto 1 else goto 3
8) где-то тут конец разработки

В проектах где арта куда больше чем чего либо другого (тысячи интерфейсов, тысячи всего остального - hidden object games), нужна автоматизация конвейера с 4 по 6 пункт.

Общая идея заключается в том что дизайнер из своего творческого psd делает "экспортный вариант" psd в фотошопе, а именно разворачивает всё что надо нарезать по слоям\папкам и называет с префиксами чтобы движок потом подцепил кнопки, анимации, шейдера и тд.

А теперь как это выглядит физически, у нас был подход №1 - парсить psd руками, наткнулся на так званый psdparse ( http://www.telegraphics.com.au/svn/psdparse/ ), но это тупо провал, он даже группы не выцепляет.

Подход №2 : пишем плагин (скрипт) для фотошопа ! это оказалось проще простого ! наш скрипт будет вырезать все слои и составлять json файл с необходимым описанием, дальше это скармливается редактору и мы получаем все объекты на местах сразу же, из префиксов в названиях слоёв можно даже логику сразу же цеплять.

Ссылки откуда можно выцепить примеры скриптов :
1) Exporting QML from Photoshop and GIMP
и конкретно код : http://qt.gitorious.org/qt-labs/phot...port%20QML.jsx

2) просто экспорт слоёв с nested группами :
https://gist.github.com/2892034

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

-----------------------------

экспортёр из psd в json, версия 0.01a
(photoshop jsx psd exporter to json and pngs, version 0.01a, for gamedev, для поисковиков на всяк случай)

инструкция :
1) положить jsx файл из архива в аттаче в папку presets\scripts фотошопа
2) если запущен фотошоп - перезапускаем
3) открываем psd, нажимаем file->script->tatengine_export
4) в папке где лежит psd появляется папка export с кучей png файлов и файлом export.json

пример файла export.json : http://pastebin.com/7MXdNiNf

nodeIndex это порядковый номер слоя, нужен чтобы zorder потом нормально сделать

jimon 15.08.2012 23:33

Ответ: художественный pipeline
 
добавил версию экспортера 0.01a

jimon 08.09.2012 15:19

Ответ: художественный pipeline
 
Вложений: 4
первоначальной задумки оказалось не достаточно, хочется прямо в фотошопе задавать анимации, указывать логику и тд :crazy:

проще всего оказалось разработать дополнительную панель для фотошопа, они разрабатываются на смеси флеша и javascript :crazy: в общем у меня ушло около 10 рабочих часов на панельку, куча геморроя с перекидыванием данных из actionscript в javascript и обратно (они там через xml перекидываются, base64 от текста надо брать, потом оказалось что кодировщик base64 вставляет перенос строки каждые 76 символов бл*ть, и всё ломалось)

чтобы разрабатывать панель вам понадобится фотошоп cs5+ (cs4 по-идее тоже должен работать), flex builder 3+, flex sdk 3.6 (какого хрена оно отдельно от билдера я не знаю, но надо качать последний), adobe photoshop sdk cs5 (только он, в cs6 сдк уже удалили семплы флеш панелей и кинули их хрен знает куда)

выглядит в итоге это так :

1) у слоя указываем пресет button и он становится кнопкой
Вложение 17554

2) у слоя указываем пресет альфа анимации и он становится будет анимироватся
Вложение 17555

3) експортим из фотошопа и импортим в свой редактор, всё, теперь у нас и кнопка и анимация
Вложение 17556

кухня внутри :
сама панелька генерирует слою поле метаданных tatengineMetaData, те все пресеты и их параметры в итоге просто генерят текст, сам генератор описан в TatEnginePanel.jsx, если поставить флаг custom то генератор отключится и мы можем писать любой код уже руками (чисто для программистов фишка)

tatengineMetaData в export.json называется metaData и кодируется в base64 чтобы не было проблем, вы можете её вешать на текст, группу или обычный слой

осталось только вам в вашем редакторе написать скрипт импорта, мы используем json формат команд для импорта

как устанавливать :
TatEnginePanel.jsx и swf нужно положить в plugins\panels, а tatengine_export.jsx в presets\scripts

pax 07.12.2012 09:07

Ответ: художественный pipeline
 
Наверное в ближайшее время заюзаем твою интеграцию для экспорта в Unity :)

pax 12.12.2012 16:25

Ответ: художественный pipeline
 
В шестом фотошопе панелька не работает, нашел вот такую инфу (пробовал из татэнджина тоже)
http://forums.adobe.com/message/4687211#4687211

jimon 12.12.2012 17:18

Ответ: художественный pipeline
 
Цитата:

Сообщение от pax (Сообщение 246404)
В шестом фотошопе панелька не работает, нашел вот такую инфу (пробовал из татэнджина тоже)
http://forums.adobe.com/message/4687211#4687211

я видимо старым flex builder'ом собирал, нужно где-то достать CSXS/manifest.xml файл и туда прописать эти настройки

Lestar 13.08.2013 12:11

Ответ: художественный pipeline
 
Вложений: 1
Немного переписано, добавлено использование вложенных папок. Парсит только то, что мне нужно было для экспорта и расстановке в Unity.
Итоговый формат файла показан в примере, при наличии вложенных папок в рутовой создается идентичная, все спрайты складываются в нее. То есть мы получаем идентичную структуру с PSD.Задачи поддержать множественное вложение не было. Требования к PSD- никакой кириллицы(даже нижнее подчеркивание на русской раскладке фотошоп пропишет как пробел), в пределах одной папки не должно быть одинаково названных слоев. Требования хоть и забавно выглядят с одной стороны, но большинство художников, как оказалось народ задорный.
Код:

[
                {
                        "name" : "Resolution",
                        "width" : 1366,
                        "height" : 768,
                },
                {
                        "name" : "lamp_final_position",
                        "blendMode" : "normal",
                        "x" : 776,
                        "y" : 8,
                        "width" : 899,
                        "height" : 160,
                        "layer" : 1
                },
                {
                        "name" : "bg3",
                        "blendMode" : "normal",
                        "x" : 0,
                        "y" : 0,
                        "width" : 1366,
                        "height" : 768,
                        "layer" : 2
                }
]


AVL 07.07.2014 11:18

Ответ: художественный pipeline
 
Я правильно понимаю, что скрипт создает из psd набор png + json? А как потом это в unity импортировать?

pax 08.07.2014 07:49

Ответ: художественный pipeline
 
Видимо пропарсить json и создать спрайты Editor-скриптом.

Можешь попробовать это например https://github.com/Banbury/UnityPsdImporter как альтенрнативу

AVL 08.07.2014 12:38

Ответ: художественный pipeline
 
Ок, посмотрю. Вот только он не понимает одноименные слои (одна и та же картинка разных размеров), но это можно попробовать исправить. А есть ли где-нибудь то же самое, но для 2dtoolkit? Нашел только платный вариант.


Часовой пояс GMT +4, время: 05:19.

vBulletin® Version 3.6.5.
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Перевод: zCarot