Перейти до вмісту
EN

Текстури з написами

Частина англійського тексту гри — не рядки, а картинки: логотип, стартовий екран, вивіски, панелі приладів. Щоб їх перекласти, треба було знайти всі такі текстури серед тисяч ресурсів, перемалювати написи й доставити їх у гру, не розповсюджуючи цілих ігрових архівів.

Пошук: інвентар і OCR

Розділ «Пошук: інвентар і OCR»

Текстури лежать у DDS усередині GSC-контейнерів сцен і меню, а ті — у чотирьох DAT-архівах (GAME, RAIDERS, TEMPLE, CRUSADE). Інвентаризація пройшла так:

  1. Розпакувати DAT (QuickBMS + ttgames.bms, див. setup.md).
  2. Знайти всі DDS у GSC і окремих файлах: 819 файлів, 12 133 входження, 5 939 унікальних зображень (за SHA-256).
  3. Розпізнати текст на кожному: вбудований OCR Windows (Windows.Media.Ocr, англійська мова) для 5 936 текстур. Для 77 кандидатів — повторний OCR зі збільшенням, для 174 — три повороти зображення (вивіски бувають повернуті).
  4. Переглянути кандидатів очима й скласти список.

Результат — HTML-галерея з пошуком за ID, шляхом і розпізнаним текстом. Вона генерується з файлів гри, тому в git не зберігається; інструмент лежить у tools/textures/ (export_game_textures.py, ocr_texture_catalog.ps1, build_texture_catalog.py). Відео BIK, шрифти й текстові таблиці до інвентарю не входять: це окремі типи ресурсів.

ID Що це Де побачити в грі
T2525 Логотип «Індіана Джонс» Головне меню (7 контейнерів TITLES_*)
T2526 Підзаголовок «Оригінальні пригоди» Головне меню
T2743 Стартовий екран TT Games / LucasArts Перед головним меню
T2748 Те саме, варіант зі значком рейтингу Перед головним меню, залежно від регіону
T1407 Вивіски банку у Венеції «Останній хрестовий похід», розділ 1, фасади й катсцени
T1030 Інший варіант тих самих вивісок Вступ розділу 1 і фінал розділу 3 «Останнього хрестового походу»
T0573 Панель електричного приладу «Останній хрестовий похід», розділ 2 «Порятунок із замку»
T1941 Дошка «ABC» → «АБВ» Редактор власного персонажа, пункт зміни імені
T2522 Ілюстрація коледжу Ілюстрації меню й переходів (PICTURES_3_PC.GSC)

Свідомо не перекладено: значок рейтингу ESRB (знак організації), екрани демоверсії й консольні попередження (не показуються у Steam-версії), декоративний плакат у сцені дирижабля й рукописну нотатку в Шанхаї (однозначного читабельного тексту немає).

Як малювалися написи

Розділ «Як малювалися написи»

Кожну текстуру експортовано в PNG того самого розміру з прозорістю. Автор перемальовував лише написи в Affinity, не зсуваючи інших елементів: сцена бере координати з GSC, тому обрізати чи масштабувати полотно не можна. Український шар зберігається окремо як assets/textures/<id>-ukrainian.png разом із проєктом .af. Оригінальних DDS у репозиторії немає.

Під час збирання DDS:

  • зберігаються розмір, формат (DXT1/DXT5), заголовок і всі mip-рівні;
  • блоки 4×4, яких напис не торкнувся, копіюються з оригіналу без повторного стиснення, тож решта атласу лишається побайтово такою, як була;
  • змінені блоки кодуються власним кодером (ua/formats/bc_color.py), а кожен mip-рівень перевіряється декодуванням.

Як текстури потрапляють у гру

Розділ «Як текстури потрапляють у гру»

До версії 0.1.7 переклад вимагав заміни цілих GSC (пакет важив 182 МБ). Тепер плагін підміняє картинку в момент читання:

  1. Гра читає ресурс із DAT у буфер.
  2. Плагін шукає в буфері сигнатуру DDS .
  3. Порівнює ширину, висоту, FourCC і кількість mip-рівнів.
  4. Рахує SHA-256 пікселів — даних після 128-байтового заголовка DDS.
  5. Якщо хеш збігся з відомим оригіналом, копіює український DDS того самого розміру на його місце. Усі інші байти ресурсу не змінюються.

Хеш не охоплює заголовок, бо рушій змінює в пам’яті прапорці DDS, не чіпаючи картинки: з хешем усього файла незмінені зображення не впізнавалися. Ключ запису в UAP — UKRAINIAN/TEXTURES/<SHA-256 пікселів>.DDS, тож один запис покриває всі копії картинки в різних сценах (9 зображень → 21 контейнер).

Якщо інший мод уже змінив пікселі цієї текстури, хеш не збігається, і плагін її не чіпає. Механізм потребує цілого DDS в одному буфері; на практиці рушій так і читає.

Перевірка Результат
Той самий C++ код підміни на оригінальних GSC 21/21 побайтово дорівнюють перевіреному графічному релізу
Повторна підміна вже перекладеного буфера байти не змінюються
Змінені іншим модом пікселі підміна пропускається
Змінені прапорці заголовка при тих самих пікселях підміна працює
Відсутній або пошкоджений UAP функції гри лишаються оригінальними

Наживо оглянуто логотип, підзаголовок, головне меню й дошку «АБВ» у редакторі персонажа. Підміна стартового екрана підтверджена журналом завантаження. Вивіски Венеції, панель замку й ілюстрацію коледжу перевірено побайтово на рівні контейнерів; окремий живий огляд цих сцен — серед того, що варто зробити під час повного проходження.

Повні докази — в архіві досліджень автора.