В душевных метаниях наткнулся на http://store.steampowered.com/app/246090/, идея которой мне понравилась, и решил заняться её переводом в спокойной обстановке (её пока не спиратили [игра находится ещё в разработке] и как результат — в рунете о ней не знают, в том числе на ZoG → никто не будет клянчить сделать перевод быстрее, а «переводчики» не будут выпускать машинный перевод с правками). Т.о. мои стремления не улетучатся.
На последние кровные купил её несколько часов назад и чуток поковырялся. Текст без проблем можно редактировать (второй снимок, нижняя строка), но вот шрифты с наскоку взять не удалось. Шрифт представляет из себя текстуру с разметкой, и если с разметкой всё понятно, кроме пары значений, то с самой текстурой сложнее. Как я понял: после заголовка идёт сжатый zlib'ом блок графических данных, которые верно считать пока не удалось. Буду рад любым советам по обработке этой графики. Не исключено, что я где-то стормозил.
Образцы.
Добавлено.
Подозреваю, что графические данные это тело DDS без заголовка.
Да, с подставленным заголовком DDS в расжатые zlib-данные показывает картинку. Тут либо DXT3, либо DXT5.
Я опростоволосился: игра есть в http://rutracker.org/forum/viewtopic.php?t=4567045.
Что-то не могу подобрать верный заголовок .DDS — максимум показывает всё полотно синим или чёрным цветом.
Удалось выяснить, что текстура сгенерирована с помощью http://www.codeandweb.com/texturepacker, судя по всему, в формате zlib compressed pvr (PowerVR) также известном как pvr.ccz либо в его модифицированном варианте, т.к. заголовок отличается. Пробовал сгенерировать любую текстуру, но в ней почему-то данные хранятся в другом виде, не похожем на DDS. Хотя, возможно, я чего-то не понимаю в современной графике.
Скачать бесплатно, без регистрации и SMS: http://www.ctpax-x.org/uploads/stex2dds.zip
Насчёт ширины/высоты (width/height) не уверен, потому что они там одинаковые (в .DDS просто сначала высота идёт, а уже потом ширина).
dwName - имена людей (ANNA и т.п. - они разные), ну и ещё там пара полей фиг знает за что отвечающих.
P.S. Как идут дела с первой Кирандией? Да, я такой. (*улыбается*)
Попробуй текстуру сначала в .TGA перегнать какой-нибудь внешней утилитой, а уже потом открывать, может так сработает.
Ибо формат .DDS такой "весёлый" (см. ссылки на MSDN в исходниках), что его каждый может как хочет трактовать и сохранять, так что там в заголовке практически ни на что полагаться нельзя.
Я заполняю только минимально необходимые поля, чтобы оно корректно отображалось, возможно, необходимо что-то ещё. Я сам .DDS не смотрел (нечем), так что конвертировал его в .TGA, чтобы убедиться что всё ок.
Та формат то нормальный, просто почти в каждой проге его поддержка реализована не на 100% - там поддерживаются одни фишки формата, а там - другие.
Например, столкнулся с необходимостью задать маску каналов - это чтобы не перетасовывать местами байты, когда порядок каналов, например, ABRG. Из просмотрщиков только IrfanView справился, и кажется, nvidia texture tools правильно перегнал в tga (но там только конвертер, просмотра нет). Ни XnView, ни Paint.NET, ни фотошоп с плагинами от той же nvidia, ни Imagine не смогли правильно отобразить такой файл - он либо не открывался совсем, либо каналы были перепутаны (то есть маска просто игнорировалась). А в DDS таких фишек, замечу стандартных и документированных, дофига, вот только не очень-то разработчики графических утилит смотрят в ту документацию...
Наиболее адекватной и полной поддержкой, как мне показалось, обладают как раз утилитки от nvidia. Так что попробуй ими dds->tga и потом обратно. nvddsinfo из комплекта может показать специфическую информацию из заголовка в удобоваримой форме (можешь проверить что там у тебя фотошоп дописывает/не дописывает в заголовок)
Сконвертировать текстуры бесплатно, без регистрации и SMS и без скачивания
tex2dds.bms
Спасибо!
Разобрался с форматом и написал обратный упаковщик — игра кушает новый шрифт. Теперь художественная рутина предстоит. Нашёл все шрифты в векторе, и в один уже добавил 90% кириллицы.
Кривой шрифт (без сглаживания) и пока обрезанный текст (правка недекомпилированного LUA).
Прошу подсказать, т.к. сам не нашёл. В версии для Windows используется что-то вроде двоичного LUA для хранения текста и пр., а в версии для Mac OS — в текстовом виде (неоткомпилированный). Причём версия для Win, его понимает. Проблема в том, что доступа к версии для Mac у меня есть, а сами файлы дал один из иностранцев.
Может кому-нибудь уже встречался такой формат? Декомпилятор его не понимает, да и компилятор создаёт выходной файл в другом виде. Образцы от обеих версий.
Походу это LuaJIT:
_ttp://luajit.org
Гугли "LuaJIT decompiler" или что-нибудь этакое.
Нашёл вот это, но не пробовал:
_ttp://github.com/bobsayshilol/luajit-decomp
К сожалению, не то.
За два вечера написал генератор шрифтов, причём качество прорисовки получилось лучше чем в «Photoshop» и в разы быстрее мазохистского метода редактирование шрифта, которым я сделал шрифт в прошлом году. Да и текстурки получаются компактнее чем у разработчиков.
С (де)компиляцией данных LUA пока глухо.
Он, конечно, что-то декомпилирует, но вот названий переменных с текстом игры на выходе точно нет.
Однако, компилировать верные файлы научился. Без декомпилятора получается нужен доступ к макинтошной версии.
Заглянул на форум Xentax (кстати, они снова сделали регистрацию платной) и натолкнулся на вот такое: http://forum.xentax.com/viewtopic.php?f=13&t=12248 - там всякие ссылки и документация на виртуальную машину Lua (если ещё актуально).
Уже не актуально: разработчики в последних версиях стали класть чистый код.
Доделал-таки http://siberian-studio.ru/loc_piratruz.php?game=SpacebaseDF9, а то когда разработчики игру забросили, желание пропало переводить.