Kane's Wrath Red Alert 3 Tiberium Wars Гайды Моды Моды C&C3 Моды Red Alert 3

Как перевести модификацию для Tiberium Wars, Kane’s Wrath или Red Alert 3

Автор: mah_boi

Подробная инструкция о том, как перевести модификацию для C&C 3: Tiberium Wars, C&C 3: Kane’s Wrath или C&C: Red Alert 3 на любой язык, с использованием современных инструментов

В статье рассматриваются основные нюансы, возникающие перед переводчиком в процессе создания локализации для модификаций на Tiberium Wars, Kane’s Wrath или Red Alert 3 (далее TW, KW и RA3 соответственно).

Вы можете воспользоваться другой статьёй по переводу модификаций для игр C&C 3-го поколения, однако та статья написана на английском и для RA3.

Инструменты

Самое главное для переводчика — владение инструментами для корректного редактирования игровых файлов, чтобы в результате мод работал как и до этого, а в идеале желательно и при игре по сети с игроками без локализации. Для работы вам потребуются следующие программы:

  1. WrathEd — программа для просмотра и экспорта данных из .big архивов TW/KW/RA3. FinalBIG несовместим с TW/KW/RA3 (максимум через него можно посмотреть иерархию папок и файлов архива), т.к. не поддерживает сжатие .big архивов, добавленное в этих играх;
  2. Turbo String Table Editor (сокращённо TSTE) — программа редактирования .csf и .str файлов;
  3. MakeBig — архиватор .big архивов, написанная EA. Программа поставляется вместе с Red Alert 3 MOD SDK. Установите SDK и программу можно будет найти в папке “tools“. Имеет CLI интерфейс.

Работа с инструментами

Весь текст, которые мододелы вносят в свой мод, находится в файле mod.str. Огромный недостаток данного файла — отсутствие нормальной поддержки Unicode. Попытка в записать в этот файл любой не ASCII текст обернётся тем, что в результате будут выводится непонятные иероглифы. Увы, EA не разработала удобной системы локализации модов через mod.str. Однако данную проблему можно решить более радикальным способом, а именно заменой mod.str файлом, содержащим в себе весь текст игры. Весь текст игр TW/KW находятся в архиве ПапкаИгры\Lang-[название языка; например: english]\1.[любой номер патча]\patch[номер патча].big в файле cnc3.csf, а в RA3 ПапкаИгры\Data\Lang-[название языка; например: Russian][номер патча].big в файле data\gamestrings.csf. В итоге, заменяя mod.str соответствующим .csf файлом, решается проблема локализации мода. Стоит отметить, что mod.str любой модификации располагается по пути data\mod.str в каком-либе .big архиве модификации.

Итак, задачи, встающие перед переводчиком, выглядят следующим образом:

  1. Поиск mod.str в .big архивах мода;
  2. Создание переведённого cnc3.csf / gamestrings.csf с переведёнными строками из mod.str и оставшимся текстом игры;
  3. Сборка .big архива с полученным в итоге .csf файлом.

Выполнив этот план, можно считать, что мод переведён.

Извлечение текстовых файлов

Работа с WrathEd крайне проста. Запускаем программу. В контекстном меню выбираем опцию File—>Open Big... и указываем открываемый .big архив. 

Открытый файл RemixEn_0.2.9.big модификации Remix для Red Alert 3

Находим среди всех файлов необходимый нам data\mod.str и нажимаем на него, чтобы извлечь из архива. В контекстном меню выбираем опцию Edit—>Export... и указываем путь, куда сохранить. Всё. Теперь у вас имеется mod.str. Этот файл можно открыть абсолютно любым текстовым редактором.

Выбранный mod.str в .big архиве мода Remix для Red Alert 3

Аналогично совершаем экспорт оригинального/локализованного .csf файла TW/KW/RA3. Экспортировать будет гораздо проще, т.к. эти файлы находятся в соответствующих архивах одни без каких-либо других дополнительных файлов.

Содержимое архивов patch9.big и Lang-English11.big

Пример экспортирования по инструкции описанной выше (достижения при использовании программы появляются спонтанно; пример был проведён с использованием .big архива модификации Tiberium Essence)

Редактирование скомпилированного файла строк

Т.к. разработчики EALA не меняли формат .csf со времён Red Alert 2, TSTE является наилучшим решением для редактирования как .csf, так и .str текстовых файлов. Главными преимуществами программы перед аналогами (Siberian String Table Editor и C&C String Editor): поддержка ANSII и Unicode кодировок текста, экспорт/импорт строк/разделов в отдельные файлы, конвертация всего текста из ANSII в Unicode и обратно.

Открытое окно TSTE

Итак, после того как вы экспортировали все необходимые вам текстовые файлы, можно приступать к работе с ними. Чтобы конвертировать .str в .csf необходимо уже открытый mod.str сохранить как .csf файл. Конвертация в этом случае произойдёт автоматически. Открывается mod.str нажатием на опцию Файл—>Открыть..., а сохраняется в .csf после нажатия Файл—>Сохранить как... и указания названия нового файла.

Демонстрация конвертации через сохранение в другом формате

Предварительно стоит отметить, что итоговый файл должен иметь кодировку Unicode, поэтому выберите в TSTE отображение текста в Unicode (путь по меню: Вид—>Кодировка—>Unicode) и только потом переводите/редактируйте текст.

Для начала вам необходимо определится: текст интерфейса и прочий тексты вы будете переводить сами, или позаимствуете текст из уже имеющейся официальной локализации игры. В первом случае лучше всего экспортировать отдельно разделы и строки из официального английского .csf файла в отдельный файл экспорта, а затем импортировать в файл вашей локализации мода. Будьте осторожны, т.к. при отсутствии необходимого текста игра будет его заменять на гораздо менее понятный результат. 

Пример ошибки отсутствия текста на боковой панели вследствие его отсутствия в gamestrings.csf. Пример был взят из предварительной версии локализации мода Generals Evolution

Во втором случае вам необходимо импортировать mod.str в .csf файл официальной локализации с заменой значений.

Для того чтобы экспортировать раздел, необходимо выбрать раздел/категорию, нажав на него ЛКМ, а затем выбрав Файл—>Экспорт категории..., после чего указать файл для экспорта. Если же необходимо экспортировать только строку, то нужно выбрать её, нажав на неё ЛКМ, а затем выбрав Файл—>Экспорт строк..., и после указать файл для экспорта. В отличие от разделов, строки можно выбирать массово через Ctrl (по одной строке) и Shift (все строки от уже выделенной до новой выделенной).

Демонстрация экспорта

При импорте всё крайне просто. Нажимаем Файл—>Импорт... и указываем файл, который будет импортироваться, а также настройки импорта. Все новые добавленные строки выделяются синим и добавляются в конец списка в категории. Категории же при импорте имеют зелёный цвет, символизирующий наличие изменений.

Демонстрация импорта

В конечном итоге у вас получится перевести весь текст в моде, но, к сожалению, бывают такие модификации, которые добавляют не только текст в виде названий и описаний способностей/зданий/юнитов, но и в добавок размещают текст на их иконках. Исправить это можно только редактированием иконок. Этот вопрос в статье рассмотрен не будет, т.к. носит исключительный характер (до сих пор только в Generals Evolution такое встречалось).

Пример полностью переведённого описания юнита из локализации мода Generals Evolution

Создание архива

С помощью MakeBig можно создать .big архив как в командной строке, так и через батник как вызов программы. Однако батник является более оптимальным решением по причине постоянной проверки текста в самой игре переводчиком (батник можно использовать как скрипт для сборки локализатора).

Все возможные аргументы запуска программы MakeBig

Пользоваться MakeBig крайне просто: для создания архива нужно лишь описать архивируемую папку и выходную папку. Например, чтобы поместить какой-нибудь текстовый файл в него, нужно поместить этот файл в отдельную папку, и затем прописать команду MakeBig.exe -o:[путь с названием создаваемого big архива] [путь с названием исходной папки].

Пример создания .big архива

Учитывая, что .csf файл должен находится в папке data, то и иерархия папке-исходнике должна быть такая же. 

Демонстрация использования MakeBig для сборки .big архива

Тестирование изменений

Наиболее оптимальный способ разместить  .csf файл — поместить его в отдельный .big архив, который будет “собираться” и добавляться к основным файлам мода. Это можно спокойно делать, т.к. .csf файл перезапишет значения из mod.str. Однако создать один архив недостаточно, т.к. он не будет подключён в файлам мода. Для подключения нового архива к файлам мода нужно описать его подключение в .skudef конфигурационном файле мода. Для этого откройте этот файл любым текстовым редактором и добавьте в конце файла строчку add-big [название вашего .big архива с .csf файлом]. В итоге у появится как .big архив с переведённым текстом, так и конфигурационный .skudef файл, подключающий перевод к моду.

Автоматическую сборку локализатора и запуск проверки проще всего сделать путём запуска .bat файла, однако его создание в статье рассмотрено не будет. В качестве альтернативы могу вам предложить поискать информацию в Интернете по данной теме, а также мой пример, который я использую при переводе модификации Generals Evolution.

Поддержка изменений

Двумя самыми большими проблемами локализации являются контроль внесённых изменений и долговременная поддержка сделанной вами локализации. Локализатор для игры можно воспринимать как локализатор программного обеспечения, поэтому здесь вполне применима технология Git. Если вкратце, то Git — это система управления версиями, созданная для упрощения разработки ПО. Git помогает отслеживать изменения в текстовых файлах, что позволит вам не потерять наработанный прогресс. Более подробно познакомится с тем, что такое Git, можно здесь.

Если же вы желаете помочь не только себе, отслеживая изменения в Git, но и ещё упростить способ подключения к работе над переводом и поиск вашего проекта в Интернете, то лучше всего выложить отслеживаемый вами репозиторий проекта на сайт-хостинг по типу GitHub и GitLab. В качестве примера, как можно организовывать репозиторий проекта, я могу предложить свой репозиторий. Его структура  крайне проста и понятна любому, кто сталкивался с Git.

Об авторе

mah_boi

Переводчик-любитель, луркер информации по играм C&C 2-го поколения. Перевожу модификации для C&C: Tiberian Sun, C&C: Red Alert 2, C&C: Red Alert 3 в свободное время.

Комментировать