Перейти к содержимому
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

Более актуальные версии хранятся здесь: https://github.com/HeitorSpectre/TTG-Tools?ysclid=mobs0p32xf901169507), позволяющая работать с текстом, текстурами и шрифтами. Она написана на 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

 

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

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


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

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

  • Лайк (+1) 1

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


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

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

  • Лайк (+1) 1

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


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

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

  • Спасибо (+1) 1

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


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

Привет, я новичок, помоги разобраться) хочу сделать полностью свой стёбный перевод игры. Мой вопрос такой на примере бетмана. я нашел архив который содержит элементы начального загрузочного экрана “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

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


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

Всем привет, я решил перенести озвучку и перевод игры назад в будущее, на Xbox 360 озвучку перенёс, но застрял на шрифте — ни в какую не хочет работать. Получается размазанный текст либо квадраты. Я уже понял, в чём проблема — текстуре нужен swizzle, но никакой информации не нашёл, ни какого-либо программного обеспечения — результат ноль, менялись только размеры смазанного текста. Скриншот прикладываю — сможете помочь?

Спасибо

e50ca2afc9a999afd6f815ebb7b2d652.png

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


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

@Original_Death привет! Некоторые бразильцы добавили поддержку swizzle для Xbox 360, и это включает редактирование шрифтов. Ссылка на самую актуальную версию TTG Tools: https://github.com/zenderovpaulo95/TTG-Tools

  • +1 2

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


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

@Spectre Games Привет спасибо дружище я использую данный софт но старую версия хотя было указана что самая свежая. Спасибо 

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


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

Добрый день я делаю озвучку.  Сделал первый сезон The Walking Dead : The Telltale Definitive Series. Но озвучивать все файлы подряд неудобно. Хотелось бы, понять из каких файлов можно вытащить последовательность запуска аудиофайлов чтобы озвучивать по ходу игры или по отдельным сценам. В landb субтитры - они перемешаны и не все совпадают с аудио. Может быть подскажете? 

 

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


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

@The Gandalf Old последовательность получится проверять только с помощью chore файлов. Проблема в том, что там структура порой бывает замороченной, и я не особо разбирался в структуре.

  • +1 1

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


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

Здравствуйте. @Sudakov Pavel благодарю за статью!

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

Более актуальные версии хранятся здесь: https://github.com/HeitorSpectre/TTG-Tools?ysclid=mobs0p32xf901169507)

Не понял, как пользоваться утилитой — не встречался с такими.

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


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

@Jekyll что именно не понятно в использовании утилитой? Основные ее функции - экспорт/импорт текста, текстур и шрифтов. Какой раздел импорта/экспорта был не понятен?

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


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

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

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

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

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

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

Войти

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

Войти сейчас


  • Сейчас популярно

  • Продвигаемые темы

  • Последние сообщения

    • Тогда бери ту, что я по линку скинул. Или сразу оригинал от эйплов, если тыщ 15-20 есть и не на клаву не жалко. Тише низкопрофильных островных ножничных клаву сложно найти. Но имхо, реплика за 3-4 тыщи практичнее — как минимум радиоканал имеется, да и в целом, ощущается, не сильно-то вот прям хуже, как минимум не в десять раз. Вот пример подобной реплики с днс от более именитого бренда, чем тот, что сам брал. Единственный нюанс, если наклон посильнее нужен (они и так под наклоном типовым, но вкусы у всех разные), то есть смысл пару-тройку присосок прикупить или сразу рычажки типа тех, что на обычной клаве, только на липучках, чтобы немного верх клавы приподнять, либо баналньо что-нибудь подложить под верхнюю часть.
    • Обычная, механика/мембрана    островная или обычная дырявая и ножничная - я ничего из этого не понял, ничего не говорит.     Я не знаю щёлкающая, клацающая итд. Не знаю Мне желательно потише.
    • На титрах чуть ни плакал и аплодировал стоя. Охрененное кино.
    • Сейчас пользуюсь этим: Клава, мыша. Клава низкопрофильная островная, заряд держит отлично. Единственный нюанс, это пластик, а не металл, копирка визуальная дорогих решений от эйплов, впрочем, и стоит в несколько раз дешевле. Как и в случае других более недорогих аналогов могут быть ляпы литься пластика (у меня, например, банально ползунок вкл-выкл клавы до конца не переключался, уж было голову себе сломал и думал, что на брак нарвался, потом присмотрелся и убрал излишек, чтобы до конца отщёлкивалось в нужную сторону). По мыше могу сказать, что док крайне чувствителен к движению, у некоторых вообще отваливается, его лучше сразу на липучку ставить один раз стационарно и не отрывать от стола больше, да и провода лишний раз не шевелить. В остальном нормальная мыша с 8к датчиком. Сам пользуюсь в 2к режиме, покупал скорее уж из-за внешки, чем из-за супер-пупер киберспортивных возможностей. Валькирии, в целом, поставщик неплохого подобного железа, но откровенно за оверпрайс. Впрочем, всё относительно, есть и куда дороже вещи. При желании можно и клаву механическую (и коврик до кучи) из того же сета найти, если запариться, но мне их клавы визуально не зашли за такой-то ценник.
    • attack shark x11 и клавы у них есть @\miroslav\ новые приключения няши начинаются 
    • да там все просто — главное держать руки на столе и печатать тоже руками… 
    • Низкопрофильная/обычная? Островная или обычная “дырявая”? Механика/мембранка/ножничная? Если механика, то как звучащая (щёлкающая, клацающая, кликающая и так далее). Так могу тебе скинуть названия на пару совершенно разных клав, которыми пользуюсь сам, и мне норм. Которые стоили сравнительно немного по мерках клавиатур, но и не вот прям совсем уж бюджетки.
    • У всех так. Косяк сборки. Минут через 30 пересобраный появится у автора в тг и бусти. 
    • Ну у нас на руках пример одной библиотеки из целой пачки от игры, которая рассчитана на реалистичную графику. Кто ж знает, как оно там по итогу в полной версии длсс5.0 будет. Собственно, если подкручивать прогонку до максимальной, то длсс будет пытаться даже из рисованной графики вытянуть реалистичность на данный момент. Жаль лишь что с моей амд картой возможностей для тестов, мягко говоря, многократно меньше, да и гемора для активации эффектов куда больше. У держателей нвидиа карт это буквально пара кликов, ну и регулировка ползунков в оверлее игры почти везде через сваппер. Но что-то мне подсказывает, что в космических рейджерах и ко от длсс5.0 вот прям сейчас толка будет чуть больше, чем никакого вообще. И даже обычный решейд будет оказывать больше визуального эффекта, чем длсс.
    • Может кто-нибудь шарит за хорошие беспроводные мыши и клавы?    Подскажите пожалуйста конкретные модели, если кто разбирается. Клава нужна полноценная (104)   
  • Изменения статусов

    • axe66  »  SerGEAnt

      здравствуйте. можете добавить на сайт раздел для игры She’s Leaving и русификатор к нему? и как и куда вам скинуть фото и сам русификатор?
      [h2] Версия: 1.0.1 (от 22.05.2026)
      Совместимость: для сборки 20909321 [/h2]
       Информация:
      Машинный перевод моделью gemma2:9b-instruct с несколькими этапами автоматической перепроверки (модель "самопроверялась") и финальными ручными правками.
      Это не финальная версия — по мере нахождения ошибок перевода будут выходить обновления.
      Известные нюансы:
      * Возможны неточности и ошибки в переводе.
      * Некоторые элементы интерфейса остались без перевода.
       Установка:
      1. Запустить Russifier.exe
      2. Нажать "Выбрать папку"
      3. Выбрать папку с игрой и нажать ОК
      4. Нажать "Установить"
      5. Дождаться завершения установки и закрыть программу.
      После установки запустите игру и наслаждайтесь!
      Если заметили ошибки или некорректные формулировки — оставляйте комментарии, будем исправлять!
       
      Автор: Serjik Sokolov История изменений:   Версия 1.0.1 от 22.05.2026 - Установщик теперь автоматически определяет корневую папку игры, даже если случайно выбрана вложенная папка.   Версия 1.0.0 от 03.12.2025 - Релиз
      · 1 ответ
    • Perfect End Strange  »  SerGEAnt

      Привет, озвучку для Silent Hill 4: The Room выпустил энтузиаст под ником Perfect End Strange, а вы написали совсем другую студию, пожалуйста, исправьте эту оплошность
      · 0 ответов
    • Jimmi Hopkins  »  SerGEAnt

      я его уже открыл в свободный доступ, чтобы не потерялось среди новинок
      · 0 ответов
    • NekoNya  »  Onzi

      https://www.dropbox.com/scl/fi/4xncxr2tqy77vz4644q08/text_RU_FINAL.json?rlkey=xckxss3jkql4gjmc1ah6qjb5e&st=k5ql651f&dl=0 
       
      Вот, то что вышло. Извинюсь, что зря говорил, что помогу (
      · 2 ответа
    • serfly  »  SerGEAnt

      Доброго времени! Недавно столкнулся с проблемой автоперевода XUnity AutoTranslator BeplnEx iL2cc. Пару последних лет часто пользовался, теперь консольные команды виснут на стадии загрузки библиотек, хотя они есть там изначально. На GitHub есть подобные вопросы, но ни одного рабочего ответа я не нашел. А Вы что можете посоветовать?
      · 0 ответов
  • Лучшие авторы


×