3

День 2

Серия Amorous Русификатор

Что ж, это было непросто, но у меня получилось выровнить эти грёбаные буквы. В общем, как работает система: я создаю битмап-карту для шрифта на сайте Snowb, после чего экспортирую её в формат XML (fnt). Однако, этот формат не подходит для игры, так как нужна разметка в формате JSON, а не fnt. Поэтому я написал конвертер из fnt в JSON (файл есть на бусти, кому интересно). Но там неправильно высчитывался кернинг. Я перепробовал кучу способов, и все они работали неправильно. Поэтому я взял наиболее близкие значения из fnt-файла, а именно: xoffset, yoffset и xadvance. И это сработало. Да, не идеально, так как между буквами остаётся большое расстояние, но, по крайней мере, это читабельно. Улучшать дальше я эту систему не буду, работает — и ладно. Сейчас я сосредоточусь на переводе текста. Там очень большой объём, поэтому я решил прибегнуть к машинному переводу, чтобы закончить быстрее и вы уже могли поиграть с каким-никаким русификатором. А потом я займусь правками, чтобы всё не выглядело так ужасно.

Можете следить за ходом дела в
Бусти: boosty.to/c0dy
ВК: https://vk.com/amorous_rus

День 2
Вы смотрите срез комментариев. Показать все
2
Автор поста оценил этот комментарий

Да, не идеально, так как между буквами остаётся большое расстояние, но, по крайней мере, это читабельно. Улучшать дальше я эту систему не буду, работает — и ладно.

Это абсолютно не читабельно. Такое сойдет, если в игре 20 надписей, которые прочитал один раз и дальше по памяти тыкаешь кнопки. Но не для визуальных новелл, где чтение - это основа геймплея.

раскрыть ветку (9)
1
Автор поста оценил этот комментарий

Я же написал, что это только для начала, чтобы был хоть какой-то русификатор. Когда всё будет готово, я доработаю этот шрифт.

раскрыть ветку (8)
1
Автор поста оценил этот комментарий

Насколько я вижу, информация о кернинге находится дальше в файле.
Не понимаю какой формат хочет игра, но базово кернинг - это информация о расстояниях между парами символов, а в питоновском файле пишется что-то странное вместо этой информации.

Иллюстрация к комментарию
раскрыть ветку (7)
1
Автор поста оценил этот комментарий

Да, я тоже это видел. Но там берётся отступ для всей разметки в целом, а не для каждого символа отдельно, из-за чего отступы получаются огромными. Игра определяет каждый символ как отдельный объект, и от его центра отходят отступы. Получается, что кернинг из обычной разметки неприменим. Вы сами понимаете, если мы сделаем отступ по x-координате в 221 пиксель, то это будет около 15 сантиметров в длину. В моей разметке сейчас 163 символа, и для каждого нужно вручную описать отступы по x, y и z. Это довольно трудоёмко, поэтому я пока отложил это на второй план и в данный момент занимаюсь переводом текстовой части. Главное, что пока удалось нормально отобразить русский шрифт.

0
Автор поста оценил этот комментарий

Вот так выглядит разметка в оригинальном JSON-файле. Как видишь, там минимальные отступы. Максимальный отступ — 15 пикселей. А в твоём скриншоте у первого символа отступ 70 пикселей — это слишком много. В этом сейчас основная проблема. Мне нужно либо найти нормальный генератор, либо вручную сделать разметку для всех 6 шрифтов. А это 163 символа, умноженные на 3 координаты и на 6. В итоге мне придётся прописать около 3000 координат. В общем, работы на 3 дня, поэтому я хочу отложить это на потом.

Иллюстрация к комментарию
раскрыть ветку (5)
0
Автор поста оценил этот комментарий

А в твоём скриншоте у первого символа отступ 70 пикселей — это слишком много

Нее. Кернинг чутка по другому работает. Он показывает, что между символом с id 70 (first) и символом с id 44 (second) нужно изменить горизонтальный отступ на -5 (т.е. уменьшить).
И следующей строчкой говорится, что между символом 70 и символом 46 отступ тоже другой.

Пример из википедии в картинке.

А изначально игра на каком языке? Не думаю, что в каком-нибудь китайском или японском вообще есть такое понятие, поэтому поддержки в игре может и не быть.

Иллюстрация к комментарию
раскрыть ветку (4)
1
Автор поста оценил этот комментарий

Да, но если я беру эти значения, то получается полная каша. В качестве x я беру xoffset, y — yoffset, а z — amount, что, по идее, логично. Но результат вот такой(Второй скрин). Как я понял, в самой игре отступы по x и y вместе смещаются z в минус или плюс. Какие только комбинации я уже не перепробовал — всё равно получается не то. Я не могу просто оставить все по нулям, потому что тогда все буквы будут появляться в одной точке. А если оставить только amount, то они тоже будут накладываться друг на друга и постепенно смещаться назад

раскрыть ветку (3)
0
Автор поста оценил этот комментарий

Сука, скрины не загрузились. А и игра на английском.

Иллюстрация к комментарию
Иллюстрация к комментарию
0
Автор поста оценил этот комментарий

Аж самому захотелось покопаться в этой теме. А horizontalSpacing за что отвечает?
Не может ли быть так, что x = first, y = second, z = amount, а размер средней буквы нужно в horizontalSpacing выставлять (хотя по идее, размер буквы индивидуален для каждой)?

И еще одно предположение, почему в первом дне буквы разъехались - они были нарезаны с разной высотой. И чтобы такого не случалось, нужно нарезать с одинаковой с выравниванием букв по нижнему краю.

раскрыть ветку (1)
0
Автор поста оценил этот комментарий

Я хз за что horizontalSpacing отвечает, он везде на 0 стоит в оригинале.

Как раз поэтому всё и разъехалось. В кернинге(Именно в этой игре) x и y не отвечают за айди, они отвечают за смещение по координатам x и y, а z используется для того, чтобы всё вместе сдвинуть влево или вправо. Буквы прыгали, потому что было указано неправильное значение y. Я сам до конца не понимаю, как это работает. Если интересно, я сделал архив, где мои шрифты, оригинальные из игры и инструменты. https://clck.ru/3DFhyt

Вы смотрите срез комментариев. Чтобы написать комментарий, перейдите к общему списку

Темы

Политика

Теги

Популярные авторы

Сообщества

18+

Теги

Популярные авторы

Сообщества

Игры

Теги

Популярные авторы

Сообщества

Юмор

Теги

Популярные авторы

Сообщества

Отношения

Теги

Популярные авторы

Сообщества

Здоровье

Теги

Популярные авторы

Сообщества

Путешествия

Теги

Популярные авторы

Сообщества

Спорт

Теги

Популярные авторы

Сообщества

Хобби

Теги

Популярные авторы

Сообщества

Сервис

Теги

Популярные авторы

Сообщества

Природа

Теги

Популярные авторы

Сообщества

Бизнес

Теги

Популярные авторы

Сообщества

Транспорт

Теги

Популярные авторы

Сообщества

Общение

Теги

Популярные авторы

Сообщества

Юриспруденция

Теги

Популярные авторы

Сообщества

Наука

Теги

Популярные авторы

Сообщества

IT

Теги

Популярные авторы

Сообщества

Животные

Теги

Популярные авторы

Сообщества

Кино и сериалы

Теги

Популярные авторы

Сообщества

Экономика

Теги

Популярные авторы

Сообщества

Кулинария

Теги

Популярные авторы

Сообщества

История

Теги

Популярные авторы

Сообщества