5 кроків до локалізації. Русифікація модов для The Elder Scrolls 4: Oblivion

  1. Крок 1: вивчаємо «модну» фізіологію
  2. Крок 2: переводимо текст
  3. Крок 3: вирішуємо проблеми з ідентифікаторами
  4. Крок 4: автоматизуємо процес
  5. Крок 5: перегортаємо книги і переписуємо скрипти
  6. * * *

З усіх модов, які переводить наша игроманские геймдев-студія Format C:, найскладніше піддаються локалізації доповнення для Half-Life 2. Там і формати файлів періодично трапляються такі, що без спеціалізованого конвертера до них не підступишся, і синхронізацію зі Steam потрібно проводити, та ще й субтитри заховані так глибоко в архівах, що на їх відкопування іноді йде кілька днів. Так що якщо ви освоїли локалізацію модів до Half-Life 2 (стаття була опублікована в минулому номері «Игромании»), то з The Elder Scrolls 4: Oblivion розібратися буде досить просто. Втім, і тут є свої особливості, які потрібно враховувати і які іноді перетворюють просту, здавалося б, роботу в справжній кошмар.

Як завжди, всі згадані в статті додатки (деякі з них розроблені нашою студією) чекають вас на нашому диску в розділі «ігрострой».

Крок 1: вивчаємо «модну» фізіологію

Перш ніж переходити до деталей і частковостей локалізації, давайте визначимося, що ж таке мод стосовно Oblivion. У найпростішому випадку це esp-файл (E lder S crolls P lugin), який розташовується в каталозі Коренева папка Oblivion \ Data, з гри він завантажується через меню Файли даних програми OblivionLauncher.exe. Анатомія такого мода зазвичай дуже проста: якщо в грі є деяка величина v = «ABC», значить, мод містить дані типу v = «XYZ», тобто тільки нові значення наявних об'єктів і / або нові об'єкти.

Більш складний варіант - коли в моді є власний контент (текстури, моделі, звуки, анімація), який в каталозі Коренева папка Oblivion> \ Data додатково фасується по підпапках Textures, Meshes, Sound, Music або взагалі ховається всередину одного або декількох bsa-архівів : Назва мода.bsa або Назва мода / Textures.bsa, Назва мода / Meshes.bsa, Назва мода / Sound.bsa.

Існує і ще одна категорія модов, найскладніших. Крім додаткового контенту, в них є власний esm-файл (E lder S crolls M aster-file), в нього поміщаються дані, які згодом не будуть змінюватися патчами, як правило, це нові класи, раси, прототипи ігрових об'єктів. Зроблено це для того, щоб оновлення не були надто вже об'ємними. Уявіть, що сам мод важить 500 Гб, з них 400 Гб займає інформація про раси і моделі персонажів. Без esm-файлу автору б довелося в кожен патч включати ці 400 незмінних гігабайт інформації.

Розкладати по поличках структуру кожного мода було б досить складно, якби не один втішний факт. До якого б типу не ставилося доповнення, велика частина текстів (тобто те, що потрібно локалізувати) завжди знаходиться в файлах типу esp. Щоб випатрати такий архів, завантажуємо редактор TES Construction Set, в меню File / Data ... відзначаємо галочкою необхідний esp-модуль і натискаємо на кнопку Set As Active, потім OK і чекаємо, поки мод завантажиться.

Крок 2: переводимо текст

Переклад будь-якого доповнення - справа творча, але в цьому випадку можна використовувати налагоджені, перевірені часом схеми і утиліти. На жаль, для локалізації модов Oblivion до недавнього часу ніяких спеціалізованих утиліт не існувало, а штатний редактор TES Construction Set при всій широті можливостей для перекладу абсолютно непридатний - в ньому просто немає інструментів для відділення текстових ресурсів мода від начинки оригінальної гри.

На жаль, для локалізації модов Oblivion до недавнього часу ніяких спеціалізованих утиліт не існувало, а штатний редактор TES Construction Set при всій широті можливостей для перекладу абсолютно непридатний - в ньому просто немає інструментів для відділення текстових ресурсів мода від начинки оригінальної гри

Використання зведеної таблиці Excel з витягнутими текстовими ресурсами - найзручніший спосіб русифікації.

При цьому в редакторі змінені і додані модом ресурси позначаються символом * в поле EditorID, щоб їх перевести на російську, доводиться бездумно прокручувати нескінченні списки різних об'єктів (квести, діалоги, локації), вишукувати поглядом «зірочки» і міняти англомовні фрази на російські. У великих модах кількість об'єктів може доходити до десятків і навіть сотень тисяч, так що на локалізацію може піти кілька місяців.

На щастя, в редакторі є ще одна дуже корисна функція - експорт всіх ресурсів в окремі файли за категоріями. Всього таких категорій вісім:

1. Описи класів, рас, здібностей, локацій. Витягуються в редакторі командою File / Export / Descriptions.

2. Назви фракцій і рангів - File / Export / Faction Rank Names.

3. Назви всіх ігрових об'єктів (герої, локації, предмети, заклинання) - File / Export / Names.

4. Всі ігрові діалоги - File / Export / Dialogue.

5. Квести - File / Export / Faction Rank Names.

6. Обмін повідомленнями з ігрових скриптів - File / Export / Script Messageboxes.

7. Книги, сувої, листи - File / Export / Books.

8. Текстура в форматі DDS з написами і покажчиками. Засобами редактора їх витягти не можна, для перегляду і редагування доведеться використовувати сторонні програми.

На перший погляд, все чудово: можна витягти всі ресурси мода, перевести в них все англомовні фрази і імпортувати тексти в гру через меню File / Import. Але є одна серйозна проблема. Справа в тому, що всі тексти витягуються упереміш з ресурсами самої гри, проте, на відміну від списків об'єктів в редакторі, в отриманих файлах рядки мода Ніяк не позначаються. Страшно згадати, скільки проблем у нас було через цю особливість TES Construction Set. Але в підсумку проблему ми вирішили.

Крок 3: вирішуємо проблеми з ідентифікаторами

Утиліта TES4 Gecko виводить інформацію про начинку модов в вигляді структурованого списку.

Щоб розібратися, як відокремити текстові ресурси мода від начинки гри, давайте спочатку розглянемо, як влаштовані експортовані текстові файли. Вони складаються з рядків такого вигляду:

FormID <HexID>: <Tab> <EditorID> <Tab> <параметри> ... <текст>

За кожним ресурсом закріплений шістнадцятковий ідентифікатор HexID, їх в грі може бути до чотирьох мільярдів. Крім того, у переважної більшості витягнутих ресурсів є ідентифікатор EditorID, по ньому легко вишукувати тексти мода в надрах експортованих файлів. Потім, розділені знаком табуляції, слідують уточнюючі параметри. І в самому кінці розташовується сам текст. Всі описані поля утворюють деревоподібну структуру: кілька рядків з різними EditorID можуть мати однаковий HexID, але не навпаки - наприклад, у діалогу є варіанти відповіді співрозмовника, які залежать від ряду умов, а кожен відповідь може складатися з декількох реплік.

Поля розділяються знаком табуляції, тому при перекладі файлів з ресурсами слід користуватися текстовим редактором з підтримкою недрукованих знаків, наприклад Notepad ++, але найкраще для наших цілей підходить Excel. Він автоматично розбиває текст на рядки і стовпці по знаку табуляції, запобігаючи випадкове порушення структури файлу. Після внесення змін досить зберегти результат у форматі Текстові файли (значення, розділені табуляції).

Дещо відрізняється результат експорту книг. Замість генерації одного файлу створюється папка Коренева папка Oblivion \ BookExport, в ній можна знайти все книги гри і мода в окремих файлах, імена яких збігаються з EditorID цих книг в редакторі.

Хоча в Construction Set і є функція File / Data / Details для перегляду списку ресурсів, вона вкрай незручна. Список можна впорядкувати за ідентифікаторами ресурсів, але користуватися ним все одно складно, оскільки категорії ресурсів не виділяються. Тут нам допоможе утиліта TES4 Gecko - вона дозволяє (команда Display / Copy) переглядати список ресурсів мода у вигляді структурованого дерева. Завдяки угрупованню за категоріями, можна швидко зорієнтуватися, рядки з якими EditorID відносяться до моду, а які - до оригінальної гри. У редакторі зайві рядки (оригінальної гри) видаляються, після чого можна приступати безпосередньо до перекладу. Точно так само можна дізнатися, які книги є в моді, і в папці Коренева папка Oblivion \ BookExport залишити тільки відповідні їм текстові файли.

Крок 4: автоматизуємо процес

1. З ресурсів мода витягується ілюстрація - зображення у форматі DDS.

2. Картинка перемальовується в Photoshop.

3. Готова русифікована ілюстрація втягнений в мод.

4. В ігровому редакторі відкривається запис, що містить текст книги.

5. Текст перекладається на російську з урахуванням наявних в книзі html-тегів.

6. Вміст книги втягнений всередину мода.

Описані вище утиліти можуть скоротити час локалізації в кілька десятків разів, але ви, напевно, помітили, що є ще одна проблема - засобами редактора ніяк не можна порівняти експортовані оригінальні і модифіковані файли гри і зберегти тільки що розрізняються ділянки (щоб не перекладати текст, який і так вже переведений). Спеціально для цього ми написали дві утиліти, об'єднані загальною назвою Oblivion Text Extractor.

Перша програма - OBL_TEXT_EXT_ST1 - повністю автоматизує витяг текстових ресурсів мода (знаходить різницю між двома наборами файлів). Працює вона наступним чином. У каталозі з утилітою створюємо дві папки, Orig і Mod, і складаємо туди відповідно оригінальні і змінені модом файли ресурсів. Оригінальні файли легко витягти, завантаживши в редактор лише esm-файли, які потрібні моду (список майстер-файлів виводиться в вікні вибору модов праворуч). Файли кожного набору мають такі імена: опису - desc.txt, фракції - fact.txt, назви - names.txt, діалоги - dialog.txt, квести - quest.txt, скрипти - script.txt.

Запускаємо утиліту, і через пару-трійку хвилин в папці з програмою з'явиться підпапка Export. Якщо на комп'ютері встановлено Microsoft Excel, то там же ми виявимо і файл MOD_TEX_RES.xls, який містить витягнуті ресурси мода, розкладені по листам і повністю підготовлені для перекладу. Нам залишається лише перевести рядки з жовтого стовпчика, вписавши російськомовні варіанти в зелений стовпець. Якщо ресурсна рядок не додана, а тільки модифікована доповненням, тоді в зеленому стовпці ми виявимо вже вписаний переклад з ресурсів самої гри. Як правило, модифікування відбувається не навмисно, наприклад, модмейкер додав на деякій території нову локацію, при цьому редактор зазначив територію як відредаговану і зберіг її назву в esp-файл. Тому в даному випадку потрібно не перекласти назву, а просто «повернути» йому російське написання.

Коли зелений стовпець повністю заповнений перекладами рядків, зберігаємо файл і закриваємо Excel. Тепер запускаємо другу утиліту (OBL_TEXT_EXT_ST1), яка на основі xls-файлу згенерує підпапку Import і помістить в неї файли з суфіксом _import. Ці файли тепер можна імпортувати назад в гру. Якщо Excel у вас не встановлений, то ніякого xls-файлу не з'явиться і доведеться переводити витягнуті ресурси в простому текстовому редакторі. По завершенні перекладу англомовних фраз отримані файли також можна імпортувати в гру.

Крок 5: перегортаємо книги і переписуємо скрипти

Внутрішньоігрові написи і покажчики доводиться переводити на російську окремо, за допомогою Photoshop.

Ми перевели майже всі тексти мода, залишилося локалізувати книги, які лежать в каталозі Коренева папка Oblivion \ BookExport. Ніяких хитрощів тут немає, рівно до тих пір, поки книги мають стандартне оформлення. Якщо ж є різні шрифти, літери, позиціонування тексту або ілюстрації, робота ускладнюється. Справа в тому, що сам Construction Set не обтяжують експортувати спеціальні html-теги форматування книг, тому зберігати тексти в первозданному вигляді доводиться вручну. Для цього у вікні Object Window розгортаємо гілку Items / Book, двічі клацнувши відкриваємо необхідну книгу і копіюємо весь її текст в окремий файл. Тепер, звертаючи особливу увагу на теги, переводимо текстові фрагменти книги. Іноді можна зустріти незрозумілий тег на зразок цього:

<IMG src = "Book / fancy_font / n_63x62.dds" width = 63 height = 62> ew Aften is the castle ...

Лякатися тега IMG не варто, в даному випадку він додає в книгу буквицу N. Ми розробили свій власний набір буквиц, які можна використовувати при русифікації. Розміщуватися літери повинні в папці Data \ Textures \ Menus або її підпапках. Два йдуть числа в назві літери - це розміри по горизонталі і вертикалі, використовуються як параметри тега IMG. Коли книга переведена на російську, копіюємо весь її текст назад у відкрите вікно книги в ігровому редакторі і натискаємо OK (можливо, редактор знайде мовні помилки - натискаємо Cancel в вікні граматики, оскільки російського словника в Construction Set немає). Аналогічні кроки повторюємо з усіма іншими книгами мода, їх, на щастя, рідко буває більше десяти.

Головна робота по локалізації - переклад діалогів, в найбільш великих доповненнях тексту може бути більше 1 млн знаків.

Ми майже закінчили переклад доповнення, залишилося лише перекомпіліровать скрипти - в іншому випадку віконця з повідомленнями будуть з англійським текстом. В ігровому редакторі вибираємо пункт Gameplay / Edit Scripts / Script / Open і в списку, по черзі відкриваємо скрипти мода і зберігаємо їх командою Script / Save. Тільки не використовуйте пункт Recompile All, це в подальшому може призвести до вильотів гри.

Останнє, що нам залишилося зробити, - перемалювати все англомовні написи на структурах в форматі DDS. Для цього існує спеціальний DDS-плагін до Photoshop, він дозволяє редагувати текстури Oblivion. Тут вже ніяких хитрощів немає: завантажуємо текстуру, перемальовували написи, після чого зберігаємо в форматі DXT1-RGB. Якщо у текстури є карта нормалей (файл з суфіксом _n), тоді перед збереженням потрібно перемалювати і карту нормалей. Якщо для вас фраза «карта нормалей» порожній звук і ви не знаєте, як з нею працювати, то просто згенеруйте її в редакторі автоматично командою Filter / nvTools / NormalMapFilter, тільки не забудьте в діалоговому вікні відредагувати величину Scale так, щоб карта в точності відповідала початкового варіанту рівня (чорний колір повинен бути всюди, крім перемалювати області).

Якщо контент мода представлений не набором файлів, а bsa-архівом, тоді перед усіма вищенаведеними маніпуляціями слід спершу розпакувати його за допомогою утиліти BSA Commander в будь-яку папку командою Unpack. Після закінчення робіт усі файли доведеться запакувати назад - відкрийте вихідний архів і командою Info викличте вікно властивостей bsa-файлу. Запам'ятайте дві шістнадцяткові величини, Archive Flags і Files Flags, і пропишіть їх у відповідні поля діалогового вікна створення нового архіву (викликається командою Pack).

* * *

Якщо під час локалізації модов для TES 4: Oblivion ви будете слідувати описаної нами схемою, то навіть на дуже складне і об'ємне додаток у вас піде не більше двох тижнів, причому більшу частину часу ви будете не возитися зі скриптами, а перекладати тексти з англійської на російська, але тут ми вам нічим допомогти не можемо, хіба що порадимо не користуватися «промт».

В одному з найближчих номерів чекайте статтю про те, як переводити доповнення для Neverwinter Nights 2, ось вже де проблем віз і маленький візок - за складністю локалізації модулі для NWN 2 цілком можна порівняти з Half-Life 2.

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

Или позвоните нам по телефонам: (048) 823-25-64

Организация (обязательно) *

Адрес доставки

Объем

Как с вами связаться:

Имя

Телефон (обязательно) *

Мобильный телефон

Ваш E-Mail

Дополнительная информация: