Перейти к содержимому
Zone of Games Forum
Sudakov Pavel

Руководство: русификация игр Telltale Games

Рекомендованные сообщения

Попробую написать “гайд” по переводу игр старой студии Telltale games.

Что нужно знать о ресурсах игр данной студии?

Обычно все ресурсы запакованы в ttarch или ttarch2 архивы, но в некоторых старых играх можно увидеть в незапакованном виде: звуковые файлы и некоторые текстуры, например, логотип во время запуска игры. Это не значит, что обязательно файлы должны быть запакованы в архивы (кроме игр, выпущенных после игры Poker Night 2 — там такой вариант может только усугубить ситуацию), но в большей части игр лучше использовать всё-таки архивы.

Можно внутри папки Pack создать свою папку и переместить свои модифицированные файлы, главное, чтобы название папки считалось самым первым в алфавитном порядке (обычно достаточно называть, например, "0 Sam and Max 101 rus"), но такой вариант подойдёт для первых старых теллтейловских игр, так как тогда у теллтейлов был полный бардак в структуре архивов, да ещё могли использовать разные ключи шифрования, как показала практика с первым сезоном Сэма и Макса, но в таком случае придётся определяться, под какую версию игры вы собираетесь выпускать перевод: под стим/гог версию или ещё под версии Telltale store и Gametap. Но с игры Strong Bad’s Cool Game for Attractive People разработчики начали приводить в порядок свои ресурсы, и можно будет спокойно делать свои архивы, закинув их просто в папку Pack, не создавая никаких своих папок.
Текст в играх Telltale обычно хранятся в langdb, landb и в третьем сезоне Сэма и Макса можно найти текст в dlog файлах. langdb обычно хранит весь текст игры, так что не удивляйтесь, если увидите один большой english.langdb, а вот с dlog и landb поделены на локации в игре.
Шрифты в играх Telltale хранятся в font файлах. До четвёртого сезона Ходячих мертвецов использовались растровые шрифты, однако с четвёртого сезона Ходячих мертвецов и ремастеров Сэма и Макса разработчики добавили возможность использовать векторные шрифты.
Текстуры в играх Telltale хранятся в d3dtx файлах.

Думаю, нам пока достаточно текущей информации, чтобы начать делать перевод игры от студии Telltale games.

Для перевода игры нам понадобятся следующие программы и плагины:
1) ttarchext - программа от aluigi (https://aluigi.altervista.org/papers/ttarchext.zip), позволяющая распаковать и запаковать в новый или перепаковать текущий архив. Данная программа запускается через командную строку, поэтому не пугайтесь, если у вас программа "не запустилась". Для этого достаточно запустить командную строку и в командную строку переместить исполняемый файл ttarchext. При первом запуске вы увидите информацию, как пользоваться программой. Принцип работы следующий:

ttarchext.exe <параметры> <номер игры> <TTARCH/TTARCH2 файл> <Папка для распакованных ресурсов>


Учтите! Если в пути к папке или к ttarch/ttarch2 файлу есть пробелы, то данные пути должны быть указаны в кавычках (хотя, возможно, если будете их перемещать в окно командной строки, то они сами подставятся, но следите, чтобы путь к файлу и папке были отделены друг от друга, иначе программа выдаст ошибку о неверно указанных параметрах).

Из списка параметров нам могут пригодиться следующие:
-l - данная опция нужна для просмотра содержимого архива. Очень удобно, если вы ищите нужные вам файлы
-o - данная опция нужна для простого извлечения файлов, программа может автоматически расшифровать зашифрованные ресурсы во время распаковки.
-f *.<формат файла> - данная опция позволит отфильтровать список файлов или извлечь файлы формата, которые вы укажете в данной опции (например, -f *.langdb - с опцией -l отобразит только файлы формата .langdb, если они будут в архиве или с опцией -o извлечёт из архива файлы формата .langdb).
-k <ключ шифрования> - данная опция пригодится для игр, которых нет в списке программы, но вам нужно будет расшифровать архивы для дальнейшей распаковки. Обычно ключ шифрования выглядит так:
92CA9A8185E46573A4BFD6D17FC6CB89990180D8AAC297E79751A1A89AD9AE95D7776281B4C4A6B9D6ECAA9C6985B3DC92C49E65A0A492
-b - данная опция нужна для сборки и пересборки архива
-V - нужно указывать после -b и указать номер версии. Версию можно будет узнать, если вы смотрели содержимое архива или распаковали архив.

Вот примеры распаковки архивов:

ttarchext.exe -o 44 "C:\Games\Hector episode 1\Pack\1_Hector101_english_pc_data.ttarch" "C:\Users\example\Desktop\Unpacked files" - распаковка всего архива в игре Hector: Episode 1 - We Negotiate with Terrorists
ttarchext.exe -o -f *.landb 44 "C:\Games\Hector episode 1\Pack\1_Hector101_english_pc_data.ttarch" "C:\Users\example\Desktop\Unpacked files" - распаковка landb файлов из архива в игре Hector: Episode 1 - We Negotiate with Terrorists
ttarchext.exe -o (-f *.landb) -k 92CA9A8185E46573A4BFD6D17FC6CB89990180D8AAC297E79751A1A89AD9AE95D7776281B4C4A6B9D6ECAA9C6985B3DC92C49E65A0A492 "C:\Games\Hector episode 1\Pack\1_Hector101_english_pc_data.ttarch" "C:\Users\example\Desktop\Unpacked files" - распаковывает архивы (или файлы указанного формата из архива) с вашим сторонним ключом, которого нет в списке программы.

А вот примеры запаковки архивов:

ttarchext.exe -b -V <версия архива для ttarch и 7, если это ttarch2) 44 "C:\Games\Hector episode 1\Pack\1_Hector101_english_pc_data.ttarch" "C:\Users\example\Desktop\modified files" - запаковка/перепаковка архива в игре Hector: Episode 1 - We Negotiate with Terrorists
ttarchext.exe -b -V <версия архива для ttarch и 7, если это ttarch2) -k 92CA9A8185E46573A4BFD6D17FC6CB89990180D8AAC297E79751A1A89AD9AE95D7776281B4C4A6B9D6ECAA9C6985B3DC92C49E65A0A492 "C:\Games\Hector episode 1\Pack\1_Hector101_english_pc_data.ttarch" "C:\Users\example\Desktop\modified files" - запаковка/перепаковка архива с вашим сторонним ключом, которого нет в списке программы.


2) TTG Tools - программа от @Den Em (https://gitflic.ru/project/pashok6798/ttg-tools/release), позволяющая работать с текстом, текстурами и шрифтами. Она написана на C#, так что, скорее всего, может понадобиться версия .Net Framework от версии 4.0 и выше.
Первым делом в настройках указываем пути к папке для входящих файлов (Input) и папке с готовым результатом (Output), а также не забываем настроить кодировку ASCII на ваш регион (гугл вам в помощь, чтобы понять, какая у вас должна использоваться кодировка, если вы скачали старую версию или в новой версии можете выбрать "Я не знаю свою кодировку" и выбрать язык, на который собираетесь переводить). Данная настройка нужна для более старых игр, кодировка которой ограничена в 256 символов, а также для игр Tales from the Borderlands и Game of Thrones, так как там была кривая поддержка UTF-8 кодировки.

После настройки вы увидите главное окно программы. Попробую объяснить функционал каждого раздела.

Скрытый текст

Данный подраздел для распаковки/запаковки langdb, landb, dlog (только для Сэма и Макса сезон 3 оригинал), векторных шрифтов font (узнать можно будет во время открытия шрифта в Font Editor) и d3dtx файлов. Также данная программа может зашифровывать/расшифровывать lenc/lua скрипты, которые могут находиться рядом с ttarch2 архивами. Программа извлекает landb/langdb/dlog файлы в обычный текстовый формат или в формат таблицы с табуляцией (tsv-файлы), а также извлекает текстуры в формат dds и некоторые текстуры в pvr формат.
Чтобы извлечь файлы, нужно перекинуть вышеуказанные файлы в папку Input, затем нажимайте кнопку "Decrypt, Export", и ждите результата распаковки. Возможно, при распаковке langdb файлов может долго извлекать текст, если в настройках Auto(De)Packer отмечен "Sort strings", если вам не нужно сортировать строки в langdb файлах, то можете снять галочку. В настройках Auto(De)Packer есть не обязательные настройки, но возможно кому-нибудь пригодятся:
Use a real ID of text in LANDB and LANGDB - данная настройка пригодится тем, кто собирается заниматься озвучкой игры, и чтобы было проще сортировать звуковые файлы по настоящему ID строк.
Ignore empty strings - данная настройка нужна, если в текстовых файлах будет много пустых строк.
Import actor names - данная опция пригодится для поправки опечатки оригинальных имён персонажей. В остальных случая не рекомендуется использовать данную опцию.
Clear messages in Auto (De)Packer - опция пригодится, если вы выполняете много действий в Auto(De)Packer и вам нужно видеть только актуальные сообщения.
Если игровые ресурсы оказались зашифрованными, Auto(De)Packer попытается подобрать ключ шифрования, если успешно подберёт, то сообщит об этом и укажет название игры и метод шифрования (version 2-6 или version 7-9). На всякий случай запомните данный метод, если вам нужно будет шифровать импортированные ресурсы.
После перевода текста и перерисовки текстур вам нужно будет импортировать ваши ресурсы в ресурсы игры. Для этого необходимо поместить в папку langdb/landb/dlog/d3dtx файлы и ваши отредактированные текстовые файлы или dds/pvr файлы, затем нажмите Encrypt, Pack, Import. В папке Output должны появиться модифицированные файлы. После этого можно запаковать свои ресурсы через ttarchext и Archive Packer.
Также можно использовать Auto(De)Packer распаковать/импортировать векторные шрифты в игре Walking Dead: Final season и ремастерах Сэм и Макс. Для этого в папке Input также перекидываются файлы font и с помощью "Decrypt, Export" экспортируются шрифты в папку Output. После модификации шрифта можно в папку Input рядом с font положить модифицированные ttf, затем нажать кнопку "Encrypt, Pack, Import".
Примечание по поводу векторных шрифтов: Если вы не хотите модифицировать оригинальные шрифты, и у вас шрифты TTF, которые вас устраивают для перевода игры, то сразу в папку Input положить оригинальные font и TTF и нажать "Encrypt, Pack, Import".

 

С lua-скриптами следующая ситуация: Auto(De)Packer может только расшифровать и зашифровать скрипты. Для этого достаточно переместить файлы lenc/lua в папку Input, указать в списке игру и выбрать метод шифрования (так как скрипты нужно будет расшифровывать с игры Волк среди нас, то можете сразу выставлять метод шифрования Versions 7-9) и нажать кнопку “Decrypt, Export”. После расшифровки, утилита закинет расшифрованные файлы в папку Output. Тут следует быть готовым к следующим: в играх Волк среди нас, Walking Dead: Season two, Tales from the Borderlands, Игра престолов используют, так сказать, “скомпилированные” скрипты, поэтому после расшифровки скриптов придётся через шестнадцатеричные редактор поправлять название архива и теги, в последующих играх скрипты будут в удобном текстовом формате, и их будет проще поправлять текст. После правки скриптов можно модифицированные файлы просто закинуть в папку Input (не обязательно хранить оригинальные скрипты), выбрать из списка игру, указать метод шифрования versions 7-9, если вы переводите игру, вышедшая после Игры престолов, то нужно отметить опцию Lua scripts for new engine и нажать кнопку Encrypt, Pack, Import. После этого в папке Output появляются зашифрованные модифицированные файлы. Данные скрипты понадобятся для загрузки ваших сторонних архивов в игре.

Скрытый текст

Данный подраздел для работы с растровыми шрифтами. Последние версии поддерживают только шрифты, сгенерированные в BMFont Generator, но вы также можете редактировать вручную шрифты, поправляя извлечённые координаты в fnt файл и редактирование dds текстуры с помощью графических редакторов, о которых я опишу ниже. Игры до Poker Night 2 должны быть выровнены по сетке, поэтому если вы используете BMFont generator, то нужно будет указать Force offsets to zero. С игры Poker Night 2 не обязательно использовать опцию Force offsets to zero. Рекомендуется сохранить шрифт в координатах формата text или XML, а также текстуры должны быть формата DDS и для старых игр можно ипользовать None, DXT3 или DXT5, но для новых игр лучше использовать None или DXT5. Алгоритмы DXT3/DXT5 используются для более компактного размера текстур, но в некоторых играх можно использовать формат None (по крайней мере, видел несжатые текстуры у шрифтов в Walking Dead: Michonne или Minecraft: Story mode). В первых играх теллтейлов рекомендую с опаской использовать несколько текстур в шрифте, а также не рекомендуется использовать несколько текстур в шрифте для субтитров, иначе шрифт в игре будут отображаться некорректно.

Скрытый текст

Данный подраздел для работы с двуязычными файлами (оригинал + перевод). Данный подраздел может объединить оригинал и перевод в один файл, где можно будет потом править переведённый текст, а также можно с помощью небольшого хака сделать более быстрый перенос перевода в обновлённый текстовый файл, если у вас уже есть старый двуязычный файл. Данный "хак" нужен был, когда выходили новые эпизоды и там обновлялись файлы, такие как у главного меню. Достаточно было сделать новый двойной оригинал + оригинал файл, а потом с помощью переноса строк из старого двуязычного файла в новый и доперевести новые строки.

Скрытый текст

Данный подраздел для сборки/пересборки архивов. С помощью него можно собирать ttarch файлы для игр до Волка среди нас и ttarch2 для игр с Волка среди нас.

Для очень старых игр самые главные параметры:

version of archive — указывается та версия, которая будет отображаться или в Archive unpacker или в ttarchext. Обычно я находил версии 2, 3, 4, 7, 8 и 9, но на всякий случай оставил версии 5 и 6.

В некоторых играх есть какие-то непонятные параметры, которые называются xmode. На практике, данный параметр нужен будет только для игры Tales of Monkey Island, так что для данной игры ставьте параметр Xmode (for some old archives).

Encrypt archive — данная опция нужна для зашифровки архивов (в некоторых случаях не обязательно использовать шифрование, но в очень старых играх шифрование скорее всего понадобится, поэтому ставьте данную опцию и выбирайте из списка игру или ставьте опцию Custom key of encryption и ставьте свой ключ шифрования (данная опция нужна, если нужного ключа шифрования в списке игр нет, например, ключ шифрования эпизода 2 первого сезона Сэм и Макс от руссобит-М — его в списке файлов нет).

Don’t encrypt lua — данная опция нужна, если вы извлекали скрипты, не расшифровывая их или если вы собираете архивы для мобильных устройств и некоторых консолей.

Compress archive — данная опция нужна для сжатия архивов. С версии 3 есть возможность сжимать архивы. С 3 по 4 утилита будет пытаться сжимать по умолчанию по алгоритму zlib, но в версии 7 и 8 есть вероятность, что некоторые игры будут поддерживать zlib (на практике находил данные алгоритмы только на Tales of Monkey Island и в 4 эпизоде Wallace & Gromit’s grand adventures), но в других видел использование алгоритмов deflate. Версия 9 по умолчанию использует алгоритм deflate. Так что прежде чем сжимать архивы, убедитесь в алгоритме сжатия, посмотрев структуру архива в Archive unpacker.

 

С ttarch2 есть некоторые отличия. В данной опции не используется xmode и используются только 2 версии — 1 версия используется в играх от Волк среди нас до Minecraft Story mode и версия 2 — от Minecraft: Story mode до Walking Dead: Final season (и обновлённой версии tales from the borderlands, которую перевыпустили 2K и gearbox (не путать с New tales from the borderlands. Там используется движок Unreal Engine 4). В версии 2 может с игры Batman: Telltale series (первый сезон) можно использовать алгоритм сжатия Deflate или Oodle LZ. Остальные опции практически повторяют принцип работы сборки ttarch архивов, кроме одной опции:

Encrypt Lua for New engines — данная опция требуется для шифрования игр с Tales from borderlands/Game of Thrones до Walking Dead: Final season, если в ваших архивах будут храниться lua скрипты.

 

После настройки вышеуказанных параметров можно указать папку с модифицированными файлами (шрифты, текстуры и текст), а затем указать путь к будущему архиву или архиву, который будете пересобирать. После этого нажимаете кнопку “Build archive” и ждёте завершения сборки.

Скрытый текст

Данный подраздел появился в последних версиях TTG Tools и находится в очень сыром состоянии. С помощью данной функции можно распаковать игровые ресурсы игры из ttarch/ttarch2 архивов. Для этого следует выбрать из списка игру или установить сторонний ключ шифрования, если данного ключа не будет в списке. Можно также установить опцию “Decrypt lua scripts”, если в архиве окажутся lua скрипты и они, возможно, будут зашифрованы, но они обычно бывают зашифрованы  на ПК платформе. Далее можете нажать File->Open и выбрать архив для распаковки. После открытия появится список файлов, находящиеся в архиве. Можно распаковать со всеми файлами или отфильтровать по формату файлов, а потом извлечь только файлы определённого формата, можно установить опцию “Search name” и написать ключевое слово или полное название файла для поиска в архиве. После этого можно также извлечь только найденные файлы или если вы выбрали файлы из списка, но для выделенных файлов необходимо выбирать “Actions->Unpack selected”, для остальных вариантов достаточно выбрать “Actions->Unpack”. После нажатия “Unpack” или “Unpack selected” можно указать путь к папке, где будут находиться распакованные файлы.

Теперь перейдём к обсуждению, как можно работать с распакованными ресурсами.

  1. Работа с текстом

Для работы с распакованным текстом достаточно будет блокнота. Если извлекали текст в tsv формате, то можно работать в любом табличном редакторе (например, google docs, Р7 офис, мой офис, MS Office или OnlyOffice). Имена персонажей возле цифр (например, 1) SAM), комментарии в фигурных скобках (например, {} или []) и строки с пометкой TEMP переводить не нужно! Остальное можно переводить. Ещё в играх с tales from the borderlands могут выходить метки уровня <<Font:Arial_40.font:36>> переводить тоже не нужно! Данные метки нужны для исправления размера шрифтов в некоторых интерфейсах.

  1. Работа с шрифтами

Для работы с распакованными шрифтами нужно сначала определиться с форматом шрифтов:

2.1. Если шрифт окажется векторным, то можно заменить на любой TTF шрифт, который можете найти в интернете или найдёте в интернете уже модифицированный с добавленными буквами вашего языка (в нашем случае, нам нужен шрифт с кириллическими буквами), но если вы хотите шрифт, как в оригинале, а в интернете нет переведённого шрифта, то можно воспользоваться редакторами векторных шрифтов, таких как FontForge, FontLab Studio или High-Logic Font Creator. Более подробная инструкция, как работать с векторными шрифтами можно почитать здесь: 

 

После добавления необходимых букв в векторных шрифтах можно импортировать TTF шрифт через Auto(De)Packer.

2.2. Если шрифт окажется растровым, то с помощью Font editor можно извлечь текстуры шрифтов, попробовать перерисовать символы, поправить координаты символов и импортировать модифицированные текстуры и координаты в растровый шрифт, а потом его сохранить. Ещё можно с помощью BMFont Generator (https://www.angelcode.com/products/bmfont/) сгенерировать шрифт из векторных шрифтов, указав нужные символы (но учтите! В играх до Волка среди нас и Ходячих мертвецов 2 шрифты поддерживают только ANSI кодировку (в данной кодировке используется максимум 256 символов, где первые 128 символов это знаки препинания, латинские символы, а остальные могут зависеть от региона (поищите в интернете особенности кодировки ANSI/ASCII 8 bit), а в Игре престолов и Tales from the borderlands хоть и добавили поддержку unicode кодировки, но из-за кривой реализации текст может отображаться некорректно, поэтому в этих играх тоже следует использовать как ANSI/ASCII 8 bit). После этого можно указать размеры текстуры, и сохранить текстуры в формате DDS, а также следует использовать 2 варианта сжатия: None (будет несжатая текстура ARGB8888 формата) или DXT5 (в некоторых приложениях указывается ещё сжатие как BC3). В очень старых играх можно ещё сохранить в формате DXT3 (возможно, будет называться формат BC2). Координаты лучше сохранить или в формате Text или в формате XML. Binary формат приложение TTG Tools не поддерживает. После этого можно импортировать сгенерированные координаты и текстуры в шрифт игры и сохранить модифицированный шрифт.

  1. Работа с текстурами.

С помощью граф. редакторов GIMP и Photoshop с плагинами от Intel (https://gametechdev.github.io/Intel-Texture-Works-Plugin/) или Nvidia (https://pixelbox.ru/plagin-dds-nvidia-texture-tools-dlya-photoshop) можно будет редактировать DDS текстуры. Также можно с помощью программ PVRTexTool или AMD compressonator конвертировать текстуры в png, а после редактирования текстуры обратно преобразовать в DDS. Лучше текстуры в новых играх сохранять в формате, которые пишет TTG Tools, также и с количеством мип-мапов, чтобы не было проблем с импортированием текстур. С портированием текстур на другие платформы дела обстоят сложнее, так как программа TTG Tools поддерживает очень малое количество форматов. По моей памяти TTG Tools может импортировать текстуры:

Для Android: ARGB8888, ETC1, PVRTC 4bpp, PVRTC 8bpp (но насчёт последних двух это не точно).

Для iOS: ARGB8888, ETC1, PVRTC 4bpp, PVRTC 8bpp, PVRTC II 4bpp, PVRTC II 8bpp (на самом деле я за время поддержки инструментария так уже запутался, какие форматы поддерживает программа, что в итоге тут полная лотерея, поэтому желаю вам удачи в разборе формата текстур на iOS и Androidе).

Для PS4: DXT1, DXT5 (и то мне писали, что при портировании некоторых текстур игры могли падать, так что используйте данную функцию на свой страх и риск).

Для Switch: DXT1, DXT5 (вроде только эти форматы поддерживаются, ломаются игры или нет после импорта текстур игры — не знаю. Тоже пробуйте на свой страх и риск).

ВНИМАНИЕ! Для консолей потребуется дополнительная обработка текстур методом Swizzle (кроме PS3, там, как мне сказали бразильцы, текстуры работают почти как на ПК, но с форматом текстур тоже был некоторые нюансы), так что для PS4 и Switch придётся использовать опцию “Swizzle textures”, либо с помощью сторонних программ для консолей пробуйте обрабатывать текстуры. Поддерживать зоопарк текстур мне откровенно лень (удивлён, что я этот бред под названием “гайд” решился написать).

 

  1. Работа с lua скриптами.

Данный раздел подойдёт для игр, вышедших после Poker Night 2. В чём загвоздка? Разработчики решили некоторые параметры, которые были в архивах, зачем-то перенести в lua скрипты. В них обычно указывается игровой тег, приоритет загрузки, название игрового объекта и перечисляются архивы. Также, если не ошибаюсь, указывается параметр сканирования папки с ресурсами: рекурсивное сканирование или нет. В играх теллтейлов обычно используются следующие теги:

<boot> — обычно используется для титульного экрана

<project> тут могут храниться общие ресурсы проекта (не всей игры), обычно это какие-то файлы свойств (prop файлы), файлы интерфейса, какие-то общие модели, текстуры и шрифты.

<SamMax101> — название игры и её эпизод. Обычно используется для определённого эпизода. Там могут храниться все ресурсы, используемые в указанном эпизоде.

<> — если указать такой тег, то это может означать, что движок будет грузить из вашего архива ресурсы в любом месте, где они ему понадобятся. Пригодится для общих ресурсов в игре.

 

В играх на iOS, PS3 (и вроде на xbox360), а также на ПК с Minecraft: story mode дела со скриптами обстоят намного проще: вы их расшифровали и можете спокойно их редактировать в текстовом редакторе Notepad++ (лучше использовать его, а не стандартный блокнот, чтобы потом не было проблем с переносом строк и кодировкой текста).

Скрипты будут выглядеть примерно так:

Скрытый текст

local set = {}
set.name = "Common_ZoG"
set.setName = "Common_ZoG"
set.descriptionFilenameOverride = ""
set.logicalName = "<Common_ZoG>"
set.logicalDestination = "<>"
set.priority = 500
set.localDir = _currentDirectory
set.enableMode = "constant"
set.version = "trunk"
set.descriptionPriority = 0
set.gameDataName = "Common_ZoG Game Data"
set.gameDataPriority = 0
set.gameDataEnableMode = "constant"
set.localDirIncludeBase = true
set.localDirRecurse = false
set.localDirIncludeOnly = nil
set.localDirExclude = 
{
    "Packaging/",
    "_dev/"
}
set.gameDataArchives = 
{
    _currentDirectory .. "SM2_pc_Common_ZoG.ttarch2"
}
RegisterSetDescription(set)

 

Нам понадобятся следующие переменные:

set.name, set.setName, set.logicalName, set.logicalDestination, set.priority, set.enableMode, set.gameDataName и set.gameDataArchives

Первые две переменные, я так понял, нужны для движка, чтобы он мог потом присвоить какие-то параметры, в logicalName обычно можем указать свои пометки, как указано в примере скрипта. В logicalDestination нужно указывать тег, который мы должны будем перебивать нашими ресурсами (например, <SamMax101> для замены ресурсов в первом эпизоде Сэм и Макс или <>, если хотим грузить какие-то общие ресурсы: шрифты, текстуры или какой-то общий текст игры). Переменная setPriority устанавливает приоритет загрузки наших ресурсов над оригинальными, не советую ставить слишком высокие значения, так как игра может тупо игнорировать данные ресурсы. Лучше иногда ставить значение от 500 до 1500. Переменная setEnableMode должен быть значения constant, так как при bootable наши ресурсы на практике не грузились. В переменной gameDataName можете просто написать название из name, добавив в конце Game Data. В gameDataArchives указываете название будущего архива или архива, который вы уже собрали для перевода.

На этом я мог бы закончить, написать “А теперь сохраните скрипт как вам удобно, для ПК зашифруйте обратно и все будут счастливы”, но тут появляются скрипты на ПК для игр от Волка среди нас до Game of Thrones (точно не помню насчёт Tales from the borderlands, так как 2K выпускала обновлённую версию движка, и вроде там со скриптами сейчас обстоят намного лучше). К сожалению, на ПК в данных играх скрипты были скомпилированы, а стандартные декомпиляторы и компиляторы lua версий 5.1/5.2 почему-то не хотят работать с теллтейловскими играми, поэтому придётся открывать любой шестнадцатеричный редактор и пробовать аккуратно редактировать lua скрипты. Единственное, чего нужно учесть: приоритет ставится типа плавающей запятой с последовательностью от младшего к старшему (little-endian) и можно с помощью данного сайта глянуть, как конвертировать из привычного значения в шестнадцатеричный формат: https://gregstoll.com/~gregstoll/floattohex/

Сначала мы расшифровываем lua скрипты через Auto(De)Packer (выбираем из списка игру или ставим свой ключ шифрования, если нет в списке нужной игры, и указываем версию шифрования 7-9 (“Versions 7-9”). После расшифровки скриптов нужно будет открыть шестнадцатеричный редактор. Я в примере буду использовать HxD. ВАЖНО! Когда будете работать с программой, учтите, что редактор будет установлен в режиме “замена”. Для замены значений фиксированной длины это будет удобно, но если вам нужно будет сделать более длинную строку, то вам придётся переключиться в режим “вставка”, для этого нужно нажать кнопку Insert и можно будет добавлять значения. Ниже будет указано для примера, что нужно будет менять в строковых значениях.

Скрытый текст

2025-03-06-18-53-21.png

Далее пробуем редактировать значение приоритета. Нам нужно будет поправить 4 байта после значения 03:

Скрытый текст

2025-03-06-19-06-55.png

Значения могут отличаться от примера, но по сути нужно поправлять именно данные 4 байта.

Если вы пользуетесь редактором HxD, то можно в самом редакторе выделить 4 байта и через раздел специальных редакторов выставить значение Little-endian и в поле Single (float32) ввести значение, которое вам необходимо. Если вы работаете в другом редакторе, и у него нет специальных редакторов значений, то заходим на сайт, который я писал выше, далее вводите в поле Float value, например, 500, нажимаете “Convert to float” и получите шестнадцатеричное значение, но не спешите копировать значение. У нас тип значения от младшего к старшему (Little-endian), поэтому надо куда-нибудь записать перевёрнутое значение, а потом заменить наше значение вместо тех 4-х байт, которые идут после значения 03.

Скрытый текст

2025-03-06-19-26-58.png

 

2025-03-06-19-29-43.png

Скрытый текст

2025-03-06-19-39-48.png

 

2025-03-06-19-45-11.png

 

2025-03-06-19-47-28.png

Как сделали отдельный скрипт, сохранили его под другим названием (например, _resourcedescriptions_500_Project_ZoG.lenc), зашифровываем обратно с помощью TTG Tools или ttarchext, собираем архив, указанный в нашем скрипте (я указывал в примере Fables_pc_Project_ZoG.ttarch2). и пробуем запустить наш перевод в игре.

Я для более удобного сравнения попробую прикрепить оригинальный файл и поправленный файл: https://cloud.mail.ru/public/Au5t/dSuVzeARK

 

Изменено пользователем pashok6798
Добавляю раздел с lua скриптами
  • Лайк (+1) 1
  • +1 1

Поделиться сообщением


Ссылка на сообщение

Попробовал сделать “гайд” по работе с инструментами для перевода игр от Telltale Games. Если есть вопросы или будет какая-нибудь критика, то пишите сюда. Может быть, потом получится доработать данный “гайд”.

Поделиться сообщением


Ссылка на сообщение

Мне очень понравился гид, спасибо! Я просто не совсем понял, как изменить шрифты. :D

  • Лайк (+1) 1

Поделиться сообщением


Ссылка на сообщение

Забыл добавить раздел с lua скриптами. В свободное время буду пробовать добавлять работу с lua скриптами.

Поделиться сообщением


Ссылка на сообщение

Привет, я новичок, помоги разобраться) хочу сделать полностью свой стёбный перевод игры. Мой вопрос такой на примере бетмана. я нашел архив который содержит элементы начального загрузочного экрана “BM_pc_Boot_data.ttarch2”, чтобы поменять текст мне достаточно вытащить от туда файл .Langdb? или мне нужно весь полностью распаковывать и заново пересобирать? Если достаточно одного файла Langdb то как его потом заменить? Если полностью, то у меня потом не получается обратно все запаковать :( точнее я запаковываю с помощью Arсhive paker , но игра больше не запускайется (

В 19.01.2025 в 23:10, pashok6798 сказал:

После перевода текста и перерисовки текстур вам нужно будет импортировать ваши ресурсы в ресурсы игры. Для этого необходимо поместить в папку langdb/landb/dlog/d3dtx файлы и ваши отредактированные текстовые файлы или dds/pvr файлы, затем нажмите Encrypt, Pack, Import. В папке Output должны появиться модифицированные файлы.

возможно я тут допускаю ошибку. У меня нету папки Langdb, ее нужно самому создать? “туда поместить файлы и ваши отредактированные файлы” — тоесть нужно поместить файлы оригинала и мои отредактированные файлы, я уже запустался:D

Поделиться сообщением


Ссылка на сообщение

@Okorock смотря как собираетесь дальше делать перевод. Если банальная переборка оригинальных архивов, то надо извлечь все ресурсы, поправить текст в landb файле и пересобрать архив с модифицированными landb файлами. Если отдельные свои архивы, то достаточно извлечь landb файлы, поправить текст и создать архив со своими ресурсами, а еще необходимо добавить свой скрипт, указав в скрипте поправленные теги, приоритет и указав название вашего архива.

В archive packer для Бэтмена можно указать версию ttarch2 архива - 2, если пересобираете оригинальные архивы, то указывайте параметр "encrypt Lua for new engine" и выберите из списка игру, чтобы успешно зашифровался архив. Можно попробовать еще сжать архив, но тут не уверен, насколько хорошо будет работать сжатый архив. Делайте сжатые архивы на свой страх и риск.

2 часа назад, Okorock сказал:

возможно я тут допускаю ошибку. У меня нету папки Langdb, ее нужно самому создать? “туда поместить файлы и ваши отредактированные файлы” — тоесть нужно поместить файлы оригинала и мои отредактированные файлы, я уже запустался:D

В папку Input помещаете landb файлы и свои текстовые файлы, затем нажимаете Import и в папке Output будут модифицированные landb файлы.

  • Лайк (+1) 1

Поделиться сообщением


Ссылка на сообщение

Блин получилось! Мужик спасибо тебе! Ты гений)

  • Лайк (+1) 1
  • +1 1

Поделиться сообщением


Ссылка на сообщение

Создайте аккаунт или войдите в него для комментирования

Вы должны быть пользователем, чтобы оставить комментарий

Создать аккаунт

Зарегистрируйтесь для получения аккаунта. Это просто!

Зарегистрировать аккаунт

Войти

Уже зарегистрированы? Войдите здесь.

Войти сейчас



Zone of Games © 2003–2025 | Реклама на сайте.

×