flatz
Заслуженные переводчики-
Публикации
155 -
Зарегистрирован
-
Посещение
Все публикации пользователя flatz
-
Я так понял, прошлые проблемы уже не актуальны? Вот и славно, если что возникнет - стучи мне в личку, а то нет времени постоянно мониторить тему, хотя сейчас пока удается.
-
Скорее всего, не может найти texconv. Он должен лежать в папке со скриптом, либо его директория должна быть прописана в переменной окружения PATH. Где у тебя он?
-
К сведению: уезжаю на две недели на отдых, поэтому не смогу быть на связи. Надеюсь, никаких трудностей со вставкой текстов на это время не произойдет.
-
Плагины для чего именно? Для разбора ресурсов игр? Даю гарантию, что такого не существует в принципе (но было бы круто, если все было бы иначе). Может и есть плагины для разбора встроенных ресурсов в формате, поддерживаемом Windows, но не более того. Но такой вид ресурсов только в каких-нибудь простеньких играх используется, а конкретно в этом проекте дизассемблер не использовался.
-
Ну не совсем так :) Моей целью никогда не был перевод самой игры и я не раз уже это говорил, я всего лишь разобрал формат и написал инструменты. Сам процесс вставки несложный (с готовыми-то инструментами) и не представляет интерес для меня, я только лишь проверил, что он работает. Остальное дело - за переводчиками, я могу лишь помочь, если возникнут проблемы. А сам теперь могу заниматься другими играми, обычно это игры с шифрованными ресурсами, ну и работой, в конце концов.
-
Haoose Я решил, что лучше будет перезалить весь архив с утилитами, txttool теперь отдельные записи также разделяет, как и тексты. Тебе нужно всего лишь заново тексты разбить ею.
-
Эх, не получится так просто автоматически исправить... Например, в messcore.txt есть текст с двумя записями, причем каждая запись включает несколько строк: ###704632229:e0:f3###Eliminate all enemies viaHunt Kills.###704632229:e1:f8###[c:16494:0/]liminate all enemies via[c:16497:0/]unt [c:16500:0/]ills[c:16476:0/] При разбивке получаются, как и должно быть, два идентификатора: ###704632229:e0:f3######704632229:e1:f8### А вот текст получается в одном блоке: Eliminate all enemies viaHunt Kills.[c:16494:0/]liminate all enemies via[c:16497:0/]unt [c:16500:0/]ills[c:16476:0/]---------------------------------------------------------------- Есть идеи? Я пробовал тексты с более чем одной записью обрабатывать по особому: каждая строка - новая запись, но вот в примере выше это уже не подходит, так что такой алгоритм неверен. Есть другие идеи? Мне кажется, что придется mess* файлы немного переделать. Например, записи обрабатывать как тексты - с такими же разделителями. Я склоняюсь к этому варианту, но тут придется вручную разделять блоки на записи в уже переведенных текстах.
-
Так на ноте как раз и будет, что две записи в одном блоке. Там по-моему такие штуки только для текстов с кодами, а не символами, но могу ошибаться. Haoose Кстати, я посмотрел, у тебя в текстах появился BOM, не забудь его убрать, а то mcdtool будет жаловаться, что символ в шрифте (с BOM кодом) найти не может.
-
Да вот не уверен... Баг в том, что при разбивки на отдельные файлы я несколько записей в пределах одного "текста" разделяю новой строкой, а при сборке - не распознаю несколько записей, ведь новой строкой разделяются тупо отдельные строки в тексте, получается, что выходит одна запись на текст, а количество идентификаторов и текстов перестает совпадать, поэтому txttool сообщает об ошибке. Я так понял, несколько записей встречаются только в mess* текстах, надо подумать, как правильно сделать.
-
Да, можно. Только я вот похоже баг нашел в txttool при сборке txt файлов из отдельных файлов с идентификаторами и текстами, скоро поправлю.
-
А, ну это без проблем. Сейчас покажу.
-
Да, они самые. Попробую собрать чуть позже. Да просто сопоставляют текстам их номера и шрифт по умолчанию, все по порядку идут.
-
Haoose Все таки обошелся без полной распаковки, но возникла другая проблема - отсутствие файлов с идентификаторами. Ты не мог бы прислать их, а то у меня только txt файлы твои.
-
Haoose Понятно, ну ладно, придется распаковывать. А так в dat-контейнере может быть больше одного mcd-файла.
-
Ты меня не понял, я имею ввиду следующее: Вот возьмем, к примеру, messchapter.txt, чтобы найти, в каком он файле, мне нужно просканировать все dat файлы на предмет строки "messchapter.mcd", и тогда я только узнаю, что он из ui_chapter.dat. Вот у тебя списка нет, из какого файла какой текст?
-
С текстами запарка есть - ты не мог бы прислать список файловых путей к mcd, из которых эти txt ты вынул? А то без распаковки их не смогу для многих определить, к какому mcd какой txt относится. А еще лучше - пути к dat файлам.
-
Проверил твои шрифты, все нормально.
-
Нет, в отъезде, игру с собой естественно не брал. Сейчас пока даже не могу сказать, когда смогу потестировать, так как очень много проблем навалились разом. Так ты же и сам можешь запустить, или какие-то проблемы с этим возникли?
-
Ну да, можешь даже везде один и тот же путь указывать (т.е. один fnt-файл и текстурой), необязательно копии создавать. Сейчас уже нет, постараюсь завтра. Ну да, я примерно так себе и представлял. :) Правда, я имел ввиду распаковщик всех mcd.
-
Для этого не нужно трогать список шрифтов, сам список меняться не будет. Нужно просто в отдельных .fnt файлах различные стили использовать. Чтобы уменьшить число символов, нужно просто в BMFont убрать ненужные тебе диапазоны, только и всего. charsetgen просто сканирует все тексты и выдирает оттуда уникальные символы, которые затем можно загрузить в BMFont, чтобы он выбрал все символы, какие есть в текстах. Но можно это и не делать, если ты знаешь точно, какие символы присутствуют. У каждого mcd-файла (читай - текста) есть своя комбинация шрифтов, которая хранится в mcd/wtb-файлах этого текста. Каждый шрифт с уникальным номером отличается от другого, мы эти шрифты генерируем в BMFont (количество и пути к ним мы как раз и задаем в txt-файле, который ты привел). Как обычно, BMFont генерирует в своем формате эти шрифты и текстуры для них, нам нужно это проделать всего один раз для каждого шрифта из списка. Впоследствии при пересборке mcd-файлов, нужно будет всего лишь указать путь к папке шрифтов, которые мы сгенерировали, там же должен лежать текстовый файл со списком этих шрифтов. Утилита во время чтения текстов, выдернет все теги, в которых прописаны номера шрифтов, какие мы задаем отдельным фразам, дальше она ищет эти номера в списке шрифтов, какой мы ей скормили, и загружает соответствующие шрифты в BMFont-формате, потом во время пересборки символов в mcd-файле, утилита выдернет из BMFont шрифта нужные символы и кусочки текстуры, которые им принадлежат, поместит их в отдельную текстуру, на которой, в конце концов, окажутся только используемые текстом символы, дальше mcdtool сконвертирует эти готовые текстуры в dds-формат и сохранит в файле с именем, равным идентификатору этой текстуры, а мы потом их соберем в wtb-файлы. Я думаю, раз Haoose сделал автоматизацию распаковки, то напишет и автоматизацию упаковки, это не будет трудно. Коды не используют ни один из шрифтов, которые в mcd файлах хранятся, они используют какой-то свой фиксированный шрифт, который где-то лежит (может, в исполняемом файле игры, может в каком-то ресурсе, я не знаю, не стал заморачиваться этим). Это я просто выделил большее количество символов в BMFont, чем есть на самом деле, на всякий случай, ненужные все равно потом не попадут в текстуры шрифтов самих текстов.
-
Я несколько страниц назад, когда сообщал о новой версии mcdtool, выкладывал образец файла конфигурации BMFont, надо просто загрузить в BMFont этот файл конфигурации, либо файл с символами, чтобы он все эти символы импортировал. Ссылка на архив: http://yadi.sk/d/IAMSSq-UJYnac Скриншоты привести, к сожалению, не могу, но ты можешь выдернуть текстуры шрифтов сам с помощью команды fonts, либо вот архив с текстурами, которые я когда-то распаковал (вроде бы даже выкладывал ранее этот архив): http://yadi.sk/d/D2ZhxSBmKRT8m Там число до знака подчеркивания - это номер шрифта.
-
Я свою часть работы по игре закончил (она заключалась в разборе ресурсов и написании инструментов), насчет шрифтов - не думаю, что так трудно воспользоваться BMFont, это может сделать любой из вас, у меня же теперь другие дела. Я могу только подключиться, если возникнут какие-то проблемы со сборкой.
-
Думаю, что надо оставлять, как в оригинале, т.е. в две строки. Видимо, там и большими и маленькими буквами написано. В принципе, у нас тоже можно так, достаточно указать другой шрифт, какой будет в итоге маленьким. Но я лично бы такие вещи вообще не переводил, а оставлял как есть, ибо даже в остальных языках, насколько я помню, их не переводили.
-
Нет, там заглавные буквы, просто шрифт меньше по размеру.
-
Вот правильная таблица (еще могут быть вблизи этих другие символы, можно по ASCII таблице посмотреть, но не всегда совпадает): мелкий шрифт: 16385 - точка с 16389 по 16398 включительно - цифры 0-9 с 16399 по 16424 включительно - буквы A-Z 16456 - короткое тиребольшой шрифт: 16459 - плюс 16460 - запятая 16461 - минус с 16463 по 16472 включительно - цифры 0-9 16473 - двоеточие 16476 - точка с 16480 по 16489 включительно - цифры 0-9 с 16490 по 16515 включительно - буквы A-Z 16546 - плюс 16547 - минус Вот код на Python для конвертации кодов в символы: