Технический вопрос по замене шрифта в визуальной новелле
|
|
|
#2
Цитата Couguar (  ) Как менять размер шрифта по-прежнему неясно. Могу подсказать весьма костыльный, но действенный вариант.
Можно использовать костыльный моноширинный шрифт, основанный на японском, причём такой, что в нём каждый кириллический символ, что в Shift-JIS полноширинен, поставлен в соответствие некоторому символу половинной каны и/или латиницы. Потом, конечно, придётся преобразовывать все кириллические символы в соответствующие костыльные символы, но то закодить элементарно.
И да, в .exe прописать новый шрифт (иногда шрифт в Ethornell лежит либо в архивах, либо открыто, но иногда, видно, просто строится по указанной модели).
Сообщение отредактировал Tester - Воскресенье, 07/Мар/2021, 09:37
Тестировать, тестировать и ещё раз тестировать.
|
#3
Цитата Tester (  ) Можно использовать костыльный моноширинный шрифт, основанный на японском, причём такой, что в нём каждый кириллический символ, что в Shift-JIS полноширинен, поставлен в соответствие некоторому символу половинной каны и/или латиницы. Потом, конечно, придётся преобразовывать все кириллические символы в соответствующие костыльные символы, но то закодить элементарно. Большое спасибо за совет, но всё же прошу уточнить, как именно это делается.
Я попытался взять уже готовый шрифт (мс-готик) программой редактором шрифтов и сделать из него кастомный, поменяв границы кириллических символов, а потом прописав его в ехе, но пробелы между буквами не исчезли, только появилась разница при запуске игры с локалью и без (без локали запускался обычный готик, а с локалью что-то очень кривое, в котором даже японские символы отображались с громадными промежутками. Скорее всего, я что-то не так понимаю.
|
#4
Цитата Couguar (  ) Скорее всего, я что-то не так понимаю. Что ж, ряд движков не поддерживает полиширинные шрифты (т.е. с произвольной шириной каждого символа), посему по ширине символов задаются по-своему. В частности, Ethornell (по крайне мере в версии той игры, ибо встречались иные случаи, когда забирались Юникодовые строки из файла-патча, но не будет о таком) берёт строки на Shift-JIS и задаёт полуширинным одну ширину, а полноширинный -- иную. Таким образом, в вашем случае менять границы кириллических символов особого смысла нет. А ежели вы попробуете уменьшить ширину при отрисовке моноширинника, при сим используя кириллицу, то у вас будут обрезаться куски букв (хотя против сего и можно принять меры, проще использовать костыли).
Есть ряд способов сделать поддержку и полиширинных в такого рода движках, но дело то, так скажем, не самое лёгкое и быстрое (доводилось такое делать, пусть и немного с другим движком), в свою очередь костылями можно обеспечить относительно корректную отрисоку при относительно невысоких затратах сил.
Цитата Couguar (  ) Большое спасибо за совет, но всё же прошу уточнить, как именно это делается. 1. Берётся некоторый моноширинный шрифт, причём достаточно узкий (допустим, Ubunta Mono или как-то так). 2. Берётся японский MS Gothic. 3. Берутся кириллические символы и копируются в ячейки, где расположена половинная кана или латиница. Соответствия записываются! 4. Пишется программа, которая меняет кириллические символы на символы после преобразования. 5. С помощью шестнацатеричного редактора подменяется шрифт (строго говоря в движках далеко не всегда так).
Далее уже заполняете скрипты кириллицей, копируете, потом преобразовываете один из.
Ещё в таком случае желательно написать скрипт установки шрифта без необходимости перезагрузки для Windows. Рядовым пользователям вельми поможет.
Кроме того, при необходимости могу вам подобрать какой-нибудь из своих костыльных шрифтов (довелось мне их немало сделать) вместе с программой преобразования.
Сообщение отредактировал Tester - Воскресенье, 07/Мар/2021, 18:27
Тестировать, тестировать и ещё раз тестировать.
|
#5
Цитата Tester (  ) Кроме того, при необходимости могу вам подобрать какой-нибудь из своих костыльных шрифтов (довелось мне их немало сделать) вместе с программой преобразования. Был бы очень благодарен , потому что сам я в программировании, к сожалению мало что понимаю. Всё что удалось сделать выше мне помогли поиск и советы от других людей :)
|
#6
Что ж, можете попробовать вот сие. (Ежели сей не подойдёт -- пишите, у меня их около десяти). (Данный костыльный шрифт есть классический костыльный шрифт, основанный на половинной кане. С ним должны работать как символы латиницы, так и кириллицы).
Программа требует Питона 3. Программа разработана специально для удобства работы (там ещё куча режимов, но на них не обращайте внимания). Работать с ней можете следующим образом... 1. Копируйте исходную строку скрипта (можете много строк, не важно, хоть весь файл копируйте). (С помощью Ctrl+C или с помощью Ctrl+A и потом Ctrl+C). 2. Запускайте программу. 3. Содержимое буфера обмена будет преобразовано. Преобразованный текст заменит в буфере обмена исходный. Теперь можете с помощью Ctrl+V получить изменённый текст.
Сообщение отредактировал Tester - Воскресенье, 07/Мар/2021, 19:49
Тестировать, тестировать и ещё раз тестировать.
|
#7
Огромное спасибо!
Включение шрифта в игру действительно помогло и убрало промежутки. Но символы пришлось вбивать копипастой из кода программы, так-как сама программа на символы почему-то не работает. После её запуска опция вставки пропадает.
На этом можно считать мой вопрос решённым.
|