Автор: Павел Севец
В качестве примера разберем перевод модов для Warcraft 3. Вся локализация укладывается в пять последовательных шагов.
Шаг первый: перевод брифингов
В кампаниях Warcraft 3 есть две категории ресурсов, которые необходимо перевести: это сюжетный текст и надписи на текстурах. Процесс локализации мы рассмотрим на примере кампании «Повелитель кланов». Для создания перевода нам понадобится стандартный игровой редактор World Editor, входящий в состав игры, а также утилиты myWinMPQ для работы с MPQ-архивами и WC3 Image Extractor 2 для конвертации картинок. Эти и другие программы, упомянутые в данной статье, вы можете взять с нашего DVD из раздела «Игрострой». Почти все игровые файлы Warcraft 3 представляют собой MPQ-архивы, в каждом из которых хранится определенный тип данных. К примеру, тексты запакованы в файле war3*.wts, а графика — в файлах с расширением TGA и BLP.
Открываем файл кампании LordoftheClans_english.w3n MPQ-архиватором и перетаскиваем оттуда файл war3campaign.wts, открываем его обычным «Блокнотом». Перед нами список, выглядящий следующим образом:
STRING 1
{
Lord of the Clans
}
STRING 2
{
Normal
}
STRING 4
{
OutsiderXE
}
STRING 9
{
Thrall’s tumultuous tale of his journey, from slave to warchief of the horde.
}
Текст для перевода заключен в фигурные скобки, а STRING x — это просто нумерация строк. Мы переводим предложения внутри скобок и сохраняем изменения. В LordoftheClans_english.w3n собрана общая информация о кампании, появляющаяся в самом начале игры: название карты, ее краткое описание, автор, а также брифинги.
В обход защиты
Частичная расшифровка позволяет добраться до ресурсов карты с помощью MPQ-архиватора.
В последнее время появляется все больше защищенных карт для Warcraft 3. Чтобы локализовать их, приходится прибегать к ряду хитростей. Хитрость номер раз — связаться с разработчиком и попросить у него исходники. Увы, этот фокус срабатывает не всегда. Иногда найти автора мода в интернете крайне сложно. Но даже если он находится, то может не дать согласия на перевод: одно дело, когда разрешение запрашивает крупное игровое издание, и совсем другое, когда локализацией занимается простой игрок. Автор мода, может, и рад был бы вам помочь, но боится, что вы украдете программный код мода.
Но и в этом случае есть выход. При защите карт обычно удаляется графическое представление триггеров, а внутренние файлы карты шифруются. Кроме того, программы типа True’s Optimization Tools, ускоряющие загрузку карты путем переноса текстового контента из WTS-файлов в W3*-файлы, делают основную массу текста недоступной для изменения без применения трюков с HEX-редактором. Однако если карта не была оптимизирована таким способом, имеет смысл произвести расшифровку названий файлов с помощью утилиты XGM MPQ Recover, созданной отечественными программистами с сайта http://xgm.ru.
Для «лечения» защищенной карты достаточно загрузить ее и кликнуть кнопку Scan. Если в процессе сканирования были расшифрованы некоторые файлы, жмем кнопку Save MPQ для обновления оглавления архива. Теперь с помощью MPQ-архиватора можно извлечь распознанные файлы и локализовать их.
Есть и еще одна проблема — некоторые очень большие карты в игровом редакторе могут не загружаться. Причина в том, что многие моды разрабатываются в расширенных версиях редактора, например в World Editor Unlimited 1.20, который снимает с карты ограничения на количество строк текста, число триггеров и юнитов. Решение проблемы очевидно — экспорт/импорт текста необходимо осуществлять посредством WEU.
Шаг второй: вылавливание ошибок
Когда все переведено, делаем резервную копию файла кампании, после чего снова открываем ее архиватором и удаляем war3campaign.wts, а потом помещаем в архив переведенный файл. Запускаем игровой редактор и вызываем окно кампаний (клавиша F7). Если все было сделано правильно, то локализация откроется. Если же выскочило сообщение об ошибке, то с вероятностью в 90% вы сделали следующее:
— Изменили номера строк в идентификаторах STRING x. Лечится это сопоставлением и исправлением идентификаторов строк оригинального файла и отредактированного.
— Пересохранили war3campaign.wts в кодировке ANSII, чего делать нельзя, так как файл должен быть только в юникод-формате UTF-8. Файл всегда можно пересохранить в «Блокноте», отметив соответствующую опцию в поле Сохранить как.
— Не удалили имеющийся в архиве файл перед добавлением переведенного. В идеале замена должна проходить безболезненно, но в реальности это вызывает массу проблем, связанных с особенностями формата MPQ.
Шаг третий: локализация основного текста
В окне редактора кампаний справа мы должны сразу увидеть русифицированный текст. Список слева содержит карты кампании. Наша задача — перевести их начинку на русский язык, но для этого требуется все карты экспортировать в отдельные W3X-файлы: правой кнопкой мыши кликаем по пунктам списка (расположенными рядом со значком «плюс-минус») и в контекстном меню выбираем опцию Экспорт карты. Когда все карты экспортированы, можно приступать к их вскрытию.
Открываем, к примеру, первую карту кампании (01.Intro.w3x) с помощью игрового редактора World Editor, командой Файл/Экспорт текста сохраняем документ для перевода в отдельный WTS-файл, после чего переводим весь англоязычный текст. Теперь закрываем редактор и загружаем карту в MPQ-архиватор. Стоит заметить, что архиватор изначально не понимает файлов типа w3x, поэтому нужно выбрать маску All Files (*.*). Необходимо выяснить, имеются ли в недрах карты графика с надписями. Тут нам на помощь приходит утилита WC3 Image Extractor 2, изначально предназначенная для исследования начинки оригинальной игры, но также отлично справляющаяся с конвертацией формата TGA (который открывается любыми графическими редакторами) и BLP (собственный формат Blizzard).
Шаг четвертый: адаптация текстур
Если нам в архиве встречается картинка в формате TGA, мы ее открываем любым доступным просмотрщиком, а для просмотра BLP используем Image Extractor. Если попадается надпись на картинке, какая-нибудь LoadingScreenTR.tga в файле 01.Intro.w3x, мы ее редактируем и вставляем обратно, пользуясь уже известным алгоритмом: сначала удаляем старый файл и только потом кидаем в архив новый вариант. Однако в файле 10.LordoftheClans.w3x графика находится в Credits-Loading-TopRight.blp, поэтому прежде, чем отредактировать ее в Image Extractor командой Open/Image, загружаем файл Credits-Loading-TopRight.blp и кликаем Save/Image для сохранения его в формате TGA. Изменив картинку, выполняем обратное преобразование — запаковываем в архив.
Когда графика всех карт заменена, самое время внедрить в кампанию русский текст. Для этого открываем каждую карту и командой Файл/Импортировать текст проводим замену англоязычного текста на переведенный, после этого обязательно сохраняем карту (Файл/Сохранить).
Порядок перевода — сначала графика, а затем текст — выбран нами неспроста. Дело в том, что сохранение карты в среде игрового редактора должно быть завершающим этапом, иначе выскочит множество ошибок. В частности, если сначала добавить текст, затем графику, а потом сохранить изменения, то некоторые карты кампании в игре просто не загрузятся.
1. — Командой «Экспорт» оригинальные тексты выдираются из карты в отдельный файл.
2. — Полученный файл в кодировке UTF-8 редактируется: весь текст переводится на русский язык строка за строкой.
3. — Командой «Импорт» локализованные ресурсы возвращаются обратно в игру.
4. — Перевод корректируется непосредственно в редакторе. Например, на вкладке «Войска» можно проверить, правильно ли переведены текстовые данные, описывающие боевые юниты.
5. — Выбор юнита. В данном случае выбран лейтенант легиона.
6. — В редакторе карты можно посмотреть, как выглядит герой. Это помогает делать перевод в соответствии с обликом персонажа.
7. — Проверять точность текста лучше сразу в нескольких окнах.
8. — Описания юнита можно посмотреть на плашке свойств.
Шаг пятый: замена файлов
Когда все сделано, заменяем исходные W3X-файлы в редакторе кампаний. Для этого выбираем пункт Заменить карту в том же контекстном меню, что мы вызывали для экспорта карт, и выбираем локализованную W3X-карту. После замены всех карт кликаем Файл/Сохранить кампанию. Локализация кампании завершена, можно опробовать ее в деле: копируем русифицированный W3N-файл в <Корневая папка Warcraft III Frozen Throne>\Campaigns и запускаем игру. В списке Один игрок/Доп. кампании находим наш перевод и кликаем по названию. По мере обнаружения ошибок перевода вносим исправления.
* * *
Вот, в общем-то, и все премудрости. Теперь помножьте все описанные технические моменты на сложности и каверзы, описанные в предыдущей статье, и можете приступать к работе. Кстати, чтобы облегчить вам жизнь, на нашем диске вас ждет довольно большой видеоурок, наглядно иллюстрирующий каждый шаг локализации кампаний для Warcraft 3.