IGROMANIA.RU
Registration
MoreLess
Популярные за неделю
Популярные за месяц
«Труп выглядит здоровее». Четвертый сезон «Шерлока» Кино > «Труп выглядит здоровее». Четвертый сезон «Шерлока»
Сценаристы «Шерлока» обещали, что четвертый сезон станет пугающим и шокирующим. Разбираемся, все ли у них получилось.
Комментариев: 31
Выбор имеет значение. Превью Vampyr В разработке > Выбор имеет значение. Превью Vampyr
Смогут ли авторы Remember Me и Life is Strange создать полноценную ролевку с открытым миром? Делайте ваши ставки, господа!
Комментариев: 19
«Press X to Win», или История Quick Time Event Спец > «Press X to Win», или История Quick Time Event
История возникновения и развития ваших нелюбимых всплывающих кнопочек.
Комментариев: 16
Семь кругов Камуро-тё. Обзор Yakuza 0 Рецензии > Семь кругов Камуро-тё. Обзор Yakuza 0
Для поклонников серии Yakuza 0 станет еще одной отличной игрой, а для новичков — билетом в мир японской мафии.
Комментариев: 11
Battlefield 1. Фронтовые записки Спец > Battlefield 1. Фронтовые записки
Делимся опытом выживания в сетевом режиме главного боевика про первую мировую.
Комментариев: 9
Прямо в лицо! Первые впечатления от Sniper Elite 4 В разработке > Прямо в лицо! Первые впечатления от Sniper Elite 4
Карл Фэйрберн вспомнил, что он снайпер.
Комментариев: 7
Информация по игре
Neverwinter Nights 2
Название: Neverwinter Nights 2   PC
Серия: Neverwinter Nights
Мультиплеер: Интернет, локальная сеть
Разработчик: Obsidian Entertainment
Издатель: Atari
Издатель в России: Акелла
Локализатор: Акелла
Дата выхода: 31 октябрь 2006
Сайты игры:
http://www.nwn2.com
Рейтинги игры
8.5
Рейтинг
журнала
0
Рейтинг
сайта
Рейтинг
игроков
Rating
0,00,51,01,52,02,53,03,54,04,55,05,56,06,57,07,58,08,59,09,5
МОЙ рейтинг
Еще материалы по
Neverwinter Nights 2
Всего: 24
Статьи о Neverwinter Nights 2
Обращаемся к истории одного из известнейших городов Забытых королевств и его роли в видеоиграх.More
Neverwinter Nights 2 * Ico * Tomb Raider * Bible AdventuresMore
Здесь вроде бы очень много рутины, но при этом четко прослеживается логика построения файлов, хотя работает она почему-то далеко не в каждом дополнении. А уж на какие ухищрения приходится идти при пер...More
Crysis Mod SDK 1.0Wave To Lip (для ArmA: Armed Assault)BlurBeta Plugin-Pack for 3ds Max 9 & VIZ 2008 32 & 64 bit versions — Build 5 (гигантская коллекция плагинов и утилит)Genetica ...More
Irrlicht (бесплатный игровой движок на все случаи жизни)GTA: SA Race Mission Creator (SARMC)Oxygen 2 Personal Edition (для Operation Flashpoint и ArmA: Armed Assault)ZModeler2 SDK 1.0BinPBO Personal E...More
Всего: 4
Новости о Neverwinter Nights 2
В печать отправились: Игра "Мата Хари: Шпионка-соблазнительница", рассказывающая о приключениях самой известной женщины-шпиона. Проект издает "Акелла". Сборник Neverwinter Ni...More
Представители "Акеллы" сообщили, что на тиражирование отправилось дополнение к популярной ролевой игре Neverwinter Nights 2. Аддон выйдет в России под названием "Neverwinter Nights 2: М...More

Если проводить аналогии между процессом локализации компьютерных игр и видами спорта, то получится очень интересная картина. Перевод Warcraft 3 (мы писали об этом в «Игромании» №6’2008) — это чистейшей воды шахматы: все здесь предельно логично, заранее известно, в каких утилитах какие ресурсы обрабатывать, но, как и в шахматах, партия может длиться очень долго. Большая часть работы — чистой воды рутина: открыл файл, вырезал скрипты, перевел текст, скорректировал код, окружил переведенный текст специальными операндами, запаковал обратно в игру... И так несколько тысяч раз.

Перевод Half-Life 2 («Игромания» №8’2008) больше напоминает мототриал. Каждый мод абсолютно уникален, и, чтобы локализация прошла успешно, нужно постоянно быть в напряжении — следить, какие файлы обновил Steam, какие вообще были удалены, отмечать все отсылки в скриптах, которые сделал разработчик мода, обходить систему защиты.

Локализация TES 4: Oblivion («Игромания» №9’2008) — это уже натуральный теннис. Здесь все довольно однообразно, почти как в Warcraft 3, но есть возможность для маневра. Например, никто не мешает выполнить крученую подачу и автоматизировать перевод в специально созданной для этого программе, а падежи некоторых слов проставлять не вручную, а при помощи конвертера.

А вот на что похож перевод Neverwinter Nights 2, совершенно непонятно. Здесь вроде бы очень много рутины, но при этом четко прослеживается логика построения файлов, хотя работает она почему-то далеко не в каждом дополнении. А уж на какие ухищрения приходится идти при переводе кампаний (это несколько модулей, слитых вместе)… Так что если и тут проводить спортивные аналогии, то NWN 2 похожа на скоростной спуск с горы на велосипеде с одновременным жонглированием 10 мячиками и попыткой сыграть в преферанс с таким же летящим по круче напарником. Впрочем, и к такому монстру можно найти свой подход и даже приручить его.

Шаг 1: разбираем мод на составляющие

Все файлы, составляющие любой мод для NWN 2, рассортированы по директориям следующим образом:

1. \Campaigns\<Название кампании> — если мод представляет собой обычную карту, то эта папка остается пустой. Если же мы имеем дело с кампанией, сюда записываются несколько файлов-меток;

2. \Modules\*.mod — игровые модули (MOD-файлы) дополнения — ERF-архивы, содержащие в себе все скрипты, диалоги и карты (ну или одну карту);

3. \Hak и \Override — дополнительные файлы кампании: новые модели, текстуры, прототипы объектов (blueprints), звуки и тому подобные элементы;

4. \Music\*.bmu — музыкальные файлы;

5. \Tlk\*.tlk — таблицы текстовых ресурсов.

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

Модуль — сердце любого дополнения для NWN 2, а все элементы, загружаемые из папок Hak, Override и Music, — своего рода бижутерия: если постараться, то любой мод можно загрузить и без них.

Рис. 1. Журнал квестов и диалоги составляют большую часть всех текстовых ресурсов модификации.

Шаг 2: изучаем анатомию

Прежде чем приступить к локализации, нам нужно понять, как устроен любой модуль NWN 2, и в этом нам поможет штатный игровой редактор NWN 2 Toolset, про который мы уже не раз писали на страницах «Игромании». Для начала давайте разберемся, какие ресурсы входят в состав любого дополнения и какие из них придется переводить:

1. Журнал квестов (View/Journal/Module) — это список всех квестов (и их стадий) дополнения. Нас в первую очередь интересуют поля, содержащие англоязычный текст, — это сообщения, появляющиеся в журнале квестов по мере того, как персонаж продвигается по сюжету. Здесь придется переводить абсолютно все и внимательно следить, чтобы не закралась ошибка, иначе игрок может вообще не понять, что делать дальше.

2. Диалоги героев (вкладка Conversations) — все диалоги имеют древовидную структуру, каждый элемент описывает ровно одно высказывание персонажа. Задания и диалоги вместе составляют порядка 80-90% локализуемого контента, и именно на их перевод уходит больше всего времени. Но остаются еще 10-20%, разбросанные по всему моду, на их перевод также придется потратить несколько часов.

3. Прототипы объектов (они же blueprints, или «проекты») — шаблоны, на базе которых создаются объекты в игре. Рассмотрим простейший пример: у нас есть шаблон гоблина по имени Кобби, к нему прилагается описание «Низкорослый зеленый гоблин без плаща». На базе этого прототипа мы делаем гоблина по имени Богги, но уже с плащом зеленого цвета. От Кобби его отличают всего три свойства: имя, описание и наличие накидки. Аналогичным образом из исходного шаблона несложно сделать какого-нибудь гоблина Рогги, у которого нет плаща, зато есть кастрюля на голове и капкан на носу. По этой схеме на основе единственного прототипа можно создавать десятки или даже сотни различных персонажей.

1. У прототипа (персонажа) выбираем параметр Localized Description — это описание героя.

2. Заменяем значение параметра Localized Description русскоязычным эквивалентом.

3. На вкладке Изменения ниже отмечаются внесенные изменения.

4. На вкладке Модули выбираем MOD-файл, у объектов которого мы собираемся заменить свойство Localized Description (так же, как у прототипа).

5. На вкладке Экземпляры для изменения ищем объекты для замены. Они выводятся в виде списка.

6. Чтобы искать только по объектам-клонам, отмечаем опцию Найти выбранный проект.

7. После нажатия кнопки Найти экземпляры для изменения в списке появляются найденные объекты.

8. Кликнув по кнопке Применить изменения, вносим коррективы в поле Localized Description у всех найденных объектов.

Шаг 3: переводим тексты

Чтобы перевести названия и описания объектов, сделанных на основе прототипа, выбираем в меню Plugins пункт Универсальный редактор проектов. Редактор состоит из двух частей: справа — прототипы, слева — их свойства. Посмотрите на схему, она наглядно демонстрирует, как перевести описание любого прототипа и всех созданных на его основе персонажей. В данном случае мы перевели лишь описание (поле Localized Description) прототипа героя Max (этапы 1 и  2). О том, что текст был изменен, легко узнать из строки Изменения под свойствами персонажа (этап 3).

Чтобы аналогичным образом изменить всех персонажей (или все предметы), которые сделаны на основе данного прототипа, первым делом нужно их всех найти. Если мы имеем дело с кампанией, модов может быть несколько, так что в следующем окне (Модули) надо отметить мышкой все MOD-файлы дополнения. В нашем случае файл всего один (этап 4). Затем (этап 5) на вкладке Экземпляры для изменения мы указываем метод поиска (опция Найти выбранный проект) и кликаем по пункту Найти экземпляры для изменения, в результате получаем список объектов-клонов. Теперь, если нажать кнопку Применить изменения, все дочерние объекты будут изменены так же, как их прародитель.

Указанный метод дает отличные результаты, когда в модификации десятки или даже сотни объектов с одинаковыми свойствами, например монстры или оружие. Чтобы не возиться с каждым объектом по отдельности, можно буквально за пару минут изменить прототип и сэкономить тем самым уйму времени. Но что делать, если объекты различаются? В этом случае придется вручную перебирать все элементы модуля. Загружаем любую карту (вкладка Areas слева) и смотрим в нижний левый угол экрана, где расположено окошко Area Contents (содержимое карты). Кнопки в верхней части (Items, Creatures, Doors, Stores и пр.) отвечают за отображение различных типов объектов в списке внизу.

Чтобы просмотреть, например, список всех живых существ, кликаем по Creatures. В списке появятся все персонажи, в том числе и Max, чей прототип мы с вами недавно редактировали. Выбираем его — в окне свойств объектов справа появляется список характеристик, в том числе имя героя и его описание в свитке Basics. Все эти параметры можно спокойно заменить, а тексты перевести на русский язык. Аналогично переводятся названия и описания всех остальных объектов игры, главное — помните, что помимо объектов игрового мира нужно локализовать еще и текст у зон перехода между локациями, а то начинающие мододелы постоянно про них забывают.

Кликнув по карте в списке Areas, можно перевести на русский язык название уровня (свойство Display Name). Когда работа с картой завершена, закрываем ее, сохраняя изменения, и загружаем следующую.

Чем больше реплик у NPC, тем сложнее выловить их все и адекватно перевести. Особенно если текстовка раскидана по разным файлам.

Шаг 4: работаем со скриптами

К сожалению, в отличие от перевода диалогов и брифингов, четкого алгоритма обработки скриптов (вкладка Scripts) не существует. Но встроенный язык NWN 2 похож на С++, поэтому разобраться, как и что там устроено, довольно просто. Для вывода текстовых сообщений существует несколько стандартных функций, вызовы которых можно отследить при анализе кода. Рассмотрим простейший пример:

...

if (oPC == oRHH)

{

AssignCommand(oRHH, ActionSpeakString(«Oh no — Grandmother!»));

DestroyObject(OBJECT_SELF);

}

...

Что делает скрипт, нам в данном случае совершенно неважно. Самое главное — текстовая строка «Oh no — Grandmother!», она выводится на экран функцией ActionSpeakString. Помимо этой операнды существуют и другие, которые тоже отображают текстовые данные. Чаще всего используются FloatingTextStringOnCreature (всплывающее сообщение над героем), SendMessageToPC (информационное сообщение игроку) и SpeakString (реплика героя). Список более редких функций вы можете посмотреть на нашем DVD в разделе «Игрострой».

Любой английский текст в скриптах можно спокойно менять на русский, игра его прекрасно поймет. Только не используйте букву «ё», иначе вместо русских букв на экране появится абракадабра, а некоторые скрипты вообще перестанут работать. В нашем случае достаточно заменить всего одну строку кода:

AssignCommand(oRHH, ActionSpeakString(«О нет — бабушка!»));

Теперь, нажав кнопку Save & Compile, выясняем, все ли правильно мы отредактировали. Если в окошке статуса внизу появится сообщение Compilation Successful, значит, никаких проблем нет; в противном случае нужно еще раз внимательно проверить код.

Если на основе прототипа какого-нибудь персонажа создан лишь один NPC, то достаточно заменить один небольшой текст. Сделать это можно прямо в редакторе игры.

Шаг 5: локализуем сложные моды

Все основные этапы локализации небольших модов с небольшим количеством текста (не более 100 тыс. знаков) мы разобрали. Но что делать, если модуль огромный, на 300-400 тыс. или даже 1 млн знаков? Вручную править сотни объектов, листать тысячи строк скриптового кода в поисках искомых команд никакого времени не хватит.

C этой проблемой мы столкнулись, еще когда только начинали переводить дополнения для TES 4. Штатный редактор просто не предназначен для обработки огромных массивов текстовой информации, поэтому нам пришлось искать альтернативные пути. Удобнее всего экспортировать все тексты большого мода и переводить их в специально предназначенных для этого утилитах.

«Вывести» текст из игры можно при помощи TLK-файлов. Суть их предельно проста: все текстовые ресурсы мода заменяются номерами строк в TLK-таблице. Например, официальная кампания игры изначально была создана с учетом многоязычности, а потому все ее тексты лежат в отдельном файле dialog.tlk. Для замены любой строки в окне редактирования текста необходимо нажать Edit String Ref и в открывшемся диалоге в поле String Ref напечатать <номер строки во внешнем файле> + 16777216. Смещение номера указывает движку на то, что строка располагается не в ресурсах самой игры, а в TLK-файле. Вроде бы все логично, но непонятно, как быть со скриптами. Оказывается, разработчики позаботились и об этом. В движок зашита функция GetStringByStrRef, извлекающая текст из TLK-файла. Выглядеть это может, например, вот так:

AssignCommand(oRHH, ActionSpeakString(GetStringByStrRef(16879361)));

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

<№ строки> <пробел> := <пробел> <Строка сообщения> <CRLF>

Непечатный знак <CRLF> эквивалентен паре \r\n в программировании и означает одновременный возврат каретки и переход на новую строку (Caret Return и Line Feed). Это стандартный знак перевода указателя по нажатию клавиши Enter в большинстве программ вроде «Блокнота». Некоторые редакторы (типа UltraEdit) позволяют писать только <LF>, который указывает на перенос текста в игре на новую строку. Просматривать спецсимволы, создавать и править заготовки TLK-файлов можно в Notepad++.

После экспорта всех текстов в отдельный документ запускаем NWN2TLKEdit командой File/Initialize New TLK, создаем пустой файл, затем импортируем в него документ командой Tool/Import Batch Text (с опцией All Items). Теперь остается лишь сохранить TLK-файл в игровую подпапку \tlk и подключить его к модулю. В игровом редакторе NWN 2 командой View/Module Properties находим свойство модуля Custom TLK File, прописываем туда путь \tlk\<имя нашего файла>.tlk и жмем Enter. На всякий случай нужно сделать проверку: открываем любую строку мода в штатном редакторе и в окне правки видим не только основной текст, но и дополнительное поле String Ref. Это значит, что во время игры ресурсы будут подгружаться не из самого модуля, а из TLK-файла.

Использование «внешних» текстов позволяет решить и еще одну извечную проблему модостроителей — вывод на экран разных текстов в зависимости от пола персонажа. Достаточно просто сделать вспомогательный файл \tlk\<имя нашего файла>F.tlk с переделанными репликами. Напомним, что изначально игра считает, что вы играете персонажем мужского пола.

TLK-файлы — вещь необычайно удобная, но есть одна неприятность: извлекать все тексты из мода вручную очень долго. Чтобы ускорить процесс, мы создали набор утилит, автоматизирующих эту работу. Как и в случае с Half-Life 2, взаимодействие с программой NWN2_MOD_LOC осуществляется посредством перетаскивания на ее главный файл папки с дополнением (главное, чтобы структура каталогов была верной). В зависимости от размера мода время обработки может занять 5-30 минут, по истечении которых в папке дополнения будет лежать файл CUSTOM_TLK.txt, содержащий в себе заготовку англоязычного TLK-файла. Помимо выигрыша во времени, такой метод позволяет избежать повторяющихся строчек (например, у нескольких монстров одинаковое название).

Кстати, мы все сделали таким образом, чтобы в TLK-файле, помимо собственно текста, содержалась еще и информация, откуда какие предложения были взяты. Это позволяет в дальнейшем избежать ошибок с переводом (например, не спутать реплики из разных диалогов). Локализовывать полученный текст удобнее всего в Excel, куда английские тексты легко подгружаются программой TXT2XLS.

Когда перевод будет закончен, XLS2TXT сгенерирует пару русскоязычных TLK-файлов (для персонажей разных полов). Остается только запустить NWN2TLKEdit и поочередно импортировать сначала английский вариант текста (к примеру, служебные комментарии в скриптах), потом тексты для мужского пола — результат сохраняем как \tlk\<имя нашего файла>.tlk. Теперь сюда же добавляем строки из ресурсов для персонажей женского пола и сохраняем файл как \tlk\<имя нашего файла>F.tlk. Подключаем полученные файлы к модулю, перекомпилируем все скрипты (команда File/Compile/All Scripts in Module) — все, можно тестировать перевод в игре.

NNNN
NNNN
Всего скриншотов: 9Show all screenshots
Новую работу SIE Japan Studio можно сравнить с творчеством Team ICO. Новая игра тоже «не для всех».
Чем опечалил нас и всю игровую индустрию в целом миновавший год? Вспоминаем!
Чествуем победителей во всех основных номинациях. Какие игры, по мнению «Игромании», нельзя было обойти вниманием в 2016 году?
Мы сыграли в несколько игр на новой консоли Nintendo и спешим поделиться впечатлениями!
Комментарии к статьям
Войти и прокомментировать                Войти под логином игромании | Зарегистрироваться
Главные новости
Самые комментируемые статьи за месяц:
Кино > «Викинг». The Return of the (Vi)king
Кино > Ассасины и тамплиеры на большом экране. Фильм «Кредо убийцы»
Спец > Лучший мой подарочек — это Xbox One S!
Спец > Достать геймпад и плакать: игры, берущие за душу: от Ori and the Blind Forest и This War Of Mine до BioShock Infinite и Life is Strange
Спец > Презентация Nintendo Switch. Самое главное об играх для новой консоли
Кино > «Труп выглядит здоровее». Четвертый сезон «Шерлока»
Железный цех > В ожидании ZEN. Тестируем игровой компьютер Edelweiss MSI Edition на базе AMD 970
В разработке > Выбор имеет значение. Превью Vampyr
Спец > На скорости 160 км/ч, или Как работают гоночные игры
Спец > «Press X to Win», или История Quick Time Event
Поиск по сайту Игровые платформы: PC  |   X360  |   XONE  |   PS3  |   PS4  |   Wii  |   Wii U  |   PSP  |   Vita  |   NDS  |   3DS  |   Android  |   iOS
1997-2017 ООО «Игромедиа». Мнение авторов и посетителей сайта может не совпадать с мнением редакции. Полное или частичное воспроизведение материалов сайта и журнала допускается только с согласия редакции. Для прямого контакта с редакцией пишите на основную почту «Игромании.ру».
Пользовательское соглашение

КОММЕРЧЕСКИЕ ССЫЛКИ:
Механизм выбора платформы позволяет отображать на страницах информационного портала материалы, относящиеся строго к выбранным платформам.

Каждый пользователь индивидуально выбирает для себя интересующие его игровые платформы.
 
Rambler's Top100 Яндекс цитирования