pol4rcat

pol4rcat 

Делаем всякое

263subscribers

74posts

Showcase

2
goals1
22 of 200 paid subscribers
200 уважаемых подписчиков, и я заменяю одну свою работу на вас => существенно больше времени для текстовых упражнений. Deal?

Как олень по-русски заговорил

Итак. Голосование закончилось, и господа подписчики выбрали игру Beacon Pines. Квест\вн\приключалка с фуррями-подростками. И я приступаю к ее переводу. Но сперва хотелось рассказать, как я ее открыл. И это даст понимание, почему из доступных переводов есть только через плагины\инжекторы.
И сначала дам небольшой флешбэк. Первые игры, которые я переводил, были на самом деле довольно расположены к модификации. Sunset Hills внутри своего основного архива имеет просто текстовик со строками, BttD — 170 текстовых файлов. Всё это спокойно парсится, собирается в таблицу и переводится. С трудностями я столкнулся при переводе Between Horizons. Там надо было хитро обойти проверку на целостность файлов, благо некропостинг на форуме принес свои плоды, и можно ДАЖЕ послушать героиню на русском языке.
И вот у нас настало время проверки новых игр на переводопригодность, и начались проблемесы. Не, текстовки нашлись быстро. Порадовался, что всё упорядочено, все реплики подписаны, кто говорит — красота. Но только главная игромеханическая фишка игры (выбор путей развития сюжета) сыграла каку. В этих самых сценариях диалогов (и катсцен, и вообще всего на самом деле) есть ключи развилок, и прикол в том, что одно единственное тестовое поле является и собственно текстом, и внутренней переменной для логики игры. То есть поменять её нельзя — игра просто перестает видеть вариант выбора.
Та же история происходит и с игровыми объектами, связанными с выбором — талисманы (чармы). В момент выбора (и в «инвентаре») они отображаются такими карточками. «Ну поправлю графику, что уж», — подумал я. «Сасай-кудасай», — решила игра. Текст названия чарма пишется шрифтом поверх графики карточки. Ну, значит этот текст где-то берётся? Да! Берётся! Из названия, сука, файла! То есть в игровом архиве лежит спрайт с именем «chill», и это имя подхватывается для написания строки «chill» на этом спрайте. Естественно, при изменении имени игра такая: «А где chill?» И карточка просто не рисуется.
«Но ты же будешь переводить. Как так?»
Тут начинается серьезное дерьмо. При помощи воображаемых друзей я лезу в недра игровой логики. Открываем dll файл в декомпилере. Смотрим на буквы. И, о боги, как же нам повезло, натыкаемся на метод, который отвечает за загрузку текстовых данных! Оказалось, что формат скрипта и игрологика сделана спецом под эту игру (ибо зовется Lukascript). Воображаемый друг, внимательно изучив код, заявляет, что для ключей развилок есть так-то специальные переменные, которых нет в скриптах, и они предоставляют альтернативный вариант начертания строки этой развилки. То есть название можно оставить как было, а в новую переменную всунуть всё что угодно, и это не сломает логику!
Вух! Полдела сделано. Но что там с чармами? Ну... Пришлось дописать новую функцию в код игры. В моменте передачи текста в текстовый модуль (TMPPro — кто понял, тот понял) мы ловим определенный список слов (имен спрайтов) и заменяем на соответствующий набор русскоязычных вариантов. Но долой хардкод внутрь: словарь соответствий — это просто текстовый файл рядом с ассетами игры. Вау. Ну и шрифты еще. Стандартная история с приготовлением SDF-шрифтов в юнити. Это уже изи.
TL;DR Это рил модификация игры. Прям в мозгах ковырнули.
Лайк, подписка, колокольчик.
Subscription levels3

Это база

$1.41 per month
Просто так. Или "надеюсь, это ускорит этого чувака". Или *дружеское похлопывание по плечу*. В любом случае, это ценно.

База за базой

$2.82 per month
Тут у нас уже серьёзные вещи. Ничем не отличается от предыдущей, но мне в ДВА раза приятнее!

We Require More Minerals

$7.1 per month
Особая благодарочка автору от вас. Здесь уже будут определенные привилегии, влияние на коньтент и вот это вот всё.
Go up