• Страница 1 из 2
  • 1
  • 2
  • »
Форум о визуальных новеллах » Для всех » Визуальные новеллы » Не совсем обычные глифы во время перевода Rance 9.
Не совсем обычные глифы во время перевода Rance 9.

lakarm

#1
Привет, захотелось перевести vn Rance 9, но стразу (ладно не совсем сразу) наткнулся на вот такие вот глифы.


Пользовался ollydbg 2.0 для смены языка в .exe на OEM, а ain кодировал через aindecompiler(в коде программы сменил кодировку на cp866). На скрине с ollydbg есть области, которые вроде отвечают за глифы в тексте, но сколько не пробовал так и не смог нормально что-то изменить, если кто знает что нужно сделать, буду очень признателен.
Прикрепления: 5477850.png(251.8 Kb) · 7692756.png(30.0 Kb)
Сообщение отредактировал lakarm - Четверг, 23/Июн/2022, 20:20

lakarm

#3
Да, надо бы и там спросить. А вообще, если есть решение проще того, что я сделал, тоже буду признателен.
Сообщение отредактировал lakarm - Пятница, 24/Июн/2022, 15:40

Tester

#4
Цитата
А вообще, если есть решение проще того, что я сделал, тоже буду признателен.

> Ежели не ошибаюсь, там AliceSoft System 4.3 или как-то так. В более ранних версиях AliceSoft System (до 4.2/4.1) обычно использовал при техчасти т.н. "метод костыльных шрифтов", но в 4.2 (или 4.1) появляется .fnl для шрифта. Собственно, здесь можно сделать некий аналог т.н. "костыльного шрифта", но с редактированием fnl (то можно сделать, например, сим средством).
> Сомневаюсь, будет ли проще, но в таком методе определённо будет меньше проблем.
> Замените глифы символов половинной каны и некоторые вроде "=" в fnl на русские буквы и передавайте соответствие между ними в скриптах -- напишите элементарный конвертировщик кириллических строк в костыльные. Так будет просто и эффективно.

===
> Не раз работал с играми на движках серии AliceSoft System с помощью серии подобных методов, и проблем особых не было. Из именно AliceSoft 4.3...
> В Рансе 8 именно такой метод испытывал, более чем работал. Выполняется крайне быстро, стабильность работы высокая.
> В Рансе 1/Великой империи кое-как отвязал от fnl, ввёл ещё ряд костылей для отрисовки и добавил поддержку разноширинных шрифтов, но было хлопотно и немало изменений, посему метод описывать не буду (да и не на 100% помню уже).
Сообщение отредактировал Tester - Суббота, 25/Июн/2022, 00:25
Тестировать, тестировать и ещё раз тестировать.

lakarm

#5
Цитата Tester ()
> Ежели не ошибаюсь, там AliceSoft System 4.3 или как-то так. В более ранних версиях AliceSoft System (до 4.2/4.1) обычно использовал при техчасти т.н. "метод костыльных шрифтов", но в 4.2 (или 4.1) появляется .fnl для шрифта. Собственно, здесь можно сделать некий аналог т.н. "костыльного шрифта", но с редактированием fnl (то можно сделать, например, сим средством.> Сомневаюсь, будет ли проще, но в таком методе определённо будет меньше проблем.
> Замените глифы символов половинной каны и некоторые вроде "=" в fnl на русские буквы и передавайте соответствие между ними в скриптах -- напишите элементарный конвертировщик кириллических строк в костыльные. Так будет просто и эффективно.

===
> Не раз работал с играми на движках серии AliceSoft System с помощью серии подобных методов, и проблем особых не было. Из именно AliceSoft 4.3...
> В Рансе 8 именно такой метод испытывал, более чем работал. Выполняется крайне быстро, стабильность работы высокая.
> В Рансе 1/Великой империи кое-как отвязал от fnl, ввёл ещё ряд костылей для отрисовки и добавил поддержку разноширинных шрифтов, но было хлопотно и немало изменений, посему метод описывать не буду (да и не на 100% помню уже).
Спасибо за оперативный ответ. Похоже залипну на этом на пару недель (ну я же всё-таки не программист) придётся в этом разбираться, прежде чем получить хоть какой-то результат XD.

Tester

#6
Одна из моих статей может вам помочь. (Хотя далеко не только там описывал). Там описана процедура метода костыльного шрифта для иного движка, что в своё время взламывал, но суть похожа.

См. разделы: "Как заставить игру нормально работать с кириллицей?" и "Как выполнить "костыльное преобразование строк"?".

Но ежели там в .exe и .dll надобно менять модель шрифта, в данном случае её не должно трогать; надобно оставить всякие Готики и Минтё как есть. Также вместо создания костыльного шрифта на базе японского ttf-шрифта надобно просто создать костыльный fnl, как писал в прошлом сообщении.
Тестировать, тестировать и ещё раз тестировать.

lakarm

#7
Цитата Tester ()
> Ежели не ошибаюсь, там AliceSoft System 4.3 или как-то так. В более ранних версиях AliceSoft System (до 4.2/4.1) обычно использовал при техчасти т.н. "метод костыльных шрифтов", но в 4.2 (или 4.1) появляется .fnl для шрифта. Собственно, здесь можно сделать некий аналог т.н. "костыльного шрифта", но с редактированием fnl (то можно сделать, например, сим средством).> Сомневаюсь, будет ли проще, но в таком методе определённо будет меньше проблем.
> Замените глифы символов половинной каны и некоторые вроде "=" в fnl на русские буквы и передавайте соответствие между ними в скриптах -- напишите элементарный конвертировщик кириллических строк в костыльные. Так будет просто и эффективно.
Я так полагаю, что в FNLRemapper в строке virtual characters забивается кириллица, а в physical characters это как раз половинная кана, верно? (подробного руководства по данной программе, к сожалению, нет на github)
Прикрепления: 6636576.png(15.4 Kb)
Сообщение отредактировал lakarm - Суббота, 25/Июн/2022, 16:48

Tester

#8
Вроде так. Ну, или наоборот. Честно говоря, уже не помню. Средство использовал один раз, да и давно.
Тестировать, тестировать и ещё раз тестировать.

lakarm

#9
Tester,
В общем как-то так

Но как видно на скриншоте шрифт жирноват(насчёт этого есть одна идея) и почему-то "я" кодируется с глифом, хотя в скрипте всё нормально...

Вообще тут довольно забавно вышло, я просто поменял в .jam это место на push 0(изначально там было SH_LOCALREF Type. )
А, этот момент стоит пояснить. Пользовался я "alice tool 0.11.1"(хотя можно для этих же целей использовать aindecompiler) и при раскодировке .ain в командной строке вбивал "alice ain dump -c -o out.jam Rance9.ain" Ну  после замены текста обратно кодировал через командную строку "alice ain edit -c out.jam -o out.ain Rance9.ain". Ну и разумеется потом новый out.ain переименовывал в Rance9.ain и заменял в папке с игрой.

И в .exe заменил все MS ゴシック на TBGoth(MS 明朝 пока не трогал)
Прикрепления: 4688182.png(322.8 Kb) · 6426798.png(22.5 Kb) · 7025240.png(15.8 Kb)
Сообщение отредактировал lakarm - Воскресенье, 26/Июн/2022, 12:28

Tester

#10
Цитата
Но как видно на скриншоте шрифт жирноват(насчёт этого есть одна идея) и почему-то "я" кодируется с глифом, хотя в скрипте всё нормально...

> Справедливости ради, почти никогда проблем с его толщиной не возникало. В том числе в Рансе 8. Возможно, вы что-то ещё тронули... А так там где-то в коде можно поколдовать и увеличить базовое расстояние между символами сообщений (в том числе). Для разных данных рядом со связкой с dll может быть... Или не с dll, в зависимости от игры. Именно где точно не помню, но успешно делал такое определённо. Проанализируйте места, отвечающие за вывод символов. Там могут быть разные "пути", так сказать, для разных типов надписей.
> Насчёт "я"... Можете попробовать заменить не на "&", а на что-нибудь другое. Например, неиспользуемые символы половинной каны, иной спецсимвол или даже какую-нибудь латиничную букву.
Сообщение отредактировал Tester - Воскресенье, 26/Июн/2022, 18:53
Тестировать, тестировать и ещё раз тестировать.

lakarm

#11
Цитата lakarm ()
> Насчёт "я"... Можете попробовать заменить не на "&", а на что-нибудь другое. Например, неиспользуемые символы половинной каны, иной спецсимвол или даже какую-нибудь латиничную букву.
Вероятно вы меня чуть-чуть не поняли. Как я и сказал выше, я просто поменял параметр в скрипте на PUSH 0(т.е. я предполагаю, что тут принудительно назначает на всё только 1 шрифт) и заменил все MSGoth на TBGoth в .exe (я так полагаю TBGoth выставился по умолчанию как основной шрифт). FNLRemapper не импользовал, ибо не разобрался как он работает, шрифт вроде создаёт, но эффекта 0. Поменять "я" на другой символ тоже не знаю как, а при замени в программе TesterSLGSystemConv.py на другой символ, он просто выдаёт этот же символ(хотя тут логично, он же просто символ для конвертирования меняет, но так как в самой шрифте символ для "я" остался прежним ничего и не происходит.)

Tester

#12
Цитата
Как я и сказал выше, я просто поменял параметр в скрипте на PUSH 0(т.е. я предполагаю, что тут принудительно назначает на всё только 1 шрифт) и заменил все MSGoth на TBGoth в .exe (я так полагаю TBGoth выставился по умолчанию как основной шрифт)

> Именно что вас понял. Вероятно, ежели бы вы поправили fnl, таких бы проблем не возникло.

Цитата
FNLRemapper не импользовал, ибо не разобрался как он работает, шрифт вроде создаёт, но эффекта 0.

> Кое-что вспомнил. Есть шрифт fnl, и есть выбранный "нормальный шрифт". Из нормального шрифта от берёт указанные глифы и перемещает их в fnl. То есть в принципе вы могли бы в качестве "нормального" шрифта указать TBGoth.ttf, а далее указать всю серию используемых костыльных символов в обеих полях ввода (половинную кану + символы как &). Тогда они бы передались в fnl. А далее просто использовать оригинальный .exe-шник.
> Там соответствующие глифы "нормального шрифта" передаются в соответствующие глифы fnl, ежели упрощённо.

Цитата
Поменять "я" на другой символ тоже не знаю как

> Средство для редактирования шрифтов, ибо то в самом TBGoth.ttf. Например, с помощью FontCreator. Впрочем, вы просто можете передать в fnl в другой глиф.
Сообщение отредактировал Tester - Воскресенье, 26/Июн/2022, 23:53
Тестировать, тестировать и ещё раз тестировать.

lakarm

#13
Tester,
Ох, я кажется разобрался с FNLRemapper

Но теперь текст немного мелковат XD. Пробовал менять размер шрифта в самом FNLRemapper, но результата не было. Что ж буду искать.
Прикрепления: 6406590.png(222.0 Kb)
Сообщение отредактировал lakarm - Понедельник, 27/Июн/2022, 00:47

Tester

#14
Здесь два варианта исправления основных. Во-первых, где-то в коде устанавливается параметр стандартного размера сообщений. Не помню, правда, где, но точно был где-то. "Последуя по пути кода, что за отрисовку их отвечает, узреть можете" -- так сказать. Во-вторых, была команда или функция для изменения размера шрифта.

===
О, покопался в своих старых наработках и нашёл. Для Ранса 01 действовала, а тот вроде на AliceSoft System 4.3, так что сработать должно... Тем более название весьма говорящее. Например, для изменения размера шрифта на 26-й можно использовать...
Код
字サイズ(26);

...То в AinDecompiler, а не для того средства от Нунухары, но...
Раз измените -- даже при загрузке сохранения и при переходе на иные сцены должно сохраняться, как тестировал. Просто вставьте куда-нибудь в начало пролога.

===
Между тем, в коде можно даже систему автопереносов сделать, ежели постараться. Как по строкам, так и по сообщениям. В своё время делал такое в Великой империи и Рансе 01. Но работы много, опять же. Проще сделать "внешнюю систему", которая бы такое делала на автомате -- преобразовывала обычный скрипт с кириллицей в костыльный скрипт с переносами по строкам и разделёнными сообщениями. Благо, сделать несложно, ежели с моноширинником. Не как в Великой империи, да...
Сообщение отредактировал Tester - Понедельник, 27/Июн/2022, 05:03
Тестировать, тестировать и ещё раз тестировать.

lakarm

#15
Цитата Tester ()
О, покопался в своих старых наработках и нашёл. Для Ранса 01 действовала, а тот вроде на AliceSoft System 4.3, так что сработать должно... Тем более название весьма говорящее. Например, для изменения размера шрифта на 26-й можно использовать...Код
字サイズ(26);

...То в AinDecompiler, а не для того средства от Нунухары, но...
Раз измените -- даже при загрузке сохранения и при переходе на иные сцены должно сохраняться, как тестировал. Просто вставьте куда-нибудь в начало пролога.


Если я тебя правильно понял, то должен быть один из таких вариантов...



Однако ни один не сработал(

Кроме того смена размера в ain decompiler тоже не помогла. А в самом коде даже cчитать страшно, сколько присутствует функций с переменной FontSize
Прикрепления: 3952794.png(10.2 Kb)
Сообщение отредактировал lakarm - Понедельник, 27/Июн/2022, 17:22
Форум о визуальных новеллах » Для всех » Визуальные новеллы » Не совсем обычные глифы во время перевода Rance 9.
  • Страница 1 из 2
  • 1
  • 2
  • »
Поиск: