Перерисовка шрифтов

Материал из ConsolWiki
Перейти к: навигация, поиск

Как известно, для перевода текста в консольной игре необходимо предварительно в тайловом редакторе перерисовать английский (или иной) шрифт на русский. Но поскольку в английском алфавите 26 букв, а в русском 33, то с этим делом иногда возникают затруднения. Ниже приводится попытка обобщить и систематизировать решение данной проблемы посредством составления небольшого алгоритма последовательных действий. Рассуждения можно разделить на 5 шагов.


Шаг 1. Можно ли нарисовать русский алфавит, не трогая английский?

Английский шрифт Sword of Mana (GBA)

При смене шрифта в первую очередь стоит задуматься над тем, а нельзя ли нарисовать кириллицу, не трогая английский алфавит? Иногда рядом с латиницей можно найти некий азиатский алфавит, напрямую в игре нигде не использующийся. Перерисовываем его. Но не забудьте убедиться, что данные символы вы действительно можете без труда вывести на экран. Иногда бывает так, что в игре используются управляющие текстом коды, которые могут совпадать по значению с этими символами, из-за чего их вывести на экран будет проблематично. Если есть возможность, то лучше русский алфавит рисовать именно рядом, а не перечерчивать английский. Составив соответствующую таблицу, Вы сможете одновременно видеть и уже переведённые русские фразы, и ещё непереведённые английские. Если Вы используете Hexposure не ниже 3-ей версии, то сможете даже дополнительно выделить их разным цветом.





Русский шрифт Sword of Mana (GBA)

Шаг 2. Можно ли перерисовать латиницу в кириллицу с добавлением недостающих символов без каких-либо ухищрений?

Если вместить русский алфавит, не повредив английский, невозможно, то придётся перерисовать последний. После этого останется найти лишь 33-26=7 дополнительных свободных ячеек. Прошу заметить, что свободные ячейки не всегда выглядят, как шедевры Малевича (т.е. в виде чёрных квадратов). Приглядитесь внимательно: нет ли поблизости от перерисовываемого алфавита нескольких тайлов, занятых какими-либо простенькими, симметричными и, самое главное, абсолютно одинаковыми рисунками. Скорее всего программой они не используются. Также следует посмотреть, не использует ли игра какие-либо символы, без которых можно легко обойтись: знаки зарегистрированных товарных знаков и авторского права, различные кавычки, косые чёрточки и т.п. Дополнительно подумайте, все ли знаки препинания Вам нужны? И во избежание неприятных сюрпризов не забудьте проверить, что символы с данных позиций выводятся без проблем.


Шаг 3. Использовать вместо отдельных букв цифры.

Теперь перейдём к случаю, когда свободных ячеек недостаточно для всех необходимых Вам дополнительных символов. Что делать? Почти везде, где можно выводить буквы, можно вывести и цифры. Воспользуемся этим. Вместо буквы "О" в тексте можно использовать цифру "0", а вместо буквы "З" цифру "3". После небольшой перерисовки можно слить воедино "Ч" и "4", а также "Б" и "6". Также в отдельных частных случаях, при использовании определённых шрифтов, можно попытаться объединить "Г" (курсивом) и "2", "Д" (курсивом) и "9", а также "В" и "8".


Шаг 4. А все ли буквы мне на самом деле нужны?

Если в переводимой игре мало текста, то быть может, есть возможность вообще обойтись без некоторых наиболее редких букв? Подумайте, нельзя ли неудобные слова заменить синонимами или вообще перестроить предложения? Возможности русского языка очень широкие.


Шаг 5. Подмена букв - меньшее из зол.

Если всех приведённых выше советов не хватает, или же Вы просто хотите обогатить текст знаками препинания, то в рамках базового ромхакинга остаётся всего один инструмент: подмена букв. Его смысл в том, что вместо одних букв пишутся другие, похожие на них. Это не самый лучший способ, но в некоторых случаях он является меньшим из зол. Итак, от каких же букв можно отказаться и на какие их можно заменить? В первую очередь букву "Ё" заменяем на "Е". "Ё" очень колоритна и украшает любой текст, но в некоторых случаях приходится издать тяжёлый вздох. Затем размышляем над заменой "Ъ" на "Ь" и "Щ" на "Ш". Можно в соответствующих уголках "Ь" и "Ш" поставить одиночную выступающую точку, чтобы обеспечить дополнительную размытость. Также можно отказаться от "Й" в пользу "И". Но при этом всё же старайтесь по возможности сократить количество слов с подменой, используйте синонимы и перестройку предложений.

Шаг 6. Путь ниндзя.

Использование эмулятора с отладчиком для модификации нужных участков кода

Существует ещё один способ перерисовать шрифты, удовлетворяя при этом все поставленные задачи. Однако, он требует большого упорства, некоторых начальных знаний и выходит за рамки базового ромхакинга. Речь идёт о редактировании кода. Все исполняемые файлы, будь то игра или программа, являются файлами, содержащими хоть немного исполняемого кода. Всё остальное - это данные, которыми этот код оперирует. Значит, если есть шрифт - то есть и код, который его выводит на экран. А если есть код - то его можно изменить так, чтобы он оперировал полноценным шрифтом с полными русским и английским алфавитами. Для этого необходимо изучить ассемблер процессора консоли, под которую разработана игра, и научиться орудовать дебаггером. Без этого метода никак не обойтись, например, при переводе многих японских игр - ведь иероглифы обычно бывают моноширинными, а ширины символов русского/английского шрифта всегда разные.