З'явилося питання? Вам на наш сервер Discord.

Підтримати автора гривнею: Монобанка.

Вступ

• Насамперед варто з'ясувати на якому рушії створена гра. Це можна зробити за допомогою SteamDB, PCGamingWiki чи Google, ну або поглянувши на структуру ігрових файлів, якщо у вас набите око :)
Перед початком роботи з файлами перевірте, щоб на шляху не було кирилиці, чи будь-яких інших нетипових символів.

Якщо цей посібник чи автор посібника (piggsy) допомогли Вам у створенні українізатора, не забудьте вказати посилання на посібник при розповсюдженні українізатора :)
• Також Вам варто розуміти, що немає універсального методу для роботи з ігровими файлами. Навіть ігри, створені на одному рушії, можуть кардинально відрізнятися. У цьому посібнику описано роботу з видами файлів, що найчастіше трапляються.



Unity

Ігрові архіви

• Основний інструмент для роботи з ігровими архівами Unity - це UnityAssetBundleExtractorAvalonia. Відкривши програму натискаємо File → Open і у папці ●●●_Data, що лежить у теці з грою, відкриваємо архів .assets (рекомендую розпочати пошуки із resources.assets, часто текст лежить саме у ньому).Якщо архів .assets не відкривається, спробуйте скористатися UABE.Знайшовши потрібний файл експортуйте його за допомогою Export Raw або Export Dump
Export Raw - програма експортує необроблений файл.
Export Dump - програма експортує оброблений файл (якщо може його обробити).
Якщо експортуєте Raw файл, то й імпортувати його потрібно як Raw (кнопка Import Raw), якщо Dump, то Import Dump.
Plugins - обравши якийсь файл і натиснувши Plugins на екрані з'являться всі доступні плагіни для обраного типу файлу, наприклад Texture2D - Export Texture/Import Texture, Font - Import/Export as TTF/OTF і так далі. Після редагування файлів не забудьте зберегти архів натиснувши File → Save.



Текст

В Unity текст може лежати будь-де, як у .assets, .bundle так і в .dll
• Для початку потрібно пройтися по всіх теках гри і пошукати файли, які можуть містити текст (.txt .csv .xml) часто вони лежить у теці StreamingAssets, якщо є, то просто відкриваємо їх відповідними програмами (Excel, Notepad++), а якщо немає, то переходимо до одного з наступних пунктів.

.Assets:

Відкриваємо файл .assets (як у пункті Ігрові архіви), одразу відсортовуємо файли за розміром від більшого до меншого й по назві шукаємо ассети, що можуть містити текст (Localization, Language, ім'я мови і тд.)
Не можу знайти текст Якщо ви не можете знайти текст, спробуйте обрати у фільтрі TextAsset, LocalizationAsset тощо (View → Filter). Якщо ж текст все ще не вдається знайти виділіть усі файли (Ctrl + A), експортуйте їх як Raw (Export Raw) і за допомогою Total Commander знайдіть текст.
Як знайдете потрібний файл експортуйте його як Dump (рекомендовано) чи Raw (якщо Dump не працює).
Dump - після редагування файлу імпортуйте його назад натиснувши кнопку Import Dump. Не забудьте зберегти архів натиснувши File → Save.
Raw - якщо Export Dump не працює і вам довелося експортувати файл як Raw, відкрийте кацапську програму UnityText2, вкажіть теку з експортованим файлом (головне щоб у ній окрім цього файлу нічого не було) і натисніть OK. Після цього (якщо у налаштуваннях програми стоять потрібні мови) на екрані з'явиться текст, який ви можете відредагувати.
Як закінчите редагувати текст, тисніть кнопку Pack.
Поверніться до UABEAvalonia імпортуйте файл (Import Raw) й збережіть архів (File → Save).

.Bundles:

• В цілому принцип такий самий, як і в .assets-файлах, окрім кількох моментів, про які і буде написано тут.
• Щоб відкрити .bundle архів, в UABEA натисніть File → Open, оберіть потрібний файл і натисніть на кнопку Memory. У спадному списку оберіть файл й натисніть Info. Відредагуйте ассети, як це розписано у пункті .Assets й не забудьте зберегти файли в обох вікнах File → Save.
Гра не запускається/текст не відображається Якщо гра не запускається або текст не відображається, необхідно пропатчити файл catalog.json, якщо він у вас звісно є (він повинен бути у теці StreamingAssets\aa чи неподалік).
• Завантажте програму та розпакуйте її поряд з catalog.json. У полі директорії напишіть cmd та натисніть Enter. В командному рядку пропишіть Example.exe patchcrc catalog.json. З'явиться новий файл catalog.json.patched перейменуйте його на catalog.json, перед цим видаливши/перейменувавши старий catalog.json.
Image 1 Image 2 Image 3



Шрифти

• Звичайні шрифти формату Font:
В UABEAvalonia натисніть View → Filter й відфільтруйте шрифти (Font). Далі виділіть потрібний шрифт і натисніть на кнопку Plugins. У вас відкриється вікно з кнопками для імпорту та експорту шрифтів як otf чи ttf.
TMP-шрифти:
https://steamcommunity.com/sharedfiles/filedetails/?id=3023518241 Після імпорту шрифтів у UABEAvalonia не забудьте зберегти архів натиснувши File → Save.




Unreal Engine 3

• Ось так виглядає тека гри, що зроблена на UE3. Якась унікальна тека (DishonoredGame) і теки Binaries та Engine). Структура може бути дещо іншою.

Редагування тексту

• У більшості випадків в унікальній теці є папка Localization, текстові файли можуть лежати прямо у ній, або в окремих теках.
• Текстові файли будуть мати формат, що буде відповідати назві мови (Англійська - .INT).
• Відредагувати ці файли можна за допомогою будь-якого зручного для вас текстового редактора (Notepad++, SublimeText, чи навіть у звичайному блокноті).


Редагування шрифтів

• Для початку потрібно знайти файли зі шрифтами всередині, вони будуть у форматі .upk і можуть мати будь-яку назву, приклади можливої назви: DisFonts_PC_SF.upk, PROG_GUI_Fonts.upk (GUI, FONTS і т.д.).
• Як знайдете файл, який на вашу думку може містити шрифт, завантажте програму UPK Explorer розпакуйте вміст архіву кудись та запустіть виконувальний файл.
• Натисніть Set working folder і оберіть робочу теку. Далі в лівому нижньому куті перемкніть режим на Advanced, натисніть кнопку Open package file й оберіть потрібний .upk.

• Ліворуч в ієрархії ви побачите вміст файлу, шрифти можуть бути у форматі .SwfMovie, або .Texture2D. .SwfMovie:
• Оберіть файл та натисніть Export .swf. Відкрийте експортований файл у програмі JPEXS та додайте необхідні літери та символи.

Додавання додаткових символів у .SWF
• Після того, як додасте потрібні символи і збережете файл, імпортуйте його в .upk кнопкою Import .swf.
• Щоб зберегти .upk натисніть Save copy. Збережений файл матиме приписку _copy у назві, приберіть її перейменуванням та помістіть файл у його початкове місце, замінивши ним оригінальний файл.
Результат


.Texture2D:
Texture2D - це зображення. Відкрийте .upk файл у програмі UPK Explorer та перейдіть до вкладки Extract textures. Оберіть потрібну текстуру та експортуйте її кнопкою Export DDS, вона буде експортована у робочу теку. Перемалюйте частину наявних літер на українські й збережіть зображення з оригінальним стисненням (у моєму випадку це DXT5).
• Перейдіть до робочої теки, відкрийте теку з назвою гри, теку Imports й у ній побачите певну кількість папок, назва яких відповідає назві певних видів стиснення DDS. Покладіть свою текстуру у відповідну папку, й упевніться, що назва вашого зображення така ж як і в оригінального.
• У програмі відкрийте вкладку Inject textures, натисніть кнопку Refresh і якщо ви все зробили правильно в ієрархії з'явиться ваше зображення. Оберіть його та натисніть Inject textures and save a copy.
• Готово, збережений файл матиме приписку _copy у назві, приберіть її перейменуванням та помістіть файл у його початкове місце, замінивши ним оригінальний файл.




Unreal Engine 4 & 5

Розпакування .PAK архіву

• Відкриваємо програму для експорту ассетів UnrealEngine під назвою FModel та натискаємо Directory. У текстовому полі вказуємо шлях до гри.
Якщо ви все зробили правильно, то у полі Archives з'являться .pak, а можливо ще і .ucas архіви гри. Шукайте текстові файли (вони можуть бути з розширенням .uasset, .uexp, .locres...) у теках Local, Localization і тд., або ж скориставшись пошуком (View → Search). Після знаходження потрібних файлів, виділіть їх та клікніть правою кнопкою миші й натисність Export Raw Data. Файли будуть експортовані у теку вказану в налаштуваннях (Settings)).


Архіви світяться червоним? Прочитайте пункт AES ключ. Якщо ж це недопомогло, спробуйте поперемикати версії рушія в налаштуваннях FModel.

AES ключ

AES ключ - це пароль до ігрових архівів.
• Щоб його знайти нам знадобиться AES_finder. У теці з грою (а конкретніше *УнікальнаТека*/Binaries) знайдіть файл ●●●Shipping.exe та покладіть його біля AES_finder. Запустіть AES_finder і через 5-20 секунд з'явиться файл key.txt у якому і буде AES key. Вставте його у FModel (Directory → AES).
У key.txt написано Exe is protected? - https://github.com/Cracko298/UE4-AES-Key-Extracting-Guide

Редагування тексту

• Для редагування текстових файлів знадобиться програма UE4localizationsTool, відкриваємо її та натискаємо File → Open. Обираємо експортований файл та редагуємо. Для зручнішого редагування можете експортувати текст у звичайний текстовий файл Tool → Export All Text. Щоб імпортувати текстовий файл назад натисніть Tool → Import All Text.

Після редагування текстового файлу зберігаємо його (File → Save) зберігшийого початкове ім'я й помістивши цей файл в його початкове розташування. (Новий, модифікований файл повинен замінити старий, оригінальний.)


Шрифти

За допомогою пошуку у FModel (View → Search) знайдіть та експортуйте усі .ufont файли.
Файли .ufont - це звичайні .ttf шрифти. Змініть формат з .ufont на .ttf звичайним перейменуванням (Тиць).
.TTF - можна відредагувати майже будь-якою програмою для редагування шрифтів, в інтернеті купа туторіалів. Можете просто знайти схожий шрифт за допомогою WhatTheFont (обов'язково .ttf) й перейменувати його на шрифт, який хочете замінити. Не забудьте змінити розширення на .ufont. Після редагування цих файлів запакуйте їх у новий .pak-архів по такому ж принципу як і текст.


Текстури

• Для початку відкрийте теку з грою в програмі FModel та оберіть All у пункті Loading Mode та натисніть Load. Серед файлів потрібно знайти текстури. Як це зробити? Можна натиснути на файл два рази і якщо праворуч відобразиться зображення або у пункті Type писатиме Texture2D - це текстура.
❗ Якщо ви два рази клікаєте по файлу і FModel вилітає - у Вас у налаштуваннях стоїть неправильна версія рушія.
Після того як знайдете потрібну текстуру, експортуйте її (Правий клік по файлу - Export Raw Data (.uasset)), перейдіть у вихідну теку і там буде два файли, один .uexp, а інший .uasset.

• Тепер завантажте програму UE4-DDS-Tools (версію з GUI). Розпакуйте кудиcь всі файли з архіву та запустіть GUI.exe.
• Спочатку потрібно перевірити версію файлу, натисніть Menu → Check Version оберіть розпакований .uasset та натисніть Check.
• Тепер перейдіть у пункт Export (Menu → Export), так само оберіть потрібний .uasset, вихідну теку, версію рушія та формат файлу й натисніть Export.
• Щоб імпортувати текстуру назад, перейдіть до пункту Inject (Menu → Inject), так само оберіть потрібний .uasset, текстуру для імпорту, вихідну теку та версію рушія й натисніть Inject.
• Тепер замініть старі файли новими й створіть новий .PAK-архів.


Пакування .PAK

❗ На шляху до файлів не повинно бути кирилиці!
• Розпакуйте всі файли UnrealPak в якусь папку.
Теку Export, що утворилася при розпакування файлів з .pak-архіву, перетягніть на UnrealPak-Without-Compression.bat або UnrealPak-With-Compression.bat.
UnrealPak-Without-Compression.bat - без стиснення.
UnrealPak-With-Compression.bat - зі стисненням. Після пакування перемістіть новий .pak-архів в *УнікальнаТека*/Content/Paks й перейменуйте його на оригінальну назву архіву й додайте приставку _ukr.
Приклад - Hatred-WindowsNoEditor_ukr.pak
АЛЕ якщо оригінальний архів мав назву pakchunk%-WindowsNoEditor.pak, де % якесь число, перейменуйте його на pakchunk99-WindowsNoEditor.pak, замість 99 можете підставити якесь інше число, яке більше за максимальне число оригінальних архівів.

Гра не підтягує новий .pak? Спробуйте додати -fileopenlog у параметри запуску.
Якщо це не допомагає, перевірте чи поряд з .pak архівами є файли з розширенням .sig, якщо є, то скопіюйте перший з них і назвіть його так само як і створений вами .pak, якщо гра досі не бачить новий архів, спробуйте наступний файл .sig і так далі.
Також можете спробувати додати до назви новоствореного архіву _P.




Godot Engine

Розпакування .PCK архівів

• Для розпакування .pck знадобиться GodotPCKtool. Завантажте архів та розпакуйте всі файли у теку з грою. Щоб розпакувати .pck просто перетягніть його на unpack.bat.

Пошук та редагування тексту

Для пошуку тексту можете скористатися Total Commander. Якщо текст буде зашифрований, тобто у форматі .translation, то інструментів для його редагування ще немає. А якщо файл не зашифрований (.po, наприклад) і його спокійно можна редагувати текстовими редакторами, то українізатор можна буде зробити. Редагуйте текст і запаковуйте .pck.

Пакування .PCK архівів

• Для пакування .pck просто перетягніть його на pack.bat.
• Помилка під час пакування? Видаліть всі файли та залиште ті, які ви модифікували. Повторно запустіть pack.bat.




CryEngine

Розпакування та пакування .PAK

• У CryEngine .pak-файли - це звичайні .zip-архіви які ви пожете розпакувати та запакувати будь-якими архіваторами.
• Архіви можуть бути запаролені, на жаль, я ще не знаю як знайти цей пароль.

Текст

• Текст лежить у теці Localization у .pak архіві. Розпаковуємо його і бачимо, що текст лежить у .xml, редагуємо його та запаковуємо у .pak-архів.

Шрифти

• Шрифти у CryEngine можуть бути як і звичайні .ttf так і .gfx або .swf.
• Для редагування .gfx та .swf шрифтів можете скористатися програмою JPEXS
Приклад роботи з JPEXS:




GameMaker: Studio

Перед виконанням наступних пунктів знайте, що у розділі Scripts є дуже багато корисних скриптів, які можуть дуже сильно пришвидшити роботу.

Ігрові файли

• Основним інструментом для роботи з файлами ігор на GameMaker є UndertaleModTool. Завантажте GUI версію програми та розпакуйте всі файли в пусту теку, попередньо ознайомившись із інформацією на головній сторінці.
• Запустіть програму та у ній відкрийте файл data.win, що лежить у теці з грою. Якщо у грі такого файлу немає і вся гра лежить у одному .exe можете спробувати розпакувати його змінивши формат з .exe на .zip перейменуванням, але не факт, що це спрацює.

Редагування тексту

• Перед тим, як шукати текст із гри в ігрових архівах, пошукайте його у теці з грою. В іграх на GameMaker він часто буває там.
• Якщо знайшли - редагуйте його відповідними програмами, скоріше всього текст буде лежати у .txt, .json або в якомусь офісному форматі.
• Якщо ж знайти не вдалося, відкрийте файл data.win в UndertaleModTool (File → Open), в ієрархії розгорніть поля, що можуть мітити текст (String, наприклад) або ще краще - розгорніть усі, й пошукайте потрібний рядок тексту за допомогою пошуку. Після цього клікніть два рази по цьому рядку й праворуч ви зможете відредагувати текст.
❗ Після редагування тексту ОБОВ'ЯЗКОВО перемкніться на якийсь інший файл в ієрархії, інакше відредагований текст не збережеться.
• Після виконання всіх операцій не забудьте зберегти архів File → Save, замінивши цим новим файлом старий data.win.



Шрифти

Відкрийте data.win.
Шрифти можуть лежати як у полі Fonts так і в Sprites.
Fonts - В ієрархії побачите рядок Fonts, розгорніть його й два рази клацніть по одному зі шрифтів. Праворуч знайдіть пункт Texture й натисніть на три крапки. Експортуйте зображення за допомогою кнопки Export. Тепер домалюйте потрібні літери у зручній Вам програмі. Після домалювання потрібних літер поверніться в UndertaleModTool й імпортуйте нову текстуру.
Знову два рази клікніть по шрифту в ієрархії, щоби повернутися назад й натисніть на кнопку Create an empty glyph. У вікні Glyphs внизу з'явиться нове пусте поле. У пункт Char впишіть потрібний вам символ.
Тепер клікніть ліворуч, щоб виділити рядок і натисніть на кнопку Edit selected glyph rectangle.
У новому вікні підженіть лінії під розмір символу й натисніть Save changes
Знову перемкніться на якийсь інший об'єкт в ієрархіні, щоб зберегти зміни й збережіть сам архів File → Save.
Sprites - скоро..