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

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

1 час назад, DragonZH сказал:

В общем, чтобы точно алгоритм понять нужен код

надо скачать китайский юнити и изучать.

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


Ссылка на сообщение
В 13/9/2558 в 12:42 AM, DragonZH сказал:

Program for working with Unity archives.

  Description and Features (Show Contents)

UnityEX supports two modes of use - launch with the interface and batch file processing in console mode.
The main buttons are opening the archive, you can also drag the required file into the program window. After opening, a context menu is available by right-clicking on the list of files, where you can extract selected files with conversion or raw if conversion is not provided, as well as all the necessary files by type at once. Reverse packing in the interface mode is possible only by the "Pack files" button.
Unpacking and packing of files is performed next to the archive in the folder or from the Unity_Assets_Files \ [archive name] \ folder where Raw files or just files from the archive are located. The following folders contain files processed or converted in some way. For example, the Textures, Fonts, Sounds, Movies, Sprite, Mesh folders.

Textures — textures are source .tex files, the file itself can be only a header, the main data of the bitmap are in additional .resS files, converted to dds, png, ktx, pvr, crn, depending on the format and settings.
Fonts — source .font_raw, converted to ttf, otf.
Sounds — source .snd, the file itself is only a header, the main data of the sound track are in additional .resource files, converted to fsb.
Movies — source .mov, the file itself is only a header, the main data of the video track are in additional .resource files, converted to webm, m4v, mp4, ogm.
Sprite — source .sprite, converted to png, contain the same data as in textures, only the desired sprite is cut out with support for resizing.
Mesh — source .mesh, converted to obj.

The Mono folder contains a directory of recognized MonoBehaviour files (files that may contain text), initially these files do not have a name and by default have only a structure type number with a minus sign or number 114. From version to version this number and the selected default name can change, so for this there is a button “MonoBehaviour”, which recognizes names by the scripts related to them, also a part of the beginning of the original file is cut off a little, which can also change from version to version.

В папке Dump содержатся текстовые файлы разобранных файлов по шаблону структуры. Поддержка только в Ultimate версии. Подключенные шаблоны отображаются в gui режиме меткой True в правой стороне окна рядом с соответствующей структурой от файла с типовым номером. То есть в этих дампах можно менять строки не используя сторонний софт предназначенный для их вытягивания из бинарных файлов, ну, возможно, понадобится только ещё какой-то парсер что-бы достать строчки из этого текстового дампа, а также и вставить их. Ниже выложен EX_REPLACER_TEXT, там по скрипту регулярным выражением можно достать только нужный текст. Поддержка имеется для бандлов в них шаблоны расположены сразу в архиве, поддержка есть для вытягивания шаблонов (txt) из dll для assets архивов, посредством подключения программы dumper_dll_class, подключается из настроек с указанием папки где находится эта программа, а также там могут находиться и другие дополнительные программы для конвертации форматов. Подключать можно шаблоны xml, txt, xml можно подключать даже в виде структур с данными от файла, также можно подключать бинарные шаблоны из bundle файлов. Извлечение и вставка дампов структур файлов с данными выполняется в формате XML.
На проектах cpp2il такай поддержки получения шаблонов нет, так как нет dll (возможно только из бандлов из папки StreamingAssets), но благодаря подключению шаблонов, можно подключить шаблон полученный из другого проекта или из того же бандла от этого же проекта, тем самым можно получить дамп структуры с данными от файла, обратная вставка также выполнится по этой структуре. В программе есть проверка совпадает ли шаблон xml с содержимым в архиве по GUID, если он совпадёт то шаблон будет подключен в значение True, без сообщений. Также возможно частичное совпадение и шаблон тоже будет подключен, но насчёт точности тут нет гарантии, об этом будет сообщено. (Поговаривают, что dll можно получить, но только для проектов на андроид в которых есть .so файл, помимо global-metadata.dat)
Этот формат dump xml может пригодиться для правок каких либо числовых данных например от созданного шрифта SDF в юнити для внесения правок в файл метрик и адаптации его для запуска на другой игре или проекте.
Также для форматов LanguageSource и LanguageSourceAsset, чтобы получить необходимый текст, так как в этих локализационных файлах содержатся тексты всех языков используемых в проекте.

Для автоматической конвертации текстур из нестандартных форматов таких как CRN или битмапов BC6-7 DX10-12 в стандартные такие как DXT5 можно просто положить рядом с программой nwn_crunch.exe для crn и texconv.exe для форматов DX10-12. Ссылки на эти программы находятся далее рядом с плагинами для этих форматов.

Возможности:

  • поддержка версий архивов 4, 5, 2017, 2018, 2019, 2020, 2021, 2022
  • поддержка версий 2019 bundle и 2020 и выше имеется в платной версии Ultimate. (Работоспособность проверена до 2022.1.4 , в теории должно работать и выше).
  • поддержка AssetBundles(Unity3D) UnityRaw
  • поддержка AssetBundles(Unity3D) UnityWeb
  • поддержка AssetBundles(Unity3D) UnityFS
  • поддержка .splitX (Android)
  • поддержка .u3dext
  • поддержка bundle persistent
  • поддержка GUI и консольного режима
  • экспорт всех и выбранных файлов из архива в GUI режиме
  • экспорт всех файлов и файлов по типу из архива в консольном режиме
  • алгоритм массового импорта файлов из каталога извлечённых за один заход Размеры импортируемых файлов абсолютно не важны
  • английская локализация
  • поддержка архивов консольных платформ (PS3)
  • поддержка шрифтов ttf или извлечение метрики координат font_raw
  • поддержка текстовых файлов
  • поддержка распознания имён файлов monobehaviour и их типов по вложенному в них скрипту
  • поддержка конвертации текстур (DDS, CRN, KTX, PVR)
  • поддержка атласов по распознанному файлу monobehaviour с типом UIAtlas, разделение и собирание спрайтов, возможно изменение размеров картинок через пересоздание атласа в программах ShoeBox или TexturePacker с xml метрикой. Доступно в Ultimate версии.
  • поддержка .sprite и .SpriteAtlas 4.6.x, 4.7.x, 5.5.5, 5.6.2, 2017.4.х — 2018 — 2022. (Не гарантированно для 2017.2.х).  Доступно в Ultimate версии.
  • поддержка обработка текстур из внешних ресурсов ResS при извлечении файлов из assets
  • поддержка текстур Switch swizzle/unswizzle
  • поддержка видео файлов. Доступно в Ultimate версии.
  • поддержка аудио файлов. Доступно в Ultimate версии.
  • поддержка обработки звуковых файлов из внешних ресурсов resource при извлечении файлов из assets. Доступно в Ultimate версии.
  • поддержка извлечения mesh в obj и smd через “Вид GameObjects” (models, bones, textures), без анимации для старых версий 4-5 юнити, дальнейшей поддержки моделей не планируется.
  • поиск по именам файлов
  • поиск текста в файлах
  • поддержка добавления файлов. Доступно в Ultimate версии.
  • поддержка добавления ассетов. Доступно в Ultimate версии.
  • получение шаблонов из бандлов для всех файлов присутствующих в них возможность поддержки указана значением true в списке форматов. С 5 — 2023 версии и выше... Доступно в Ultimate версии.
  • получение шаблонов из dll для MonoBehaviour посредством сторонней программы dumper_dll_class. Необходимо множество значений из архива поэтому доступно только в Ultimate версии. Поддержка 5, 2017, 2018, 2019, 2021, 2022.1.x. (Отсутствует для 2022.2.х и не гарантированно для версий выше, так как начал отсутствовать Assembly-CSharp и начали появляться проекты на il2cpp, для таких проектов эта поддержка отсутсвует).
  • поддержка обработки и подключения вложенных шаблонов из бандлов и шаблонов из dll к файлам в архиве с преобразованием их в дампы. Доступно в Ultimate версии.
  • экспорт и импорт дампов файлов в формате xml. Доступно в Ultimate версии.

Download UnityEX yandex

Download UnityEX dropbox

Collection of bat files for console mode

UnityEX_Soft for additional file conversion and obtaining text dumps xml, the folder is connected from the UnityEX settings

Several xml templates for cpp2il projects

  List of changes (Show contents)
  Using Console Mode (Show Contents)

Для тех, кто вообще чайник, и не знает что это такое.

Что такое консоль?
Например, консоль виндовс Пуск->Стандартные->Командная строка или Пуск->Выполнить->cmd
Что такое запуск программы с параметрами?
Например, программу можно запустить с параметрами, идущими после имени файла UnityEx.exe “параметр 1” “параметр 2” “параметр 3”...
Не обязательно нужно выполнять запуск именно из консольного окна, так как это не очень удобно. Возможно, все включали консоль в HalfLife для введения читов, прописывая в ярлыке от hl.exe после имени файла -console, это и есть параметр запуска игры со своей консольной строкой, по-другому это ещё называется ключ. Но и запуск с ярлыка с параметрами тоже в нашем случае не удобен, но для сведения это лучше знать, не подойдёт, так как нужно обрабатывать разные файлы ещё это называется пакетной обработкой. Поэтому нужно запускать выполнение программы из файла с типом bat это текстовый файл, который содержит простой язык программирования для запуска приложений с параметрами. Этот текстовый файл предварительно создаётся например из txt и переименовывается на тип bat или берётся за основу уже готовый.

Что такое консольный и графический режим?
Это запуск программы (приложения) в консоли. Бывают консольные приложения, и гуи с графическим интерфейсом, UnityEx содержит и тот и другой режим, запуск через консоль выполняется с параметрами, в гуи же используется графический интерфейс. Например запуск консольного режима производится с применением текстовых bat файлов рядом с программой и архивами, которые в свою очередь и выполняют необходимые действия.

Например, для обработки всех *.assets архивов и извлечения из них всех текстур используется такой простой код.
for %%a in (*.assets) do UnityEX.exe export "%%a" -t dds,cru,pvr
pause
Файлы bat, assets и UnityEX.exe все находятся в одной папке. assets файлы перебираются и с помощью UnityEX.exe распаковываются задачей export, в место "%%a" будет подставляться имя архива, и так по всем assets файлам, так как указана маска *.assets. ключ или ещё настройка -t dds,cru,pvr она включает в себя два параметра первая -t ключ, а после неё идут необходимые типы файлов, которые нужно обработать (полное описание этого ключа описано ниже). Далее pause необязательная команда, она просто оставляет консольное окно открытым после завершения работы. С полным списком консольных команд можно ознакомиться в интернете, но по идее нужно знать только cd, md, del, copy, xcopy, echo, for, if остальное не очень нужно, ну кроме задания переменных командой set и замены строковых данных в этой переменой например для изменения пути в этой переменной. Для for иногда идёт с /r это цикл с проходом по файлам которые находятся даже в папках. Для улучшенного копирования xcopy используются /Y /E замена при копировании Yes и E хз, но это создаёт папки, а также перед ним echo f| echo d| распознание того что копируется, файл или директория. Для if exist проверка существования файла. Это всё можно погуглить. Ну и для замены в переменных используя циклы необходимо в начале указывать setlocal enabledelayedexpansion.
В общем это всё кратко и поверхностно, чтобы полностью разобраться и как писать эти команды нужно искать это в инете.

Более сложный пример для разбора разных андроид архивов и level файлов без типа. 

for %%a in (*.assets;????????????????????????????????;level*.split0;*.assets.split0) do UnityEX.exe export "%%a" -t ttf,txt

? в маске это неизвестный символ, но количество вопросов указывает их количество, например для такого файла 0b0ecf59168514cb1adbe28cb079b1f7
Потом маска для .split0 файла от него подхватываются остальные .split1 .split2…

Все MonoBehaviour могут быть извлечены через настройку (-t 114), типы файлов с отрицательным числом.

Описание настроек от версии 1.10.1.0, также более свежее описание можно узнать запустив программу из консоли с параметром UnityEX.exe help

UnityEX автор DragonZH

Использование:
               UnityEX задача <архив unity> [настройки]

задача:
  export
    Распаковать все файлы из архива в каталог \Unity_Assets_Files\имя_архива\
  import
    Запаковать все файлы в архив из каталога \Unity_Assets_Files\имя_архива\
--------------------
  exportbundle
  importbundle
    Распаковать/Запаковать bundle в архив из каталога \Unity_Assets_Files\имя_архива\Bundle
  none
    Открытие асстета с обработкой другими настройками.
--------------------
  asset2objectlight
    Распаковать объекты в лёгком режиме. Что крепится к GameObject и неполный путь дерева.
  asset2object
    Распаковать объекты в обычном режиме. Что крепится к GameObject и полный путь дерева.
  asset2objecthigh
    Распаковать все объекты и дерево в каталог \Unity_Objects_Files\имя_архива\ (not work=asset2object)
  object2asset <(в место архива используется ListObjects.csv)>
    Скопировать все уже извлечённые объекты с переименованием в безымянные файлы от asset в каталог \Unity_Assets_Files\имя_архива\
---------------------------------------
  tex2dds конвертация tex файла в dds
---------------------------------------
настройки:

    -t <тип> обрабатывать файлов по типу (-t ttf,txt,114,tex,dds,png,crn,ktx,pvr,obj...)
      Все MonoBehaviour могут быть извлечены через настройку (-t 114), типы файлов с отрицательным числом в старом виде, в новом они извлекаются также.
      [-t png,pvr,crn] только конвертация png и reimport png. And pvr, crn convert to png.
      [-t dds,pvr,crn] только конвертация dds и reimport dds. And pvr, crn convert to dds.
    -argb конвертация crn, pvr, dds dx10 в format argb. (import png to argb)
    -dxt5 конвертация crn, pvr, dds dx10 в format dxt5. (import png to dxt5)
    -neclips_type отключить режим eclips, который после конвертации в обычные форматы убирает crn, pvr, fsb файлы, а .pvr.dds, .crn.png, .fsb.wav преобразовывает в .dds, .png, .wav с возможностью запаковки этими обычными форматами. С отключенным режимом eclips запаковка произойдёт в файлы .crn, .pvr с сответствующим типом из оригинального формата текстуры из ассета. По сути просто затеняет/убирает изначальные типы после конвертации.
    -nconv_to_simple отключает конвертацию в обычные форматы dds (argb, dxt5) или png из crn, pvr. Извлекает по возможности только исходный битмап в dds dx10. Ключи -argb -dxt5 -neclips_dx10 становятся не активными.
    
    -tex_swizzle применять или нет swizzle (для switch).
    -tex_disable_encrypt отключение чтения шифрования текстуры.
    -ntex отключение добавления расширения .tex в Texture2D.
    -nft отключение переворачивания текстур dds.
    -nct отключение конвертации текстур, извлечение полного файла .tex с битмапом из .resS.

    -mb_new обрабатывать MonoBehaviour с новыми именами файлов и в контейнере.
    -mb_create_info создавать инфо csv файлы.
    -dump конвертация дампов работает только с ключом -mb_new.
    -f_raw обрабатывать шрифты в контейнере с типом fnt_raw.

    -ndc отключение захвата консольного, с захватом возможна ошибка на x64ОС.
    -p выбранный путь для операций с файлами (-p "PATH"). По умолчанию где находится архив.
    -f выбранная папка для операций с файлами для всех архивов (-f "ALLASSETS"). По умолчанию [где находится архив]\Unity_Assets_Files\
    -ext имена папок архивов с их расширениями.
    -ncomp без сжатия архивов на запаковке.
    -original_header_bundle оставлять оригинальную шапку у бандлов (предназначено для защищённых от изменения размера бандлов, соответственно сам размер архива тоже не должен изменяться, можно лишь только изменять данные поверх).
    -res [файл нового ресурса] импорт текстур в resS файл. Опционально с именем файла нового ресурса, по умолчанию в прежний.
    -skip_ud пропуск неизвестных данных в начале каждого файла.
    -skip_error пропуск ошибок.
Ultimate version поддержка при импорте файлов
    -add_assets [имя добавляемого файла] добавление assets файла в виде ветки включения.
    -add_file [имя добавляемого файла] [ID типа файла] [ID Path файла] добавление файла в архив при [ID Path файла]=0 запишет следующим от последнего в архиве [ID типа файла]=(128 Font, 28 Texture2D).
    -add_struct_file [добавляемый файл структуры]
    -add_struct_base [ID типа файла из базы]
    -rename_file [PathID] [Name_File]

    -ex_struct извлекает и собирает шаблоны структур юнити в файл базы "BaseTemplateUnity.structure"
    
    Режимы обработки спрайтов, по умолчанию берётся значение из реестра
    -sprite_xml_indices режим спрайтов с файлом индексов для изменения, перемещает спрайт на новые координаты, может менять ширину и высоту.
    -sprite_xml_auto режим спрайтов перемещает спрайт на новые координаты, может менять ширину и высоту, заменяет блок индексов меша на полный спрайт, а не дополнительно вырезанные кординаты в спрайте.
    -sprite_newtex режим спрайтов новой текстурой, вставляет спрайт новой текстурой в ассет (не работает на бандле так как необходимо добавление файла в конец) Изменяет индексы меша на полный размер спрайта.

    -skip_pathid не заменять PathID и FileID при импорте дампа, по умолчанию значение из реестра.
    -write_pathid заменять PathID и FileID при импорте дампа, по умолчанию значение из реестра.
        
    -not_rewrite_null_to_res - not rewrite null to res 
    -dds_force_import_to_crunch - принудительно импортировать все dds в crn формат при импорте в архивы.

--------------------
задача:
  list
    Создать список файлов архива
настройки list:
    -l [list.tsv] по умолчанию <name_archive>.tsv
--------------------
задача:
  search
    поиск строки
настройки search:
    -sp [string] что нужно найти, получение строки поиска из параметра
    -sf [file] что нужно найти, получение строки поиска из файла первой строки в нужной кодировке
    -lf [file] вывод лог файла
    -ef экспорт найденных файлов
    -nr без учёта регистра
--------------------

  При запуске без параметров запускается графический интерфейс.
  Схемы конвертации:

  ┌───┐              ┌──────┐
  │dds│ <═══════════ │      │
  │ktx│    ┌───┐     │assets│
  │pvr│ ═> │tex│ <═> │      │
  └───┘    └───┘     └──────┘
  Текстуры iOS ktx экспортируется только через настройку -t ktx.
  По умолчанию конвертируются в pvr.
  ┌─────────┐                                    ┌──────────┐   
  │   DDS   │     ┌────────────────────────┐     │compressed│ <═
  │ARGB-8888│ <═> │The Compressonator - AMD│ <═> │   DDS    │   
  └─────────┘     └────────────────────────┘     │ATC_RGB4  │   
                                                 │ATC_RGBA8 │ ═>
                                                 └──────────┘   

  ┌───┐    ┌──────────┐    ┌───┐              ┌──────┐
  │   │ <═ │          │ <═ │   │ <═══════════ │      │
  │dds│ ═> │crunch.exe│ ═> │crn│    ┌───┐     │assets│
  └───┘    └──────────┘    │   │ ═> │tex│ <═> │      │
                           └───┘    └───┘     └──────┘
        
  CRN конвертируется через crunch.exe автоматически, если crunch.exe находится к корне с UnityEX.'

  ┌───┐    ┌──────┐
  │txt│ <═ │      │
  │xml│    │assets│
  │ttf│ ═> │      │
  └───┘    └──────┘

  ┌───┐               ┌──────┐
  │   │ <════════════ │      │
  │obj│    ┌────┐     │assets│
  │   │    │mesh│ <═> │      │
  └───┘    └────┘     └──────┘

     ┌──────────────┐    ┌──────────┐
  <═ │ ARCHIVE.TEMP │ <═ │ UNINY3D  │
  ═> │not compressed│ ═> │compressed│
     └──────────────┘    └──────────┘
 

--------------------

 

  Programs for processing formats and other information (Show contents)

Bundle
Снятие защиты хеширования с бандлов в папке [имя]_Data\StreamingAssets\aa\
Изменить файл catalog.json

{
Неработает на новых версия юнити, просто оставлено. 
Убрать данные base64 в
"m_ExtraDataString":"……",

Заменить на
"m_ExtraDataString":"", 
Проги для json
Optimize_JSON упрощает просмотр json файлов (Но со снятой оптимизацией в юнити это не работает, только для просмотра.) https://disk.yandex.ru/d/sFrtXJE3-Ke06Q
UnPackerBase64 конвертирует в данные https://disk.yandex.ru/d/sTuIOnaYPiFWww
Также в этом файле json можно изменить путь к расположению файлов, которые находятся в бандлах, например для создания своего бандла и чтения изменённых файлов из него.
Автофикс скинуть в папку с игрой запустить bat (бэкап создастся) https://disk.yandex.ru/d/lo1igeCip9J7Sw
Добавлено 10.08.2022
На новых версиях юнити возможно это не прокатит.
Нужно распаковывать m_ExtraDataString из base64
Искать нужное имя бандла в utf16

И например  далее от него
"m_Crc":2400242126,
Заменить пробелами эти символы. Удалять ничего нельзя это бинарный файл эти данные имеют размер выше.
Потом естественно это изменённое нужно запаковать и вставить обратно в catalog.json в m_ExtraDataString. 
Здесь нужна автоматизация процесса, это лишь ручной способ для знающих.
}

Автоматизация правки отключения хеша

https://disk.yandex.ru/d/-w4b1VTjYtM3Ow

Распаковать какой нужно original_file\catalog.json
В unpack_list\catalog.json.txt
Поменять "m_Crc" на "d_Crc", у всех или только у нужного бандла.
Запаковать, результат будет в done_file\

Также заодно и автоматизация для хешев из AssetBundleCatalogs.AssetBundleCatalogs
https://disk.yandex.ru/d/YGINT805IdVyPQ
Но тут для FateSeekerII для другого перенастраивать нужно дампы txt для замены в бинарнике с хешами.

-------------------------------------

Бандл при запаковке размером свыше 500-800 mb возможно будет запакован без сжатия, при ошибках необходимо отключить сжатие вручную. Бандл будет просто в разжатом виде. Например в консоли ставить ключ сжатия -ncomp в бат файле, или в гуи в контекстном меню на правую кнопку в “Unity3D” выключать “Cжатие Unity3D”.
https://i.ibb.co/v4gM296/image.png


Бандлы data.unity3d возможно распаковывать через Export_bundles.bat (UnityEX.exe exportbundle "data.unity3d"). Там где находился сам файл должны находится распакованные resources.assets и прочие файлы полученные при распаковке, а сам data.unity3d должен быть удалён. Такая работ проектов в распакованном виде тоже возможна. Особенность этого бандла в том, что он просто сжимает рабочие ассеты и они могут работать распакованными, а также этот бандл не содержит шаблонов структур в отличии от тех которые находятся в StreamingAssets\aa\.

Настройки виндовс как подключить юникод в названиях файлов с иероглифами или исправить сохранение таких файлов, если они не сохраняются.
UnityEX не поддерживает пути utf16 содержащих юникод это может произойти на виндовс с китайским языком. Для этого нужно переключить язык виндовс на английский или русский.
Панель управления → Региональные стандарты → Дополнительно → Изменить язык системы (поменять язык)
Если включить галочку Бета версия Юникод UTF8 то файлы с юникодом в имени будут называться правильно, если это вам необходимо, с выкл. будут выглядеть примерно так ж–№ж­ЈзІ—е®‹з®ЂдЅ“ но тоже будут работать.

UnityEX сжимает только бандлы размером до 300мб. Здесь имеется сторонняя прога для сжатия бандлов, если вам нужно уменьшить размер архива после импорта.
https://pixeldrain.com/u/QFK8JrU6

Типы файлов Unity которые поддерживает UnityEX
Для ассетов
image.png
Для бандлов помимо UnityFS может быть сигнатура UnityWEB
image.png

Главное, чтобы была написана любая версия юнити, если такое есть значит это архив юнити.

Файлы .resS и .resource
Это файлы относящиеся к архивам .assets и возможно level файлам. Они не открываются напрямую, а обрабатываются с помощью открытия самих архивов от них. В .resS содержатся данные битмапов (c версий юнити 2018 и меш данные), а в .resource звуковые данные (FSB5, OggS, c версий юнити 2018 и видео данные).
Например распаковка текстур из подхватываемого файла resources.assets.resS из resources.assets идёт в Unity_Assets_Files\resources\Textures\res_resources\
(а распаковка данных уже находящихся в resources.assets идёт в Unity_Assets_Files\resources\Textures\)
По умолчанию запаковка данных битмапов идёт в сам assets, но можно и выполнить и запаковку для тех файлов, которые уже были в .resS файле, например ключом -res из консольного режима или в гуи нужным переключателем, это ускорит запаковку при больших размерах ассетов. Также через консольный режим можно выполнить запаковку в новый .resS файл, если указать после ключа новое имя -res resources_RUS-RU.resS, именно так перебив (.assets на такую же длину _RUS-RU) это также позволит ускорить запаковку в большие assets файлы, но и без изменения самого resS файла.
tex файлы бывают двух видов только шапка без битмапа (имеют небольшой размер), и уже собранные шапка и битмап из реса.
snd также только в рес части находится сам звуковой файл.

Текстуры:

BC4, BC6, BC7 — плагин для фотошопа Intel Texture Works 
https://software.intel.com/content/www/us/en/develop/articles/intel-texture-works-plugin.html
CRN — Crunch официальный сайт https://code.google.com/archive/p/crunch/
https://yadi.sk/d/rOqX4VPFFSOlRQ
(В архиве в MD находится модифицированный для crn unuty 2018 и официальный в OF. UnityEX автоматически конвертирует crn2dds, если конвертер находится рядом с исполнительным файлом. Обратно сконвертированные dds2crn, возможно, будут не работать, но это можно обойти запаковав вместо файла с последними типами .tex.crn и tex.crn.dds уже сам файл .tex.dds с любым стандартным битмапом).
PVR, KTX — PVRTexTool или его плагин для фотошопа
ATC_RGB4, ATC_RGBA8 — The Compressonator AMD https://gpuopen.com/compressonator/
BC6-7 и другие — texconv.exe https://github.com/microsoft/DirectXTex/releases
 

Плагины для открытия текстур в Photoshop:
Плагин для PVR есть в PVRTexTool и находится по пути
(Dir PVRTexTool)\Imagination\PowerVR\GraphicsSDK\PVRTexTool\Plugins\Photoshop\
Плагин 
для DDS можно использовать Nvidia
Плагин д
ля DDS DX11 можно использовать Intel (IntelTextureWorks + Nvidia) Также этим можно открывать DDS c прозрачностью как у PNG формата без альфа канала.

Также есть такой простенький конвертер текстур.
https://disk.yandex.ru/d/KjGURiyfkuXHhw
Он может конвертировать в разные форматы типов. (dds также разные форматы, если указать какой нужен).
files тут файлы для обработки
convert тут будет результат
ConverterTexture.bat сейчас в png установлен
Самая фишка
FixFormatToOriginal.bat там как бы из оригинального формата файла, которые лежат в папке files_original
Конвертирует соответствующие файлы из папки files в соответствующий формат оригиналу.

Звук и Видео:

FSB — fsb_aud_extr, fmod_extractors, возможно, нужна библиотека fmod.dll или fmodL.dll 
http://aluigi.altervista.org/papers.htm#fsbext
https://disk.yandex.ru/d/vATDHoL2e6pvgw
https://disk.yandex.ru/d/_PLYCTJbf-G2yw

Для обратной запаковки можно воспользоваться fmod sample bank generator ex 1.68 Он сжимает конечно в FSB4, но юнити их подхватывает либо через FMOD Studio.
https://disk.yandex.ru/d/mJy7LcTDy2d68g
Прога файлами
https://disk.yandex.ru/d/I9sS992DwtK9GQ
Тестовое видео замены звука
https://cloud.mail.ru/public/LRdE/edAk3ue8C

Перепаковка видео на бандле такая же, действия текстом:
1. В верху справа переключаемся на ресурс в бандле и извлекаем.
2. Переключаемся снова на первый архив там где видео.
3. Запаковываем/Извлекаем видео.
4. Переключаемся снова на ресурс в бандле и запаковываем.

Sprite: Формат содержащий координаты нарезки текстур, в основном из текстур атласов.

В версии 1.9.5.0 Ultimate добавлена поддержка извлечения спрайтов. А также обратная вставка в текстуру (атлас) из которой был получена, в координаты указанные в xml при извлечении, по умолчанию там находятся координаты оригинального места, их можно поменять, чтобы переместить спрайт в другое место. Также поскольку в текстурах есть поддержка увеличения, то можно увеличить сам атлас и поставить спрайт на добавленное пустое место. Тем самым получится упростить обновления, так как при обновлении все спрайты поменяются местами, но с увеличением текстуры (атласа) новые изменённые останутся на своих местах. С кодом для увеличения по ширине пришлось повозиться, из-за того что в юнити непростой квадрат спрайта, а там используется 2D полигональный меш.
В первом режиме “Режим вставки .xml+.indices” эти значения выносятся в файл .indices. Уже не столь нужный режим. (Вкратце по нему, эти файлы можно получить из других спрайтов или даже созданных в юнити с нужным квадратом, чтобы отобразить добавленную часть спрайта.
Второй режим “Режим вставки .xml+automesh” выбран по умолчанию, тут просто вставляется спрайт на своё место и автоматически создаётся меш. (Для этого режима есть параметры в xml x и y для изменения оригинального места вставки, plus_w и plus_h для возможность подровнять ширину или высоту, на крайний случай).
Третий режим “Режим вставки новой текстурой” Добавляет текстуру спрайта не в атлас, а новым файлом в архиве. То есть, рядом находящиеся спрайты уже никак не повлияют на вырезку. Координаты вставки в данном случае даже не потребуются, так как они всегда будут x=0 y=0, тем самым это упростит обратную вставку c увеличенным размером спрайта под новый текст.
Ещё одно поскольку в юнити перевёрнутые текстуры, часть нестандартных форматов DX10 BC6-7, pwr, ktx, не переворачиваются и спрайты на них не обрабатываются, сначала придётся извлечь эти текстуры и сконвертировать их в стандартные dds (dxt 3-5, 8888) или png, а потом уже делать извлечение из этих атласов. Или просто положить рядом программу texconv.exe.

Текст и MonoBehaviour
Бинарного вида файлы MB могут содержать текст (по умолчанию имею тип 114 или отрицательное число).
Поддержка распознания имени и типа по скрипту добавлена в версии 1.8.6 кнопкой MonoBehaviour и в консольном режиме -mb_new.
Прежние названия эти файлов были такие resources_00012.-377, теперь же они будут иметь своё имя и текстовый тип от включенного в них скрипта и названы например так 2_Opened_CheckForLoot.Text
Эта поддержка поможет частично разобраться в каких файлах, что лежит, где текст, а где ненужные файлы с контроллерами управления. И упростит адаптацию к последующим обновлениям игры, после которой нумерации файлов и отрицательные типы изменялись, следовательно и имена файлов, а при таком распознании, более вероятно, они не поменяются. Также в гуи режиме есть информация какие скрипты в настоящий момент отключены, какие имеют собственное имя, а не от вышестоящего объекта, и содержит название библиотеки из которой вызывается скрипт с данными от этого файла MB. Благодаря этому распознанию имени открывается лучшее представление о файлах класса MonoBehaviour, так как в нём содержатся практически всё самое нужное тексты и метрики координат от шрифтов и даже не стандартные спрайты UIAtlas.

Поиск текста.
Вам нужно искать текст c помощью TotalComander:
1. В assets. Кодировка UTF8.
2. Попробовать поискать в Assembly-CSharp.dll или global-metadata.dat, если игра il2cpp. В кодировке текста UTF16.
3. Распаковать все bundle, с помощью Export_bundles.bat. И искать в них текст также как и в assets. (bat файлы лежат в теме UnityEX).
И только потом искать уже в каком файле MonoBehaviour лежит текст с помощью поиска в UnityEX.

Для текста из MB для типов .TextMeshPro и стандартного .Text (не локализационных файлов .I2Language) можно изменять позицию строки на экране в игре, область квадрата (rect) там где должен находится текст и размеры шрифта для этой конкретной строки. Размер шрифта находится в этом же файле, а вот для позицирования нужно найти файл Transform от него, для этого нужно переключиться в UnityEX в “Вид GameObjects” и найти файл с изменяемой строкой, далее выше по дереву будет находится нужный файл Transform. Шаблоны структур для Ultimate версии этих файлов имеются в сборнике (BASE_TemplateXML_For_CPP2Il), для того чтобы легче было понять, где что находится.

Шрифты SDF
Состоят из текстуры обычно с аффиксом _SDF, и бинарного файла обычно с типом *.TMP_FontAsset.
Как найти? Текстуры найти просто это файлы с именами Atlas или SDF. С бинарными метриками всё сложнее. Можно распознать MonoBehaviour и в них, которые были с минусом переименуются, шрифты должны быть с типом FontUI или TMP_FontAsset, через поиск по Font должно что-то найтись. Только потом придётся, если нужно будет при запаковке снова делать распознание, а файлы с минусом быстрее пойдут в запаковке.
Либо другой вариант искать по тексту файлы в которых находится имя текстуры или часть её, сами текстуры тоже перед всем этим нужно найти просматривая текстуры, ну а найденные бинарники это и будут координаты шрифтов. Также рядом файлы по типу, тоже будут координатами других шрифтов.
В паке с батниками есть запуск распаковки только шрифтов Export_FontAndTextures.bat

Для старых версий юнити 4-5
Информация для помощи создания SDF (distance field) размытия текстуры шрифтов.
Плагин https://catlikecoding.com/unity/documentation/CCDistanceMapGenerator/
Файлом https://yadi.sk/d/S9x2LqCe3HHYjQ
Чтобы работал, нужно добавить в юнити это https://yadi.sk/d/ZNB04inH3HHYrj
Это всё старое и применялось только на 4-5 unity, и делались метрики в BMFont и конвертировались в fntxml_to_unityfnt.
(Ну и мало ли может пригодится. Вот софт https://yadi.sk/d/4RBYnlXB3N6cNA
Но через софт как-то по левому делается, даже точно уже не помню как, в основном через юнити и делал. В софте увеличивать текстуру нужно в 8 раз вроде, потом через софт прогонять вместе с координатами, которые должны уменьшиться.) Устаревшее.

Также существует другой вариант создания шрифтов SDF TextMeshPro через саму юнити.
Используется для версий 2017, 2018, 2019 и выше.
Создавать шрифт на движке необходимо на соответствующей версии от игры или примерно рядом находящейся версии для совпадения структуры. Это также ещё можно проверить сравнив GUID типов метрик шрифта (.TMP_FontAsset), в дефолтовой версии это доступно, справой стороны находится.

Для 17, и старых форматов TextMeshPro оканчивающихся на GUID 84D1172F6E0B250607B989F4EA9CABFA
00389A682EF3A61D14D3389BA997B79084D1172F6E0B250607B989F4EA9CABFA
7623F19A6E083D40BAE2EE235A6AA24384D1172F6E0B250607B989F4EA9CABFA
D02128385050A1C20919A3D4030205493EDA7F221D136AC359347F363766A44F
пригодится плагин https://yadi.sk/d/6gZWrrEozS0_cw
Вроде бы даже эти координаты старого формата подойдут и к версиям юнити 4-5.

Создание шрифта в самой юнити
1. Window -> TexMesh Pro -> Font Asset creator (по необходимости импортировать TextMeshPro) (указать нужный pading обычно 5 для размера 80, можно узнать из оригинала) (создать текстовый файл с вашими символами и пунктуацией и добавить сюда для генерации этих символов) (остальное разницы не имеет, нажать генерацию шрифта).
Файл символов для русского языка теперь есть в сборнике с бат файлами.
2. Добавить объект текста UI>TextMeshPro
3. Перетянуть на его свойствах там где прописан шрифт SDF LiberationSands, свой созданный шрифт.
4. Собрать проект.
5. Извлечь шрифты также как и оригинальные. По возможности с дампом. Можно воспользоваться бат файлом Export_FontAndTextures_dump.bat (UnityEX и ассеты рядом).
Так создаётся шрифт на юнити достаётся его метрика (дамп) и текстура и шрифт, далее он адаптируется к игровому. Под адаптацией подразумевается исправление PathID на материал и атлас текстуры, и если понадобится также изменить размер шрифта по необходимости. Это можно сделать на текстовом дампе структуры от версии Ultimate.

PathID — это номер файла или его идентификатор в архиве, при обновлении игры этот идентификатор может смещаться и соответственно изменяться, в следствии чего созданные файлы со старыми значениями этих идентификаторов не подойдут к новой версии игры и просто не запустится.
Получается в файле метрик PathID значение ссылки на атлас текстуры должно соответствовать её значению из оригинального файла метрик и ещё есть PathID на материал, с ним также точно, если они не будут соответствовать, то шрифт неправильно будет работать. Их нужно править после создания шрифта на оригинальные значения, так как в новых созданных на движке юнити они будут другие. Также можно изменить размер шрифта, если векторный оказался больше оригинала. Особенность только в том, что для уменьшения нужно увеличивать значение. Это значение представляет собой размер шрифта, и когда текст обращается к шрифту, он изменяет буквы под свой размер шрифта, на разницу этого значения. Cоответственно размер текста 20, а размер шрифта 50, он уменьшит на 30, так это работает, и да получается сами размеры текста находятся в другом месте в коде или рядом с самим текстом в MB (.Text или .TextMeshProGUI).
В UnityEX же есть поддержка вставки дампов без замены этих значений, тоесть они остаются оригинальными с параметром при вставке дампа -skip_pathid. Да в юнити посылочная система адрессации к файлам, не как в анреале по именам, поэтому возникают такие небольшие трудности. Получается что при вставке дампа с этим параметром можно даже не восстанавливать старые значения и такая вставка через консольный режим адаптирует шрифт для любой версии игры.
Извлечение дампов доступно в Ultimate версии. Но вставлять их можно в обычной клиентской части для вставки дампов через консоль с этим параметром.

Немного о шаблонах и дампах (добавлено 23.11.2023)
Шаблон — это файл получаемый из кода проекта с папкой Managed где есть dll файлы для простых архивов .assets и data.unity3d сами эти архивы не содержат шаблонов. Также их можно получить из бандлов в ..._Data\StreamingAssets\aa\… Шаблон содержит структуру файла и типов данных. Он может содержать структуру не до конца файла, тогда остатки данных запишутся в тег футера. Форматы шаблонов это .txt и .xml. XML формат содержит дополнительные данные тип самого файл и его GUID(идентификатор структуры). Структуры от версии юнити и T
extMeshPro могут меняться, соответственно будут меняться и GUID. Из проектов il2cpp обычно с папкой il2cpp_data(также может быть редко Managed), особенность отличия что в проекте il2cpp нет dll файлов в этих папках, там находится global-metadata.dat, из этих проектов нельзя получить шаблон для простых архивов .assets и data.unity3d, остаётся доступным лишь получение шаблонов из бандлов. Также шаблоны можно изменять вручную под новую структуру с новым GUID, но это уже знания программистов, тут нужно смотреть какие данные были добавлены или убраны и также изменять шаблон с сопутствующим изменением GUID под новую структуру, чтобы UnityEX приняла его.
Где-то с версии 2022.2.3f1 и выше получение шаблонов из кода dll возможно не получится, это проблема дамперов. Остаётся ручное исправление или взятие соответствующих из бандлов.
Дамп — это файл созданный из шаблона, в нём содержится та же самая структура шаблона, а также сами значения данных из обработанного файла. Дампы имеют тип .xml (.txt возможен тоже). Дамп также можно использовать в качестве шаблона, содержащиеся значения просто не учитываются.

Правки через дамп версии Ultimate
В Ultimate версии появилась возможность подключать шаблоны структур, тем самым можно подключить к файлу метрик соответствующий шаблон.
Главное, чтобы после создания нового шрифта на движке юнити совпадал GUID его можно узнать в UnityEX справа на типе метрик шрифта. Обычно это достигается, если делать шрифт на юнити похожей версии, рядом находящейся. Даже если они не совпадают можно сравнить шаблоны и в новом шрифте подправить структуру убрав или добавив оду две записи, разумеется если отличия небольшие, также исправив GUID.
Начиная с версии UnityEX 1.10.1.5 следующие перемещения необязательно делать, можно просто включить функцию, Damp Structure → NotReplace_PathID
или ключ в консоли -skip_pathid.
В дампах необходимые значения для переноса из оригинального файла метрик в новый, находятся в тегах “material -> m_PathID”, “m_AtlasTextures -> m_PathID”. Размер находится в значении “m_FaceInfo -> m_PointSize” размер ненужно менять, он масштабируется автоматически он лишь для сведений при создании, обычно делаются просто большого размера например 100, главное, чтобы все символы просто влезли при создании. Также нужно восстановить оригинальное имя m_Name, если вставка и получение raw будет на оригинальном assets.
На проектах cpp2il возможно подключить шаблон из файла, вот пример от версии 2019.4.0f1 может и к рядом версиям подойти, сравнение идёт не по типу, а по GIUD от типа структуры, номера типов могут изменяться, но идентифицированные (распознанные) MonoBehaviour практически всегда с одним и тем же типом в разных проектах TMP_FontAsset. Поэтому лучше такие файлы заранее распознать, если есть такая возможность. К тому же не придётся переносить дополнительные данные PathID от m_GameObject и m_Script из оригинала при создании нового шрифта.

Также это всё можно сделать через адаптер переноса значений PathID из оригинала в новые дампы.
https://disk.yandex.ru/d/rOf5aXpB2h1ieQ

Также в новых версиях UnityEX можно вставлять дампы без замены PathID. То есть если GUID совпадает как и шаблон. Упомяну шаблоны могут быть одинаковыми, а GUID отличаться можно просто его заменить в xml, даже так. Ну и после создания шрифта в юнити и GUID совпадает, можно просто этот дамп запаковать с включённой настройкой в контекстном меню DampStructure>NotReplace_PathID, или же при запаковке через консоль с параметром -skip_pathid

Список версий TextMeshPro с соотношением GUID
4.0.0-pre.2 = 2022 GUID 95A18F96F4201D2D26DED9CA2123D2AD5A5A277347DB0BFDE9CD841D879FBDEF
4.0.0-pre.2 = 2021 GUID 2F2E88E9D00460379CA198F53F4F032A5DF50B782794BBB358989E140EA68000
3.0.6 (эта версия установлена по умолчанию где-то с 2020 до 2022, но она может меняться по структуре) = 2020 GUID 8A3A4FD52F8BE968F65F978E60AF78E2300FD99066F8C288E85F5E81CE65FE34
2.1.1 = 2020 GUID 8A3A4FD52F8BE968F65F978E60AF78E2F0786811516F7DE8BEFD7A3E181E567A
1.4.1 = 2017 GUID 8A3A4FD52F8BE968F65F978E60AF78E235A9693C388776AAF487636491A20F11
1.4.1 = 2020 GUID 8A3A4FD52F8BE968F65F978E60AF78E2A9F049C3DC82BB36FDB142E4D6A2658D
3.2.0-pre.4 = 8A3A4FD52F8BE968F65F978E60AF78E2220F8E76B87FD10CA65687A710C5FC26
2.2.0-preview.3 = 8A3A4FD52F8BE968F65F978E60AF78E22ADA106502C7EC666EFE839C94EEFF3A
3.0.1 = 8A3A4FD52F8BE968F65F978E60AF78E2F0786811516F7DE8BEFD7A3E181E567A
3.0.3 = 8A3A4FD52F8BE968F65F978E60AF78E2300FD99066F8C288E85F5E81CE65FE34
1.1.0 = FC68346A811CB3593CF829B8A087ED8C75138F822C64030260EDA9471996857B
1.4.0 = 8A3A4FD52F8BE968F65F978E60AF78E201516CA6B62C750FE55BBD4200234B20

Также соотношение версий можно посмотреть в BASE_TemplateXML_For_CPP2Il.rar (ссылка выше)
BASE_TemplateXML_For_CPP2Il\TMP_FontAsset\
А в файле Version unity engine default TMP.txt написаны версии, которые идут по умолчанию и те версии, которые можно установить на конкретной юнити.

https://github.com/needle-mirror/com.unity.textmeshpro/releases?page=3
Install
Windows>Package Maneger>Plus>Add package from disk
Или установить другую версию, что доступна в 
Windows>Package Maneger>TextMeshPro
Для установки с интернета может понадобится VPN.

Также доступен другой адаптер.
Делает наоборот, не ссылки переносит, а сами координаты. Но и здесь не нужно заморачиваться с GUID, чтобы он совпадал.
Он переносит только координаты и символы, так же размеры текстуры и размеры шрифта. Не переносит какие-то ректы, не знаю даже для чего они и остальные значения. Правда из-за этого что не всё переносит может шрифт и хуже будет выглядеть.
https://disk.yandex.ru/d/_BY216S2zpdlHQ
Adapting_fonts созданные дампы
Original_fonts оригинальные дампы
Done_Adapting результат
Этот адаптер лучше применять когда структуры всё-таки хотя-бы похожи друг на друга, например для версии 3.0.6 TMP, которая может отличаться по структуре, но всё равно они почти похожи.

Небольшая инструкция способом создания шрифта соответствующей версии TextMeshPro
Извлечь шрифты через батник (Export_FontAndTextures_dump.bat или Export_FontAndTextures.bat для il2cpp). 
Если не получилось распознать имена файлов (Mono\ или Dump\ не извлечены) то извлечь файлы “.–[номер]” без распознания имён файлов, это вручную файлы координат искать. Обычно размер 5-30 кб файлы с отрицательным типом, также по поиску внутри файла может быть название шрифта и буквы “SDF”.
Потом нужно знать GUID от типа файла справа в списке, из контекстного меню можно узнать или если дамп извлечётся там тоже есть.
Извлечение это лишь для того чтобы имя файлов получить текстур и файлов координат.
Но если для способа адаптации (Не сопоставимых GUID), нужны будут и дампы оригинальных файлов. И там нужно будет шаблоны подключать в il2cpp, в обычных проектах автоматом подключаются, чтобы дампы извлечь. (наверное путь без адаптации проще, но нужно создать шрифт с сопоставимым GUID)
Шрифты создаются в юнити на правильной tmp версии.
Версии TMP соответствующих GUID можно найти выше в архиве шаблонов.
Получается создаётся шрифт (нужной версии), этот созданные шрифты извлекаются Export_FontAndTextures_dump.bat, переименовываются в файлы из разбираемого проекта ставятся по своим путям в Unity_Assets_Files\ (GUID может получится другой, но если точно уверены в версии, его можно поменять, у любой версии tmp может быть несколько этих идентификаторов, но обычно совпадают). Если подход был без получения дампов, например из-за il2cpp, то нужно созданные дампы нового шрифта расположить в папке Unity_Assets_Files\[архив]\DUMP\ дальше либо в корне (без распознания), либо дальше по пути в папке Mono\ ну и тип будет + .xml от соответствующего файла координат.
Дальше запаковывается (включив DampStructure>NotReplace_PathID) и всё.

Не актуальный другой способ добавления шрифта (точнее подмена текстурного на векторный), ради информации оставлено.
Есть ещё немного инфы, можно сделать так, чтобы читались символы из вектора для этих TextMeshPro. (там где есть такое m_Version = "1.1.0" m_SourceFontFileGUID = "f0854c3d5d04f434e9cbec37c808e836"), после идёт m_SourceFontFile, (примерно $44, 4 байта) его m_FileID(номер ветки архива включения, если в самом архиве находится векторный шрифт это значение будет равно 0, или номер ветки подключаемого ассета), далее идёт (примерно $48, 8 байт) m_PathID(номер файла) тут находится PathID на исходный вектор ttf или otf, если в шрифте будут отсутствовать символы они будут браться из вектора, только главное переключить (примерно $50) m_AtlasPopulationMode на 1 это значит Dynamic (динамический шрифт) подключатся будет векторный, (а статический 0 только берёт то что есть в текстуре). Но это нужно добавлять свой векторный шрифт в архив, эта функция добавления доступна только на Ultimate версии. Либо использовать какой-то, который уже находится в ассете например стандартный, который идёт в юнити по умолчанию, но проектами обычно не используется LiberationSans. Также возможно придётся подключить ветку архива из тех где нужно подключить этот шрифт, когда этот шрифт находится в другом архиве, функция добавления веток доступна в Ultimate версии, ну и соответственно вместо m_FileID нужно писать этот добавленный номер ветки. (Library\unity default resources, не учитывается в нумерацию и просто пропускается). Но после небольших тестирований было выявлено, что такой подход тормозит движок юнити так как при появлении первых символов которых нет в текстурном шрифте они начинают грузиться из векторного, то ли они растрируются толи что, в общем движок тормозит. :) Особенно это заметно на корейских и китайских иероглифах, так как их очень много и каждый просто грузится, на кириллице это более-менее. :)
Пример где это находится на распознанных MB https://ibb.co/k8y1kdQ
Или вот на не распознанных https://ibb.co/WxQYD6K
Как добавить ветку ассета:
https://ibb.co/Nr9k2XP
https://ibb.co/BnJ6ym6
Но как понятно этот вариант не совсем работоспособен, из-за дефекта движка юнити на этом способе, обычно специально на кириллице. Также помимо тормозов, всё равно, возможно, не отображение части символов, в виде квадратиков. Когда эти символы присутствуют в шрифте. Либо это также баг движка, либо генерируемые отсутствующие символы на текстуре, не влезают в неё и так и остаются отсутствующими, такой дефект можно заметить, там где разработчики подключили векторные шрифты к шрифтам TextMeshPro, но не сгенерировали нужные вам символы. Или просто отображаются не те символы, такое лечилось только полным удалением координат латиницы и она начинала браться также из подключаемого векторного (убирались так m_GlyphTable size=0 m_CharacterTable size=0, data_1 и далее от массива необязательно теги убирать).
Способ конечно имеет право на существование и даже быстрее делается чем через движок. Всего лишь найти в этом же архиве ttf и в дампе xml исправить m_SourceFontFile.m_PathID=номер файла ttf (другой в бандлах в UnityEX включить столбец PathID), m_AtlasPopulationMode=1, 2 массива координат size=0.
На версиях юнити с 2021 это либо специально было отключено разработчиками либо совсем сломали, обычно это уже не работает, либо подключаются другие зарезервированные вектора из NotoSansHans, можно подменить иногда их на аутентичные, просто если в SDF нет символов ссылаются на эти, с отсутствием в m_SourceFontFile.
Да и ещё в m_FallbackFontAssetTable можно подключить другие SDF, также если символов нет то попробует взять из дополнительных (LiberationSans технический от юнити можно из него подключать).

Подключение шрифта через XUnity.AutoTranslator это самый простой способ добавления. Но разнообразие ограничено лишь одним шрифтом (стандарт ариал).
Вот если кому нужно создавал NotoSerif для него, содержит только кириллицу и латиницу. https://disk.yandex.ru/d/X6fPSSTtvRyFzg
OverrideFontTextMeshPro=NotoSerif_sdf_u2018
Ну и вдобавок о багах шрифтах на юнити. От квадратов на части буквы, когда шрифт не поддерживает буквы, а берёт из вектора, решение подключить sdf. И бывает так, что буквы обводятся полупрозрачными серыми квадратами, на высоком разрешении это не очень заметно, но видно, а при низком совсем видно становится. Косяк TextMeshPro, это уже лечилось только подключением шрифтов через XUnity.AutoTranslator

Шрифты font_raw
Это другой формат также может быть растровым и с distance field, а может быть векторным. Если он растровый то бинарные координаты будут в нём. Ну а если вектор то там будет весь файл вектора ttf.
С растровым созданием шрифта почти всё также, но в юнити он по другому создаётся, там кидается векторный шрифт в проект и переключается режим Character, Dunamic это вектор остальные для растра с заданными символами.
Соответственно, чтобы шрифт задействовался в сборке его нужно добавить на соответствующий текст UI>Text Либо TextMeshPro.
Также в последних версиях UnityEX появилась поддержка вставки вектора на шрифт растровый, которые font_raw и наоборот.
Нужно вместо файлов .ufnt сделать .ttf, а сам ufnt убрать, запакуется вектор. Но вектора тоже в игре могут косячно выглядеть и придётся всё равно клепать текстурные. Ну и наоборот также вместо ttf подставлять созданные ufnt.
Но для font_raw лучше использовать fntxml_to_unityfnt + BMFont, это старый формат шрифтов.

Тексты. Не стандартный способ изменения текста AUTOTRANSLATOR
Если текст игры не в локализационых файлах находятся это форматы LanguageSourceAsset, LanguageSource при распознании, с ними нужно другим способом поступать, для них есть прога, это бинарный табличный файл просто.
Для множества файлов бинарного текста, помимо прямой вставки на файлы, можно также применять такую приблуду Автопереводчик

Сборки в стиле кинул что-нибудь в игру, тупа жмякнул на всё и уже гамаешь.
https://disk.yandex.ru/d/PkI0TPJFlk3IZA
Настройки включения перевода можно прямо из игры переключать Alt-0

В этих уже всё настроено, русский перевод, установлен дипл, при фейлбеке идёт гугл, плюс подхватывает шрифты, если скинуты, включены нужные свойства GeneratePartialTranslations=True и TemplateAllNumberAway=True.
Шрифт NotoSerif_sdf_u2018 мной сделанный он с засечками, шрифт можно подключать только один в конфиге ClearSans_sdf_u2018 ещё какой-то левый без засечек. Как и делать самому. Дефольные ариаловские есть на гитхабе. Можно закинуть в папку с игрой, если нужен какой-либо.
Сами последние версий тут, но они не собраны и ариал шрифт тут есть.
https://github.com/bbepis/XUnity.AutoTranslator

Переводчик типа как бы сам достаёт текст и переводит его машинно, но это всё ненужная фигня. На самом деле, это применяется другим способом, можно текст достать самому из файлов бинарных, перевести и в базу этого софта засунуть. Сам автоперевод машинный просто отключается. Но есть небольшие ограничения, там составляемый текст в файлах он разделён, а в базе уже на игре слеплен будет (генерируемый текст), такой если только на файлы вставлять, иначе сборочные части будут просто дублироваться. Но редко, когда такого много бывает, но всё равно (от этого может помочь настройка GeneratePartialTranslations=True и TemplateAllNumberAway=True). В общем это топ сейчас. Я делал для этого сборку инструментов, такая получилась. https://yadi.sk/d/n7xDmcobAMk-BA
Тем самым постоянного ожидания перевода не будет и текст весь будет получен и уже переведён, возможно и ручным подходом.

Вкратце files_bin там бинарники , через ExtractTextUnityBinary.exe извлекается текст, дальше батники 1.PackALL_DF.bat, 2.Clear_DFC.bat, создаётся TextMono_RU.txt, и ConvertTextToAutoTranslator.bat
Отправить созданную базу в AutoTranslator\Translation\ru\Text\_AutoGeneratedTranslations.txt

Чуть подробнее.

  1. В папку files_bin скинуть бинарники разобранные по типу. В UnityEX это разбирается и извлекается (через гуи и или батником через консоль по всем без разницы).
  2. ExtractTextUnityBinary.exe там нажать кнопку Извлечь (с остальными настройками долго объяснять стандарт сойдёт)
  3. 1.PackALL_DF.bat — запакует все текстовики в один файл UnityText.txt и создаст пожатый с дублями UnityText_DF.txt
  4. 2.Clear_DFC.bat почистит UnityText_DF.txt и создаст UnityText_DFС.txt чищенный (необязательно в tools trash_lines_reg.txt это то что регулярками выкидывается, ignore_lines_reg.txt это то что нужно если в мусор попадёт такая строка то она останется, также почти такая же чистка есть в корне от trash_lines_reg.txt проги ExtractTextUnityBinary тоже сначала немного чистит)

Для патча
CreatePatch.bat это уже для обнов, если Text_EN.txt и Text_RU.txt это будет старые текстовики те которые переводятся на ноте например, при нажатии для нового UnityText_DFС.txt создастся patch.txt

В общем это UnityText_DFС.txt получится начальный файл, который и переводится. Его нужно будет перекинуть в Text_EN.txt и делать для него Text_RU.txt
Также и для любого другого способа получения текста подходит, хоть из даже из dll есть программа ScanIL достаёт из деассемблированного текстовика с помощью ildasm (ilasm обратный компилятор на всякий).
Text_EN.txt — файл с полученным текстом из игры.
Text_RU.txt — файл перевод. 
ConvertTextToAutoTranslator.bat для конвертации в базу авто-переводчика.
Получится файл для авто переводчика _AutoGeneratedTranslations.txt
Сам машинный автоперевод можно отключить в конфиг файле убрать сервис автоперевода или по нажатию Alt-0 здесь убрать.

Инфа для батника 
ImportTextToMonoBehaviour.bat
Для частичной вставки текста напрямую в файлы, это для тех строк, которые генерируемые, чтобы разные связки не переводить на базе.
Техническую часть батника я думаю ненужно объяснять всё равно непонятно будет, да и технари сами в этом разбираются.
Вкратце убирает строки, которые меньше 30 там указано из основного TextMono и строки, которые помечены как //works их оставляет. Ну и вставляет это всё оставшееся на бинарники в BIN_RU. Получается, что так на бинарники не вставятся короткие строки, а указанные (которые генерируемые) и большие вставятся. Ну а остальные, короткие пойдут в автопереводчик.
Отсеивание только долго идёт на моём 40мб файле, наверное, 1 или 2 часа было. (так-то в батнике даже можно убирать это отсеивание и вставлять всё прямо в бинарники)
Проблемка только осталась, что таким способом остались не переведённые строки, которые тоже подставляются типа iron, wood, но непонятно, где находятся так как в этих бинарниках такого под тысчу штук, одиночные они конечно переведутся автопереводчиком. Зато так ничего не глючит уже в игре, придётся с этим смириться.
В моём бы случае с ValeGuard при вставке всего бы в бинарники начались бы баги просто, так что вот.
Возможно ещё может быть проблема с переводом одинаковых строк, которые иногда по разному нужно перевести, автопереводчик такого не поддерживает, тут только на бинарниках как-то придётся делать, и ещё сначала найти эти нужные. Это можно сделать, но так-то тоже несущественно.
Для кого-то это конечно всё мудрёно, но там просто нужно разбираться с тех. часть.

  Font and Text Programs (Show Contents)

Конвертер для шрифтов fntxml_to_unityfnt 
https://yadi.sk/d/vgCbTcqs482k8w
Экспорт только для теста настроек, сами fnt (xml) делаются в BMFont, как прикручивать эффект distance field описано выше. 
Поддержка: (старые форматов от U4, font_raw, старые форматы SDF TextMeshProFont, TMP_FontAsset) Новые SDF 2018-2019... не поддерживаются.
Иногда необходимо указать не использовать page или chnl в зависимости от формата, в основном сейчас всё идёт только без chnl.
В очень редких случаях (возможно для TextMeshProFont), если автоматический поиск смещения не сработает то нужно указать смещение вручную на количество символов после ключа -hand)
Остальные переключатели остались от старых версий программы и сейчас уже можно сказать ненужны для использования, и проще использовать автоматический поиск смещения.
Для старых форматов U4 с целыми типами данных используется ключ -cordint
Поддержка формата font_raw включается автоматом при этом типе файла, либо принудительно через -font_raw
Правильные настройки можно узнать по извлечению export_UnityToFNT (-unitytofnt) или info_UnityData (-info) по полученным значениям координат.
Возможно подгонять координаты через ключ -plus c указанными значениями.
Добавление списка кернинга отключается через ключ -k
-svad [value] можно указать с какого символа начинаются координаты, по умолчанию тут находится пробел значение байта 32, это значение используется в автоматическом режиме поиска.
-sbtn1 [value] значение сколько пропустить байт после первого названия с учётом выравнивания к 4, для перехода на количество символов.
-sbtn2 [value] значение сколько пропустить байт после второго названия с учётом выравнивания к 4, для перехода на количество символов.
С остальными настройками можно ознакомится в программе.
С помощью консольного режима есть возможность использовать программу в качестве патчера в русификаторе, так как после каждого обновления игры часть байт меняется, старые файлы уже не подойдут к новой версии, и необходимо заново накатывать координаты.
Этот софт может оказаться сложным в использовании, так как чаще всего нужно использовать просмотр координат файла в hex и указывать смещения на количество символов. Если автоматический поиск подойдёт то при экспорте должны получаться нормального вида файлы fnt, тут хотя бы понимать нужно как они выглядят, ну в общем они ровные должны быть, как бы значения сильно не должны скакать. Подобранный батник уже с такими же параметрами, но для импорта используется для обратной вставки уже созданного шрифта в BMFont с ру буквами. Но чаще всего формат постоянно меняются в каждой игре почти свой, и без понимания какие настройки нужно применять при очень не стандартных видах вряд ли что-то получится. Также в юнити 2019 появились довольно сложные форматы даже для разбора (идут в виде отдельных таблиц с набором символов, а в координатах ссылки на них, похожего вида как в UE4) и тут они не поддерживаются, эти TextMeshPro 2018-2019... уже делаются через юнити, описание выше.

Parser_ULS
Парсер для извлечения и запаковки текста для I2Languages с  LanguageSource или LanguageSourceAsset в формате csv
https://yadi.sk/d/Lz3SBVVFU7OJdg
Небольшой минус нужно вручную указывать смещения на количество рядов (row) после ключа -o, а также прочие настройки из-за различий шапки этих форматов. В основном смещения достаточно (а -d всегда 2).
Замечено что для LanguageSourceAsset почти всегда используется смещение -o $0C, -d может варьироваться от 2 до 4.
Также может подойти и для других локализационных файлов с простыми таблицами текста где -st будет количество колонок например -st 10

Настройки для других классов простых таблиц
LocalizationFile -o $1C -st 1 -nkey
LocalizerDataContainer -o [offset to row] -st 1 (example offset https://ibb.co/1vP7YsC)
StringLanguageBank -st 1

Другие не мои софтины для файлов *.LanguageSource или *.LanguageSourceAsset
https://github.com/sisizanohito/phoenix_point_jp_mod
https://github.com/sisizanohitopontoon/phoenix_point_jp
unPacker_CSV
Пакер анпакер для извлечения и запаковки текста для csv дополнение к Parser_ULS
https://yadi.sk/d/LhC3A8SbBKlv8g
Более продвинутая сборка с поддержкой обработки.
https://disk.yandex.ru/d/OcoU3MO2IdukgA

Parser_UnityMDcpp2txt
Парсер для извлечения и запаковки текста для global-metadata.dat
https://yadi.sk/d/RnWCiP4j1umm3g

EXTRACT_TextBIN
Извлечение текста из MonoBehaviour (гуишная)
1.5.2 от 19.12.2019 https://yadi.sk/d/ezkoRlUvvZQGjw
1.5.5 от 23.01.2021 https://yadi.sk/d/2ctY9w_5Hk9Uhg
Прога мощная, но полного описная всех настроек нет, по умолчанию вроде как всё работает для юнити одной кнопкой, извлечением текста из файлов в папке files_bin.
Скажу только есть сортировка распознанных monobehaviour текста от мусора.
Нет никакого подбора букв и символов. И формат извлечения и вставки простой txt, как и в запаковщике ParserTextBinUnity, который используется уже для вставки.
Ну и пакер анпакер SpliteCombiner для текстовиков где-то тут был, чтобы их все в один файл -p собирать -u разбирать.
Также можно использовать при умелом использовании и для других бинарных файлов например java class также в скупе для вставки с ParserTextBinUnity.

ParserTextBinUnity
Запаковка текста MonoBehaviour и поддержка старых файлов локализаций (консольная)
https://yadi.sk/d/7Aw2_d9wdhUsyg
Прога мощная, но полного описная всех настроек и ключей нет в консоли сокращённо прописано для своего понимания, есть уже созданные батники.
Писались для себя. На сколько они удобнее для пользователей я не знаю. Но подходит для вставки текста в любые бинарные скрипты, там где ненужно менять смещения например uasset Unreal (но нужен дополнительный фикс смещений в uext), class Java,  движок Visionaire Studio, ну и для Unity бинарных файлов.
Другая сборка от 2022 года, начали появляться снова эти старые локализационные форматы DialogueDatabase.
https://disk.yandex.ru/d/Uwn0U3i4Yvm2nw
Описание тегов формата DialogueDatabase, под какими точно находится нужный текст (Например оказалось, что не нужны теги Title и Description).
https://www.pixelcrushers.com/dialogue_system/manual2x/html/dialogue_editor.html#dialogueDatabase

ТoolsKit_MonoBehaviour 
ToolsKits по извлечению и вставке текста, а также создание текстовой базы для XUnity.AutoTranslator.
files_bin папка должна содержать бинарные файлы MB.
UnityText.txt — создаёт 1.PackALL_DF.bat, содержит весь извлечённый текст считается основной базой (статическая база для текущих файлов MB).
UnityText_DF.txt и UnityText_DFC.txt не очень нужное, 2.Clear_DFC.bat, просто очищенные файлы от мусора, могут быть использованы как начальный файл TextMono_EN.txt
CreatePatch.bat — не очень нужное, создаёт патч с новым добавленным изменённым текстом при обновлениях.
TextMono_EN.txt — оригинальный текст (динамическая база текста оригинала, может браться откуда угодно, и содержать текст патчей обновлений игры)
TextMono_RU.txt — переведённый текст (динамическая база текста перевода, должна соответствовать строкам и количеству строк оригинала TextMono_EN)
Все тексты должны быть в кодировке UTF-8 not bom
_AutoGeneratedTranslations.txt — база текста для автопереводчика ConvertTextToAutoTranslator.bat.
Обратная вставка на бинарные файлы MB (через ParserTextBinUnity) ImportTextToMonoBehaviour.bat. (результат будет в BIN_RU)
https://yadi.sk/d/n7xDmcobAMk-BA
Обновления
04.09.2021 (небольшие правки)
05.09.2021 (ExtractTextUnityBinary обновлён до 1.5.6 извлечение только кириллицы изменено на UNICODE + ANSI и латиница также извлекается)

EX_REPLACER_TEXT
Программа для парсинга текстовых форматов (xml, json, lua).
script_list.txt содержит регулярные выражения для обработки требуемого текста.
Первая строка “содержит открывающийся тег” откуда. Вторая “содержит закрывающийся тег” докуда. Этот текст внутри между этими тегами обрабатывается. 3 и 4 это отступы в для захвата самих тегов, 5 и 6 это добавляемый текст к извлекаемому, эти значения практически не нужны можно оставлять какие есть. Дальше можно добавлять ещё выражение (6 строк) в такой же последовательности для другого открывающегося закрывающегося тега, если понадобится.

Сейчас настроено для обработки текстовых дампов xml из Ultimate версии.
Добавлена замена xml меморики (кодов), чтобы получался такой же текст как и при извлечении из ТoolsKit для MonoBehaviour (ExtractTextUnityBinary)
Такое извлечение может пригодится когда в бинарном файле локализации содержится множество языков, а нужно получить текст только конкретного языка.
Чтобы вставить этот полученный текст уже в бинарный файл нужно в текстовом файле прописать в начале file/[имя и тип бинарного файла].txt — это будет UnityText.txt и создать такой же TextMono_EN.txt, в TextMono_RU.txt будет перевод, так можно уже буде вставить текст перевода конкретного языка обратно на бинарный файл.

https://disk.yandex.ru/d/2ELh-1-GQJMJYg
Более продвинутая сборка с поддержкой обработки одним текстовым файлом из всех, сжатия дублируемых строк (можно переключить в бат файлах), вывод патча с новыми и изменёнными строками + адаптация через память переводов неточно совпадающих строк.
https://disk.yandex.ru/d/yiLvb0ee-FwdgA

dumper_dll_class
Для создания шаблонов классов юнити из dll библиотек проекта. Может выводить дампы шаблонов в формате txt и json.
В версии 1.9.8.6 UnityEX эта программа и шаблоны от неё подключены и добавлены в сборник программ для конвертации, здесь она оставлена в качестве ознакомления как работает. Все эти шаблоны также можно получить в UnityEX Ultimate, но там они ещё обрабатываются и накладываются на данные файлов для получения текстовых дампов с их данными, описывая структуру файла.
Тестовый батник damp_test.bat, скопировать всё в папку с проектом где лежит папка Managed. Значения берутся из разобранных MB из скриптов. В UnityEX они находятся в пути и также есть в описании от файла. Mono\[имяDLLфайла].dll\[Namespace]\имя_бинарного_файла.[ClassName] Весь путь можно скопировать из строки поиска кликнув по файлу.
Полученные шаблоны содержат значения выравниваний, что нужно для правильной работы структур. Из-за этого и была создана эта программа.
https://disk.yandex.ru/d/0duQbdN5FvgOtQ Version 1.1
https://disk.yandex.ru/d/r8Jng6_upxIQIQ Version 2.0
https://disk.yandex.ru/d/IchzK3JHKbJeKw Исходники

Buying a key for paid versions of UnityEX:
 

  WebMoney (Show contents)

WebMoney
120$
WMZ:
Z902634901912
https://funding.webmoney.ru/d/rusifikatory-dragonzh


110 USDT
WMT:
T489833437952

BEP20
0xced7f3aa661c0cc4d3b7d3a1694bfe2d341feaf5
TRC20
THPy7Jx4c6rswXUL3Ax8STtFrQ7wiN2n58

  PayPal (Show Contents)

Not Supported.

  Sber (Show contents)


Ultimate 9500₽

  Yandex (Show contents)

410012996939768
https://yoomoney.ru/to/410012996939768

Ultimate 9500₽

  Cryptocurrency (Show Contents)

Ultimate
Price: 110 USDT

For USDT
Network BEP-20 or ERC-20
0xced7f3aa661c0cc4d3b7d3a1694bfe2d341feaf5

Network TRC-20
THPy7Jx4c6rswXUL3Ax8STtFrQ7wiN2n58

In any cryptocurrency exchange or application. Example transfer through https://www.tronlink.org/
Or Binance https://www.binance.com
When paying, contact dragonzh@yandex.ru


In the comments, please indicate “For UnityEX” or email dragonzh@yandex.ru.

Paid version UnityEX
Ultimate version, support for Unity up to 2020-2021 and possibly higher, processing of sounds, videos, sprites, processing of text dumps.
Payment is made to the details in the program. You need to contact me@DragonZH, I will send the key upon payment.
Transferring the key to other people is not allowed, otherwise the key will be blocked!
It is also possible to block the key when using a VPN or proxy!

  I am interested in buying a key for the paid versions of UnityEX. Can I pay through https://funding.webmoney.ru/d/rusifikatory-dragonzh for 110 USD right?
  So, you will send me the Unityexe and key via my email, right?

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


Ссылка на сообщение
1 час назад, Maimao сказал:

  I am interested in buying a key for the paid versions of UnityEX. Can I pay through https://funding.webmoney.ru/d/rusifikatory-dragonzh for 110 USD right?
  So, you will send me the Unityexe and key via my email, right?

Only cryptocurrency.

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


Ссылка на сообщение
43 минуты назад, DragonZH сказал:

Only cryptocurrency.

Could you please provide me with the QR code for your Binance account?

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


Ссылка на сообщение
6 минут назад, Maimao сказал:

Could you please provide me with the QR code for your Binance account?

I don't have a Binance account. Only crypto wallets.

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


Ссылка на сообщение
31 минуту назад, DragonZH сказал:

I don't have a Binance account. Only crypto wallets.

Could you please send me the USDT deposit QR code address via email?

 

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


Ссылка на сообщение
В 13/9/2558 в 12:42 AM, DragonZH сказал:

Program for working with Unity archives.

  Description and Features (Show Contents)

UnityEX поддерживает два режима использования - запуск с интерфейсом и пакетную обработку файлов в консольном режиме.
Основными кнопками служат открытие архива, также можно перетянуть в окно программы необходимый файл. После открытия доступно контекстное меню по правой кнопке на списке файлов, где есть возможность извлечь выбранные файлы с конвертацией или raw если конвертации не предусмотрено, а также сразу все необходимые файлы по типу. Обратная запаковка в интерфейсном режиме возможно только кнопкой “Запаковать файлы”.
Распаковка и запаковка файлов производится рядом с архивом в папку или из папки Unity_Assets_Files\[имя архива]\ здесь находятся Raw файлы или просто файлы из архива. В следующих папках же находятся каким либо образом обработанные или конвертированные файлы. Например папки Textures, Fonts, Sounds, Movies, Sprite, Mesh.

Textures — текстуры исходные файлы .tex, сам файл может быть лишь шапкой, основные данные битмапа находятся в дополнительных .resS файлах, конвертируются в dds, png, ktx, pvr, crn, в зависимости от формата и настроек.
Fonts — исходные .font_raw, конвертируются в ttf, otf.
Sounds — исходные .snd, сам файл лишь шапка, основные данные дорожки звука находятся в дополнительных .resource файлах, конвертируются в fsb.
Movies — исходные .mov, сам файл лишь шапка, основные данные дорожки видео находятся в дополнительных .resource файлах, конвертируются в webm, m4v, mp4, ogm.
Sprite — исходные .sprite, конвертируются в png, содержат те же данные что и в текстурах только вырезают нужный спрайт с поддержкой изменения размеров.
Mesh — исходные .mesh, конвертируются в obj.

В папке Mono содержится каталог распознанных файлов MonoBehaviour (файлы которые могут содержать текст), изначально эти файлы не имеют имени и по умолчанию владеют только номером типа структуры со знаком минус или номером 114. От версии к версии этот номер и подобранное имя по умолчанию может изменяться, поэтому для этого имеется кнопка “MonoBehaviour”, которая производит распознание имён по относящимся к ним скриптам, также немного обрезается часть начала исходного файла, которая также может меняться от версии к версии.

В папке Dump содержатся текстовые файлы разобранных файлов по шаблону структуры. Поддержка только в Ultimate версии. Подключенные шаблоны отображаются в gui режиме меткой True в правой стороне окна рядом с соответствующей структурой от файла с типовым номером. То есть в этих дампах можно менять строки не используя сторонний софт предназначенный для их вытягивания из бинарных файлов, ну, возможно, понадобится только ещё какой-то парсер что-бы достать строчки из этого текстового дампа, а также и вставить их. Ниже выложен EX_REPLACER_TEXT, там по скрипту регулярным выражением можно достать только нужный текст. Поддержка имеется для бандлов в них шаблоны расположены сразу в архиве, поддержка есть для вытягивания шаблонов (txt) из dll для assets архивов, посредством подключения программы dumper_dll_class, подключается из настроек с указанием папки где находится эта программа, а также там могут находиться и другие дополнительные программы для конвертации форматов. Подключать можно шаблоны xml, txt, xml можно подключать даже в виде структур с данными от файла, также можно подключать бинарные шаблоны из bundle файлов. Извлечение и вставка дампов структур файлов с данными выполняется в формате XML.
На проектах cpp2il такай поддержки получения шаблонов нет, так как нет dll (возможно только из бандлов из папки StreamingAssets), но благодаря подключению шаблонов, можно подключить шаблон полученный из другого проекта или из того же бандла от этого же проекта, тем самым можно получить дамп структуры с данными от файла, обратная вставка также выполнится по этой структуре. В программе есть проверка совпадает ли шаблон xml с содержимым в архиве по GUID, если он совпадёт то шаблон будет подключен в значение True, без сообщений. Также возможно частичное совпадение и шаблон тоже будет подключен, но насчёт точности тут нет гарантии, об этом будет сообщено. (Поговаривают, что dll можно получить, но только для проектов на андроид в которых есть .so файл, помимо global-metadata.dat)
Этот формат dump xml может пригодиться для правок каких либо числовых данных например от созданного шрифта SDF в юнити для внесения правок в файл метрик и адаптации его для запуска на другой игре или проекте.
Также для форматов LanguageSource и LanguageSourceAsset, чтобы получить необходимый текст, так как в этих локализационных файлах содержатся тексты всех языков используемых в проекте.

Для автоматической конвертации текстур из нестандартных форматов таких как CRN или битмапов BC6-7 DX10-12 в стандартные такие как DXT5 можно просто положить рядом с программой nwn_crunch.exe для crn и texconv.exe для форматов DX10-12. Ссылки на эти программы находятся далее рядом с плагинами для этих форматов.

Возможности:

  • поддержка версий архивов 4, 5, 2017, 2018, 2019, 2020, 2021, 2022
  • поддержка версий 2019 bundle и 2020 и выше имеется в платной версии Ultimate. (Работоспособность проверена до 2022.1.4 , в теории должно работать и выше).
  • поддержка AssetBundles(Unity3D) UnityRaw
  • поддержка AssetBundles(Unity3D) UnityWeb
  • поддержка AssetBundles(Unity3D) UnityFS
  • поддержка .splitX (Android)
  • поддержка .u3dext
  • поддержка bundle persistent
  • поддержка GUI и консольного режима
  • экспорт всех и выбранных файлов из архива в GUI режиме
  • экспорт всех файлов и файлов по типу из архива в консольном режиме
  • алгоритм массового импорта файлов из каталога извлечённых за один заход Размеры импортируемых файлов абсолютно не важны
  • английская локализация
  • поддержка архивов консольных платформ (PS3)
  • поддержка шрифтов ttf или извлечение метрики координат font_raw
  • поддержка текстовых файлов
  • поддержка распознания имён файлов monobehaviour и их типов по вложенному в них скрипту
  • поддержка конвертации текстур (DDS, CRN, KTX, PVR)
  • поддержка атласов по распознанному файлу monobehaviour с типом UIAtlas, разделение и собирание спрайтов, возможно изменение размеров картинок через пересоздание атласа в программах ShoeBox или TexturePacker с xml метрикой. Доступно в Ultimate версии.
  • поддержка .sprite и .SpriteAtlas 4.6.x, 4.7.x, 5.5.5, 5.6.2, 2017.4.х — 2018 — 2022. (Не гарантированно для 2017.2.х).  Доступно в Ultimate версии.
  • поддержка обработка текстур из внешних ресурсов ResS при извлечении файлов из assets
  • поддержка текстур Switch swizzle/unswizzle
  • поддержка видео файлов. Доступно в Ultimate версии.
  • поддержка аудио файлов. Доступно в Ultimate версии.
  • поддержка обработки звуковых файлов из внешних ресурсов resource при извлечении файлов из assets. Доступно в Ultimate версии.
  • поддержка извлечения mesh в obj и smd через “Вид GameObjects” (models, bones, textures), без анимации для старых версий 4-5 юнити, дальнейшей поддержки моделей не планируется.
  • поиск по именам файлов
  • поиск текста в файлах
  • поддержка добавления файлов. Доступно в Ultimate версии.
  • поддержка добавления ассетов. Доступно в Ultimate версии.
  • получение шаблонов из бандлов для всех файлов присутствующих в них возможность поддержки указана значением true в списке форматов. С 5 — 2023 версии и выше... Доступно в Ultimate версии.
  • получение шаблонов из dll для MonoBehaviour посредством сторонней программы dumper_dll_class. Необходимо множество значений из архива поэтому доступно только в Ultimate версии. Поддержка 5, 2017, 2018, 2019, 2021, 2022.1.x. (Отсутствует для 2022.2.х и не гарантированно для версий выше, так как начал отсутствовать Assembly-CSharp и начали появляться проекты на il2cpp, для таких проектов эта поддержка отсутсвует).
  • поддержка обработки и подключения вложенных шаблонов из бандлов и шаблонов из dll к файлам в архиве с преобразованием их в дампы. Доступно в Ultimate версии.
  • экспорт и импорт дампов файлов в формате xml. Доступно в Ultimate версии.

Download UnityEX yandex

Download UnityEX dropbox

Collection of bat files for console mode

UnityEX_Soft for additional file conversion and obtaining text dumps xml, the folder is connected from the UnityEX settings

Several xml templates for cpp2il projects

  List of changes (Show contents)
  Using Console Mode (Show Contents)

Для тех, кто вообще чайник, и не знает что это такое.

Что такое консоль?
Например, консоль виндовс Пуск->Стандартные->Командная строка или Пуск->Выполнить->cmd
Что такое запуск программы с параметрами?
Например, программу можно запустить с параметрами, идущими после имени файла UnityEx.exe “параметр 1” “параметр 2” “параметр 3”...
Не обязательно нужно выполнять запуск именно из консольного окна, так как это не очень удобно. Возможно, все включали консоль в HalfLife для введения читов, прописывая в ярлыке от hl.exe после имени файла -console, это и есть параметр запуска игры со своей консольной строкой, по-другому это ещё называется ключ. Но и запуск с ярлыка с параметрами тоже в нашем случае не удобен, но для сведения это лучше знать, не подойдёт, так как нужно обрабатывать разные файлы ещё это называется пакетной обработкой. Поэтому нужно запускать выполнение программы из файла с типом bat это текстовый файл, который содержит простой язык программирования для запуска приложений с параметрами. Этот текстовый файл предварительно создаётся например из txt и переименовывается на тип bat или берётся за основу уже готовый.

Что такое консольный и графический режим?
Это запуск программы (приложения) в консоли. Бывают консольные приложения, и гуи с графическим интерфейсом, UnityEx содержит и тот и другой режим, запуск через консоль выполняется с параметрами, в гуи же используется графический интерфейс. Например запуск консольного режима производится с применением текстовых bat файлов рядом с программой и архивами, которые в свою очередь и выполняют необходимые действия.

Например, для обработки всех *.assets архивов и извлечения из них всех текстур используется такой простой код.
for %%a in (*.assets) do UnityEX.exe export "%%a" -t dds,cru,pvr
pause
Файлы bat, assets и UnityEX.exe все находятся в одной папке. assets файлы перебираются и с помощью UnityEX.exe распаковываются задачей export, в место "%%a" будет подставляться имя архива, и так по всем assets файлам, так как указана маска *.assets. ключ или ещё настройка -t dds,cru,pvr она включает в себя два параметра первая -t ключ, а после неё идут необходимые типы файлов, которые нужно обработать (полное описание этого ключа описано ниже). Далее pause необязательная команда, она просто оставляет консольное окно открытым после завершения работы. С полным списком консольных команд можно ознакомиться в интернете, но по идее нужно знать только cd, md, del, copy, xcopy, echo, for, if остальное не очень нужно, ну кроме задания переменных командой set и замены строковых данных в этой переменой например для изменения пути в этой переменной. Для for иногда идёт с /r это цикл с проходом по файлам которые находятся даже в папках. Для улучшенного копирования xcopy используются /Y /E замена при копировании Yes и E хз, но это создаёт папки, а также перед ним echo f| echo d| распознание того что копируется, файл или директория. Для if exist проверка существования файла. Это всё можно погуглить. Ну и для замены в переменных используя циклы необходимо в начале указывать setlocal enabledelayedexpansion.
В общем это всё кратко и поверхностно, чтобы полностью разобраться и как писать эти команды нужно искать это в инете.

Более сложный пример для разбора разных андроид архивов и level файлов без типа. 

for %%a in (*.assets;????????????????????????????????;level*.split0;*.assets.split0) do UnityEX.exe export "%%a" -t ttf,txt

? в маске это неизвестный символ, но количество вопросов указывает их количество, например для такого файла 0b0ecf59168514cb1adbe28cb079b1f7
Потом маска для .split0 файла от него подхватываются остальные .split1 .split2…

Все MonoBehaviour могут быть извлечены через настройку (-t 114), типы файлов с отрицательным числом.

Описание настроек от версии 1.10.1.0, также более свежее описание можно узнать запустив программу из консоли с параметром UnityEX.exe help

UnityEX автор DragonZH

Использование:
               UnityEX задача <архив unity> [настройки]

задача:
  export
    Распаковать все файлы из архива в каталог \Unity_Assets_Files\имя_архива\
  import
    Запаковать все файлы в архив из каталога \Unity_Assets_Files\имя_архива\
--------------------
  exportbundle
  importbundle
    Распаковать/Запаковать bundle в архив из каталога \Unity_Assets_Files\имя_архива\Bundle
  none
    Открытие асстета с обработкой другими настройками.
--------------------
  asset2objectlight
    Распаковать объекты в лёгком режиме. Что крепится к GameObject и неполный путь дерева.
  asset2object
    Распаковать объекты в обычном режиме. Что крепится к GameObject и полный путь дерева.
  asset2objecthigh
    Распаковать все объекты и дерево в каталог \Unity_Objects_Files\имя_архива\ (not work=asset2object)
  object2asset <(в место архива используется ListObjects.csv)>
    Скопировать все уже извлечённые объекты с переименованием в безымянные файлы от asset в каталог \Unity_Assets_Files\имя_архива\
---------------------------------------
  tex2dds конвертация tex файла в dds
---------------------------------------
настройки:

    -t <тип> обрабатывать файлов по типу (-t ttf,txt,114,tex,dds,png,crn,ktx,pvr,obj...)
      Все MonoBehaviour могут быть извлечены через настройку (-t 114), типы файлов с отрицательным числом в старом виде, в новом они извлекаются также.
      [-t png,pvr,crn] только конвертация png и reimport png. And pvr, crn convert to png.
      [-t dds,pvr,crn] только конвертация dds и reimport dds. And pvr, crn convert to dds.
    -argb конвертация crn, pvr, dds dx10 в format argb. (import png to argb)
    -dxt5 конвертация crn, pvr, dds dx10 в format dxt5. (import png to dxt5)
    -neclips_type отключить режим eclips, который после конвертации в обычные форматы убирает crn, pvr, fsb файлы, а .pvr.dds, .crn.png, .fsb.wav преобразовывает в .dds, .png, .wav с возможностью запаковки этими обычными форматами. С отключенным режимом eclips запаковка произойдёт в файлы .crn, .pvr с сответствующим типом из оригинального формата текстуры из ассета. По сути просто затеняет/убирает изначальные типы после конвертации.
    -nconv_to_simple отключает конвертацию в обычные форматы dds (argb, dxt5) или png из crn, pvr. Извлекает по возможности только исходный битмап в dds dx10. Ключи -argb -dxt5 -neclips_dx10 становятся не активными.
    
    -tex_swizzle применять или нет swizzle (для switch).
    -tex_disable_encrypt отключение чтения шифрования текстуры.
    -ntex отключение добавления расширения .tex в Texture2D.
    -nft отключение переворачивания текстур dds.
    -nct отключение конвертации текстур, извлечение полного файла .tex с битмапом из .resS.

    -mb_new обрабатывать MonoBehaviour с новыми именами файлов и в контейнере.
    -mb_create_info создавать инфо csv файлы.
    -dump конвертация дампов работает только с ключом -mb_new.
    -f_raw обрабатывать шрифты в контейнере с типом fnt_raw.

    -ndc отключение захвата консольного, с захватом возможна ошибка на x64ОС.
    -p выбранный путь для операций с файлами (-p "PATH"). По умолчанию где находится архив.
    -f выбранная папка для операций с файлами для всех архивов (-f "ALLASSETS"). По умолчанию [где находится архив]\Unity_Assets_Files\
    -ext имена папок архивов с их расширениями.
    -ncomp без сжатия архивов на запаковке.
    -original_header_bundle оставлять оригинальную шапку у бандлов (предназначено для защищённых от изменения размера бандлов, соответственно сам размер архива тоже не должен изменяться, можно лишь только изменять данные поверх).
    -res [файл нового ресурса] импорт текстур в resS файл. Опционально с именем файла нового ресурса, по умолчанию в прежний.
    -skip_ud пропуск неизвестных данных в начале каждого файла.
    -skip_error пропуск ошибок.
Ultimate version поддержка при импорте файлов
    -add_assets [имя добавляемого файла] добавление assets файла в виде ветки включения.
    -add_file [имя добавляемого файла] [ID типа файла] [ID Path файла] добавление файла в архив при [ID Path файла]=0 запишет следующим от последнего в архиве [ID типа файла]=(128 Font, 28 Texture2D).
    -add_struct_file [добавляемый файл структуры]
    -add_struct_base [ID типа файла из базы]
    -rename_file [PathID] [Name_File]

    -ex_struct извлекает и собирает шаблоны структур юнити в файл базы "BaseTemplateUnity.structure"
    
    Режимы обработки спрайтов, по умолчанию берётся значение из реестра
    -sprite_xml_indices режим спрайтов с файлом индексов для изменения, перемещает спрайт на новые координаты, может менять ширину и высоту.
    -sprite_xml_auto режим спрайтов перемещает спрайт на новые координаты, может менять ширину и высоту, заменяет блок индексов меша на полный спрайт, а не дополнительно вырезанные кординаты в спрайте.
    -sprite_newtex режим спрайтов новой текстурой, вставляет спрайт новой текстурой в ассет (не работает на бандле так как необходимо добавление файла в конец) Изменяет индексы меша на полный размер спрайта.

    -skip_pathid не заменять PathID и FileID при импорте дампа, по умолчанию значение из реестра.
    -write_pathid заменять PathID и FileID при импорте дампа, по умолчанию значение из реестра.
        
    -not_rewrite_null_to_res - not rewrite null to res 
    -dds_force_import_to_crunch - принудительно импортировать все dds в crn формат при импорте в архивы.

--------------------
задача:
  list
    Создать список файлов архива
настройки list:
    -l [list.tsv] по умолчанию <name_archive>.tsv
--------------------
задача:
  search
    поиск строки
настройки search:
    -sp [string] что нужно найти, получение строки поиска из параметра
    -sf [file] что нужно найти, получение строки поиска из файла первой строки в нужной кодировке
    -lf [file] вывод лог файла
    -ef экспорт найденных файлов
    -nr без учёта регистра
--------------------

  При запуске без параметров запускается графический интерфейс.
  Схемы конвертации:

  ┌───┐              ┌──────┐
  │dds│ <═══════════ │      │
  │ktx│    ┌───┐     │assets│
  │pvr│ ═> │tex│ <═> │      │
  └───┘    └───┘     └──────┘
  Текстуры iOS ktx экспортируется только через настройку -t ktx.
  По умолчанию конвертируются в pvr.
  ┌─────────┐                                    ┌──────────┐   
  │   DDS   │     ┌────────────────────────┐     │compressed│ <═
  │ARGB-8888│ <═> │The Compressonator - AMD│ <═> │   DDS    │   
  └─────────┘     └────────────────────────┘     │ATC_RGB4  │   
                                                 │ATC_RGBA8 │ ═>
                                                 └──────────┘   

  ┌───┐    ┌──────────┐    ┌───┐              ┌──────┐
  │   │ <═ │          │ <═ │   │ <═══════════ │      │
  │dds│ ═> │crunch.exe│ ═> │crn│    ┌───┐     │assets│
  └───┘    └──────────┘    │   │ ═> │tex│ <═> │      │
                           └───┘    └───┘     └──────┘
        
  CRN конвертируется через crunch.exe автоматически, если crunch.exe находится к корне с UnityEX.'

  ┌───┐    ┌──────┐
  │txt│ <═ │      │
  │xml│    │assets│
  │ttf│ ═> │      │
  └───┘    └──────┘

  ┌───┐               ┌──────┐
  │   │ <════════════ │      │
  │obj│    ┌────┐     │assets│
  │   │    │mesh│ <═> │      │
  └───┘    └────┘     └──────┘

     ┌──────────────┐    ┌──────────┐
  <═ │ ARCHIVE.TEMP │ <═ │ UNINY3D  │
  ═> │not compressed│ ═> │compressed│
     └──────────────┘    └──────────┘
 

--------------------

 

  Programs for processing formats and other information (Show contents)

Bundle
Снятие защиты хеширования с бандлов в папке [имя]_Data\StreamingAssets\aa\
Изменить файл catalog.json

{
Неработает на новых версия юнити, просто оставлено. 
Убрать данные base64 в
"m_ExtraDataString":"……",

Заменить на
"m_ExtraDataString":"", 
Проги для json
Optimize_JSON упрощает просмотр json файлов (Но со снятой оптимизацией в юнити это не работает, только для просмотра.) https://disk.yandex.ru/d/sFrtXJE3-Ke06Q
UnPackerBase64 конвертирует в данные https://disk.yandex.ru/d/sTuIOnaYPiFWww
Также в этом файле json можно изменить путь к расположению файлов, которые находятся в бандлах, например для создания своего бандла и чтения изменённых файлов из него.
Автофикс скинуть в папку с игрой запустить bat (бэкап создастся) https://disk.yandex.ru/d/lo1igeCip9J7Sw
Добавлено 10.08.2022
На новых версиях юнити возможно это не прокатит.
Нужно распаковывать m_ExtraDataString из base64
Искать нужное имя бандла в utf16

И например  далее от него
"m_Crc":2400242126,
Заменить пробелами эти символы. Удалять ничего нельзя это бинарный файл эти данные имеют размер выше.
Потом естественно это изменённое нужно запаковать и вставить обратно в catalog.json в m_ExtraDataString. 
Здесь нужна автоматизация процесса, это лишь ручной способ для знающих.
}

Автоматизация правки отключения хеша

https://disk.yandex.ru/d/-w4b1VTjYtM3Ow

Распаковать какой нужно original_file\catalog.json
В unpack_list\catalog.json.txt
Поменять "m_Crc" на "d_Crc", у всех или только у нужного бандла.
Запаковать, результат будет в done_file\

Также заодно и автоматизация для хешев из AssetBundleCatalogs.AssetBundleCatalogs
https://disk.yandex.ru/d/YGINT805IdVyPQ
Но тут для FateSeekerII для другого перенастраивать нужно дампы txt для замены в бинарнике с хешами.

-------------------------------------

Бандл при запаковке размером свыше 500-800 mb возможно будет запакован без сжатия, при ошибках необходимо отключить сжатие вручную. Бандл будет просто в разжатом виде. Например в консоли ставить ключ сжатия -ncomp в бат файле, или в гуи в контекстном меню на правую кнопку в “Unity3D” выключать “Cжатие Unity3D”.
https://i.ibb.co/v4gM296/image.png


Бандлы data.unity3d возможно распаковывать через Export_bundles.bat (UnityEX.exe exportbundle "data.unity3d"). Там где находился сам файл должны находится распакованные resources.assets и прочие файлы полученные при распаковке, а сам data.unity3d должен быть удалён. Такая работ проектов в распакованном виде тоже возможна. Особенность этого бандла в том, что он просто сжимает рабочие ассеты и они могут работать распакованными, а также этот бандл не содержит шаблонов структур в отличии от тех которые находятся в StreamingAssets\aa\.

Настройки виндовс как подключить юникод в названиях файлов с иероглифами или исправить сохранение таких файлов, если они не сохраняются.
UnityEX не поддерживает пути utf16 содержащих юникод это может произойти на виндовс с китайским языком. Для этого нужно переключить язык виндовс на английский или русский.
Панель управления → Региональные стандарты → Дополнительно → Изменить язык системы (поменять язык)
Если включить галочку Бета версия Юникод UTF8 то файлы с юникодом в имени будут называться правильно, если это вам необходимо, с выкл. будут выглядеть примерно так ж–№ж­ЈзІ—е®‹з®ЂдЅ“ но тоже будут работать.

UnityEX сжимает только бандлы размером до 300мб. Здесь имеется сторонняя прога для сжатия бандлов, если вам нужно уменьшить размер архива после импорта.
https://pixeldrain.com/u/QFK8JrU6

Типы файлов Unity которые поддерживает UnityEX
Для ассетов
image.png
Для бандлов помимо UnityFS может быть сигнатура UnityWEB
image.png

Главное, чтобы была написана любая версия юнити, если такое есть значит это архив юнити.

Файлы .resS и .resource
Это файлы относящиеся к архивам .assets и возможно level файлам. Они не открываются напрямую, а обрабатываются с помощью открытия самих архивов от них. В .resS содержатся данные битмапов (c версий юнити 2018 и меш данные), а в .resource звуковые данные (FSB5, OggS, c версий юнити 2018 и видео данные).
Например распаковка текстур из подхватываемого файла resources.assets.resS из resources.assets идёт в Unity_Assets_Files\resources\Textures\res_resources\
(а распаковка данных уже находящихся в resources.assets идёт в Unity_Assets_Files\resources\Textures\)
По умолчанию запаковка данных битмапов идёт в сам assets, но можно и выполнить и запаковку для тех файлов, которые уже были в .resS файле, например ключом -res из консольного режима или в гуи нужным переключателем, это ускорит запаковку при больших размерах ассетов. Также через консольный режим можно выполнить запаковку в новый .resS файл, если указать после ключа новое имя -res resources_RUS-RU.resS, именно так перебив (.assets на такую же длину _RUS-RU) это также позволит ускорить запаковку в большие assets файлы, но и без изменения самого resS файла.
tex файлы бывают двух видов только шапка без битмапа (имеют небольшой размер), и уже собранные шапка и битмап из реса.
snd также только в рес части находится сам звуковой файл.

Текстуры:

BC4, BC6, BC7 — плагин для фотошопа Intel Texture Works 
https://software.intel.com/content/www/us/en/develop/articles/intel-texture-works-plugin.html
CRN — Crunch официальный сайт https://code.google.com/archive/p/crunch/
https://yadi.sk/d/rOqX4VPFFSOlRQ
(В архиве в MD находится модифицированный для crn unuty 2018 и официальный в OF. UnityEX автоматически конвертирует crn2dds, если конвертер находится рядом с исполнительным файлом. Обратно сконвертированные dds2crn, возможно, будут не работать, но это можно обойти запаковав вместо файла с последними типами .tex.crn и tex.crn.dds уже сам файл .tex.dds с любым стандартным битмапом).
PVR, KTX — PVRTexTool или его плагин для фотошопа
ATC_RGB4, ATC_RGBA8 — The Compressonator AMD https://gpuopen.com/compressonator/
BC6-7 и другие — texconv.exe https://github.com/microsoft/DirectXTex/releases
 

Плагины для открытия текстур в Photoshop:
Плагин для PVR есть в PVRTexTool и находится по пути
(Dir PVRTexTool)\Imagination\PowerVR\GraphicsSDK\PVRTexTool\Plugins\Photoshop\
Плагин 
для DDS можно использовать Nvidia
Плагин д
ля DDS DX11 можно использовать Intel (IntelTextureWorks + Nvidia) Также этим можно открывать DDS c прозрачностью как у PNG формата без альфа канала.

Также есть такой простенький конвертер текстур.
https://disk.yandex.ru/d/KjGURiyfkuXHhw
Он может конвертировать в разные форматы типов. (dds также разные форматы, если указать какой нужен).
files тут файлы для обработки
convert тут будет результат
ConverterTexture.bat сейчас в png установлен
Самая фишка
FixFormatToOriginal.bat там как бы из оригинального формата файла, которые лежат в папке files_original
Конвертирует соответствующие файлы из папки files в соответствующий формат оригиналу.

Звук и Видео:

FSB — fsb_aud_extr, fmod_extractors, возможно, нужна библиотека fmod.dll или fmodL.dll 
http://aluigi.altervista.org/papers.htm#fsbext
https://disk.yandex.ru/d/vATDHoL2e6pvgw
https://disk.yandex.ru/d/_PLYCTJbf-G2yw

Для обратной запаковки можно воспользоваться fmod sample bank generator ex 1.68 Он сжимает конечно в FSB4, но юнити их подхватывает либо через FMOD Studio.
https://disk.yandex.ru/d/mJy7LcTDy2d68g
Прога файлами
https://disk.yandex.ru/d/I9sS992DwtK9GQ
Тестовое видео замены звука
https://cloud.mail.ru/public/LRdE/edAk3ue8C

Перепаковка видео на бандле такая же, действия текстом:
1. В верху справа переключаемся на ресурс в бандле и извлекаем.
2. Переключаемся снова на первый архив там где видео.
3. Запаковываем/Извлекаем видео.
4. Переключаемся снова на ресурс в бандле и запаковываем.

Sprite: Формат содержащий координаты нарезки текстур, в основном из текстур атласов.

В версии 1.9.5.0 Ultimate добавлена поддержка извлечения спрайтов. А также обратная вставка в текстуру (атлас) из которой был получена, в координаты указанные в xml при извлечении, по умолчанию там находятся координаты оригинального места, их можно поменять, чтобы переместить спрайт в другое место. Также поскольку в текстурах есть поддержка увеличения, то можно увеличить сам атлас и поставить спрайт на добавленное пустое место. Тем самым получится упростить обновления, так как при обновлении все спрайты поменяются местами, но с увеличением текстуры (атласа) новые изменённые останутся на своих местах. С кодом для увеличения по ширине пришлось повозиться, из-за того что в юнити непростой квадрат спрайта, а там используется 2D полигональный меш.
В первом режиме “Режим вставки .xml+.indices” эти значения выносятся в файл .indices. Уже не столь нужный режим. (Вкратце по нему, эти файлы можно получить из других спрайтов или даже созданных в юнити с нужным квадратом, чтобы отобразить добавленную часть спрайта.
Второй режим “Режим вставки .xml+automesh” выбран по умолчанию, тут просто вставляется спрайт на своё место и автоматически создаётся меш. (Для этого режима есть параметры в xml x и y для изменения оригинального места вставки, plus_w и plus_h для возможность подровнять ширину или высоту, на крайний случай).
Третий режим “Режим вставки новой текстурой” Добавляет текстуру спрайта не в атлас, а новым файлом в архиве. То есть, рядом находящиеся спрайты уже никак не повлияют на вырезку. Координаты вставки в данном случае даже не потребуются, так как они всегда будут x=0 y=0, тем самым это упростит обратную вставку c увеличенным размером спрайта под новый текст.
Ещё одно поскольку в юнити перевёрнутые текстуры, часть нестандартных форматов DX10 BC6-7, pwr, ktx, не переворачиваются и спрайты на них не обрабатываются, сначала придётся извлечь эти текстуры и сконвертировать их в стандартные dds (dxt 3-5, 8888) или png, а потом уже делать извлечение из этих атласов. Или просто положить рядом программу texconv.exe.

Текст и MonoBehaviour
Бинарного вида файлы MB могут содержать текст (по умолчанию имею тип 114 или отрицательное число).
Поддержка распознания имени и типа по скрипту добавлена в версии 1.8.6 кнопкой MonoBehaviour и в консольном режиме -mb_new.
Прежние названия эти файлов были такие resources_00012.-377, теперь же они будут иметь своё имя и текстовый тип от включенного в них скрипта и названы например так 2_Opened_CheckForLoot.Text
Эта поддержка поможет частично разобраться в каких файлах, что лежит, где текст, а где ненужные файлы с контроллерами управления. И упростит адаптацию к последующим обновлениям игры, после которой нумерации файлов и отрицательные типы изменялись, следовательно и имена файлов, а при таком распознании, более вероятно, они не поменяются. Также в гуи режиме есть информация какие скрипты в настоящий момент отключены, какие имеют собственное имя, а не от вышестоящего объекта, и содержит название библиотеки из которой вызывается скрипт с данными от этого файла MB. Благодаря этому распознанию имени открывается лучшее представление о файлах класса MonoBehaviour, так как в нём содержатся практически всё самое нужное тексты и метрики координат от шрифтов и даже не стандартные спрайты UIAtlas.

Поиск текста.
Вам нужно искать текст c помощью TotalComander:
1. В assets. Кодировка UTF8.
2. Попробовать поискать в Assembly-CSharp.dll или global-metadata.dat, если игра il2cpp. В кодировке текста UTF16.
3. Распаковать все bundle, с помощью Export_bundles.bat. И искать в них текст также как и в assets. (bat файлы лежат в теме UnityEX).
И только потом искать уже в каком файле MonoBehaviour лежит текст с помощью поиска в UnityEX.

Для текста из MB для типов .TextMeshPro и стандартного .Text (не локализационных файлов .I2Language) можно изменять позицию строки на экране в игре, область квадрата (rect) там где должен находится текст и размеры шрифта для этой конкретной строки. Размер шрифта находится в этом же файле, а вот для позицирования нужно найти файл Transform от него, для этого нужно переключиться в UnityEX в “Вид GameObjects” и найти файл с изменяемой строкой, далее выше по дереву будет находится нужный файл Transform. Шаблоны структур для Ultimate версии этих файлов имеются в сборнике (BASE_TemplateXML_For_CPP2Il), для того чтобы легче было понять, где что находится.

Шрифты SDF
Состоят из текстуры обычно с аффиксом _SDF, и бинарного файла обычно с типом *.TMP_FontAsset.
Как найти? Текстуры найти просто это файлы с именами Atlas или SDF. С бинарными метриками всё сложнее. Можно распознать MonoBehaviour и в них, которые были с минусом переименуются, шрифты должны быть с типом FontUI или TMP_FontAsset, через поиск по Font должно что-то найтись. Только потом придётся, если нужно будет при запаковке снова делать распознание, а файлы с минусом быстрее пойдут в запаковке.
Либо другой вариант искать по тексту файлы в которых находится имя текстуры или часть её, сами текстуры тоже перед всем этим нужно найти просматривая текстуры, ну а найденные бинарники это и будут координаты шрифтов. Также рядом файлы по типу, тоже будут координатами других шрифтов.
В паке с батниками есть запуск распаковки только шрифтов Export_FontAndTextures.bat

Для старых версий юнити 4-5
Информация для помощи создания SDF (distance field) размытия текстуры шрифтов.
Плагин https://catlikecoding.com/unity/documentation/CCDistanceMapGenerator/
Файлом https://yadi.sk/d/S9x2LqCe3HHYjQ
Чтобы работал, нужно добавить в юнити это https://yadi.sk/d/ZNB04inH3HHYrj
Это всё старое и применялось только на 4-5 unity, и делались метрики в BMFont и конвертировались в fntxml_to_unityfnt.
(Ну и мало ли может пригодится. Вот софт https://yadi.sk/d/4RBYnlXB3N6cNA
Но через софт как-то по левому делается, даже точно уже не помню как, в основном через юнити и делал. В софте увеличивать текстуру нужно в 8 раз вроде, потом через софт прогонять вместе с координатами, которые должны уменьшиться.) Устаревшее.

Также существует другой вариант создания шрифтов SDF TextMeshPro через саму юнити.
Используется для версий 2017, 2018, 2019 и выше.
Создавать шрифт на движке необходимо на соответствующей версии от игры или примерно рядом находящейся версии для совпадения структуры. Это также ещё можно проверить сравнив GUID типов метрик шрифта (.TMP_FontAsset), в дефолтовой версии это доступно, справой стороны находится.

Для 17, и старых форматов TextMeshPro оканчивающихся на GUID 84D1172F6E0B250607B989F4EA9CABFA
00389A682EF3A61D14D3389BA997B79084D1172F6E0B250607B989F4EA9CABFA
7623F19A6E083D40BAE2EE235A6AA24384D1172F6E0B250607B989F4EA9CABFA
D02128385050A1C20919A3D4030205493EDA7F221D136AC359347F363766A44F
пригодится плагин https://yadi.sk/d/6gZWrrEozS0_cw
Вроде бы даже эти координаты старого формата подойдут и к версиям юнити 4-5.

Создание шрифта в самой юнити
1. Window -> TexMesh Pro -> Font Asset creator (по необходимости импортировать TextMeshPro) (указать нужный pading обычно 5 для размера 80, можно узнать из оригинала) (создать текстовый файл с вашими символами и пунктуацией и добавить сюда для генерации этих символов) (остальное разницы не имеет, нажать генерацию шрифта).
Файл символов для русского языка теперь есть в сборнике с бат файлами.
2. Добавить объект текста UI>TextMeshPro
3. Перетянуть на его свойствах там где прописан шрифт SDF LiberationSands, свой созданный шрифт.
4. Собрать проект.
5. Извлечь шрифты также как и оригинальные. По возможности с дампом. Можно воспользоваться бат файлом Export_FontAndTextures_dump.bat (UnityEX и ассеты рядом).
Так создаётся шрифт на юнити достаётся его метрика (дамп) и текстура и шрифт, далее он адаптируется к игровому. Под адаптацией подразумевается исправление PathID на материал и атлас текстуры, и если понадобится также изменить размер шрифта по необходимости. Это можно сделать на текстовом дампе структуры от версии Ultimate.

PathID — это номер файла или его идентификатор в архиве, при обновлении игры этот идентификатор может смещаться и соответственно изменяться, в следствии чего созданные файлы со старыми значениями этих идентификаторов не подойдут к новой версии игры и просто не запустится.
Получается в файле метрик PathID значение ссылки на атлас текстуры должно соответствовать её значению из оригинального файла метрик и ещё есть PathID на материал, с ним также точно, если они не будут соответствовать, то шрифт неправильно будет работать. Их нужно править после создания шрифта на оригинальные значения, так как в новых созданных на движке юнити они будут другие. Также можно изменить размер шрифта, если векторный оказался больше оригинала. Особенность только в том, что для уменьшения нужно увеличивать значение. Это значение представляет собой размер шрифта, и когда текст обращается к шрифту, он изменяет буквы под свой размер шрифта, на разницу этого значения. Cоответственно размер текста 20, а размер шрифта 50, он уменьшит на 30, так это работает, и да получается сами размеры текста находятся в другом месте в коде или рядом с самим текстом в MB (.Text или .TextMeshProGUI).
В UnityEX же есть поддержка вставки дампов без замены этих значений, тоесть они остаются оригинальными с параметром при вставке дампа -skip_pathid. Да в юнити посылочная система адрессации к файлам, не как в анреале по именам, поэтому возникают такие небольшие трудности. Получается что при вставке дампа с этим параметром можно даже не восстанавливать старые значения и такая вставка через консольный режим адаптирует шрифт для любой версии игры.
Извлечение дампов доступно в Ultimate версии. Но вставлять их можно в обычной клиентской части для вставки дампов через консоль с этим параметром.

Немного о шаблонах и дампах (добавлено 23.11.2023)
Шаблон — это файл получаемый из кода проекта с папкой Managed где есть dll файлы для простых архивов .assets и data.unity3d сами эти архивы не содержат шаблонов. Также их можно получить из бандлов в ..._Data\StreamingAssets\aa\… Шаблон содержит структуру файла и типов данных. Он может содержать структуру не до конца файла, тогда остатки данных запишутся в тег футера. Форматы шаблонов это .txt и .xml. XML формат содержит дополнительные данные тип самого файл и его GUID(идентификатор структуры). Структуры от версии юнити и T
extMeshPro могут меняться, соответственно будут меняться и GUID. Из проектов il2cpp обычно с папкой il2cpp_data(также может быть редко Managed), особенность отличия что в проекте il2cpp нет dll файлов в этих папках, там находится global-metadata.dat, из этих проектов нельзя получить шаблон для простых архивов .assets и data.unity3d, остаётся доступным лишь получение шаблонов из бандлов. Также шаблоны можно изменять вручную под новую структуру с новым GUID, но это уже знания программистов, тут нужно смотреть какие данные были добавлены или убраны и также изменять шаблон с сопутствующим изменением GUID под новую структуру, чтобы UnityEX приняла его.
Где-то с версии 2022.2.3f1 и выше получение шаблонов из кода dll возможно не получится, это проблема дамперов. Остаётся ручное исправление или взятие соответствующих из бандлов.
Дамп — это файл созданный из шаблона, в нём содержится та же самая структура шаблона, а также сами значения данных из обработанного файла. Дампы имеют тип .xml (.txt возможен тоже). Дамп также можно использовать в качестве шаблона, содержащиеся значения просто не учитываются.

Правки через дамп версии Ultimate
В Ultimate версии появилась возможность подключать шаблоны структур, тем самым можно подключить к файлу метрик соответствующий шаблон.
Главное, чтобы после создания нового шрифта на движке юнити совпадал GUID его можно узнать в UnityEX справа на типе метрик шрифта. Обычно это достигается, если делать шрифт на юнити похожей версии, рядом находящейся. Даже если они не совпадают можно сравнить шаблоны и в новом шрифте подправить структуру убрав или добавив оду две записи, разумеется если отличия небольшие, также исправив GUID.
Начиная с версии UnityEX 1.10.1.5 следующие перемещения необязательно делать, можно просто включить функцию, Damp Structure → NotReplace_PathID
или ключ в консоли -skip_pathid.
В дампах необходимые значения для переноса из оригинального файла метрик в новый, находятся в тегах “material -> m_PathID”, “m_AtlasTextures -> m_PathID”. Размер находится в значении “m_FaceInfo -> m_PointSize” размер ненужно менять, он масштабируется автоматически он лишь для сведений при создании, обычно делаются просто большого размера например 100, главное, чтобы все символы просто влезли при создании. Также нужно восстановить оригинальное имя m_Name, если вставка и получение raw будет на оригинальном assets.
На проектах cpp2il возможно подключить шаблон из файла, вот пример от версии 2019.4.0f1 может и к рядом версиям подойти, сравнение идёт не по типу, а по GIUD от типа структуры, номера типов могут изменяться, но идентифицированные (распознанные) MonoBehaviour практически всегда с одним и тем же типом в разных проектах TMP_FontAsset. Поэтому лучше такие файлы заранее распознать, если есть такая возможность. К тому же не придётся переносить дополнительные данные PathID от m_GameObject и m_Script из оригинала при создании нового шрифта.

Также это всё можно сделать через адаптер переноса значений PathID из оригинала в новые дампы.
https://disk.yandex.ru/d/rOf5aXpB2h1ieQ

Также в новых версиях UnityEX можно вставлять дампы без замены PathID. То есть если GUID совпадает как и шаблон. Упомяну шаблоны могут быть одинаковыми, а GUID отличаться можно просто его заменить в xml, даже так. Ну и после создания шрифта в юнити и GUID совпадает, можно просто этот дамп запаковать с включённой настройкой в контекстном меню DampStructure>NotReplace_PathID, или же при запаковке через консоль с параметром -skip_pathid

Список версий TextMeshPro с соотношением GUID
4.0.0-pre.2 = 2022 GUID 95A18F96F4201D2D26DED9CA2123D2AD5A5A277347DB0BFDE9CD841D879FBDEF
4.0.0-pre.2 = 2021 GUID 2F2E88E9D00460379CA198F53F4F032A5DF50B782794BBB358989E140EA68000
3.0.6 (эта версия установлена по умолчанию где-то с 2020 до 2022, но она может меняться по структуре) = 2020 GUID 8A3A4FD52F8BE968F65F978E60AF78E2300FD99066F8C288E85F5E81CE65FE34
2.1.1 = 2020 GUID 8A3A4FD52F8BE968F65F978E60AF78E2F0786811516F7DE8BEFD7A3E181E567A
1.4.1 = 2017 GUID 8A3A4FD52F8BE968F65F978E60AF78E235A9693C388776AAF487636491A20F11
1.4.1 = 2020 GUID 8A3A4FD52F8BE968F65F978E60AF78E2A9F049C3DC82BB36FDB142E4D6A2658D
3.2.0-pre.4 = 8A3A4FD52F8BE968F65F978E60AF78E2220F8E76B87FD10CA65687A710C5FC26
2.2.0-preview.3 = 8A3A4FD52F8BE968F65F978E60AF78E22ADA106502C7EC666EFE839C94EEFF3A
3.0.1 = 8A3A4FD52F8BE968F65F978E60AF78E2F0786811516F7DE8BEFD7A3E181E567A
3.0.3 = 8A3A4FD52F8BE968F65F978E60AF78E2300FD99066F8C288E85F5E81CE65FE34
1.1.0 = FC68346A811CB3593CF829B8A087ED8C75138F822C64030260EDA9471996857B
1.4.0 = 8A3A4FD52F8BE968F65F978E60AF78E201516CA6B62C750FE55BBD4200234B20

Также соотношение версий можно посмотреть в BASE_TemplateXML_For_CPP2Il.rar (ссылка выше)
BASE_TemplateXML_For_CPP2Il\TMP_FontAsset\
А в файле Version unity engine default TMP.txt написаны версии, которые идут по умолчанию и те версии, которые можно установить на конкретной юнити.

https://github.com/needle-mirror/com.unity.textmeshpro/releases?page=3
Install
Windows>Package Maneger>Plus>Add package from disk
Или установить другую версию, что доступна в 
Windows>Package Maneger>TextMeshPro
Для установки с интернета может понадобится VPN.

Также доступен другой адаптер.
Делает наоборот, не ссылки переносит, а сами координаты. Но и здесь не нужно заморачиваться с GUID, чтобы он совпадал.
Он переносит только координаты и символы, так же размеры текстуры и размеры шрифта. Не переносит какие-то ректы, не знаю даже для чего они и остальные значения. Правда из-за этого что не всё переносит может шрифт и хуже будет выглядеть.
https://disk.yandex.ru/d/_BY216S2zpdlHQ
Adapting_fonts созданные дампы
Original_fonts оригинальные дампы
Done_Adapting результат
Этот адаптер лучше применять когда структуры всё-таки хотя-бы похожи друг на друга, например для версии 3.0.6 TMP, которая может отличаться по структуре, но всё равно они почти похожи.

Небольшая инструкция способом создания шрифта соответствующей версии TextMeshPro
Извлечь шрифты через батник (Export_FontAndTextures_dump.bat или Export_FontAndTextures.bat для il2cpp). 
Если не получилось распознать имена файлов (Mono\ или Dump\ не извлечены) то извлечь файлы “.–[номер]” без распознания имён файлов, это вручную файлы координат искать. Обычно размер 5-30 кб файлы с отрицательным типом, также по поиску внутри файла может быть название шрифта и буквы “SDF”.
Потом нужно знать GUID от типа файла справа в списке, из контекстного меню можно узнать или если дамп извлечётся там тоже есть.
Извлечение это лишь для того чтобы имя файлов получить текстур и файлов координат.
Но если для способа адаптации (Не сопоставимых GUID), нужны будут и дампы оригинальных файлов. И там нужно будет шаблоны подключать в il2cpp, в обычных проектах автоматом подключаются, чтобы дампы извлечь. (наверное путь без адаптации проще, но нужно создать шрифт с сопоставимым GUID)
Шрифты создаются в юнити на правильной tmp версии.
Версии TMP соответствующих GUID можно найти выше в архиве шаблонов.
Получается создаётся шрифт (нужной версии), этот созданные шрифты извлекаются Export_FontAndTextures_dump.bat, переименовываются в файлы из разбираемого проекта ставятся по своим путям в Unity_Assets_Files\ (GUID может получится другой, но если точно уверены в версии, его можно поменять, у любой версии tmp может быть несколько этих идентификаторов, но обычно совпадают). Если подход был без получения дампов, например из-за il2cpp, то нужно созданные дампы нового шрифта расположить в папке Unity_Assets_Files\[архив]\DUMP\ дальше либо в корне (без распознания), либо дальше по пути в папке Mono\ ну и тип будет + .xml от соответствующего файла координат.
Дальше запаковывается (включив DampStructure>NotReplace_PathID) и всё.

Не актуальный другой способ добавления шрифта (точнее подмена текстурного на векторный), ради информации оставлено.
Есть ещё немного инфы, можно сделать так, чтобы читались символы из вектора для этих TextMeshPro. (там где есть такое m_Version = "1.1.0" m_SourceFontFileGUID = "f0854c3d5d04f434e9cbec37c808e836"), после идёт m_SourceFontFile, (примерно $44, 4 байта) его m_FileID(номер ветки архива включения, если в самом архиве находится векторный шрифт это значение будет равно 0, или номер ветки подключаемого ассета), далее идёт (примерно $48, 8 байт) m_PathID(номер файла) тут находится PathID на исходный вектор ttf или otf, если в шрифте будут отсутствовать символы они будут браться из вектора, только главное переключить (примерно $50) m_AtlasPopulationMode на 1 это значит Dynamic (динамический шрифт) подключатся будет векторный, (а статический 0 только берёт то что есть в текстуре). Но это нужно добавлять свой векторный шрифт в архив, эта функция добавления доступна только на Ultimate версии. Либо использовать какой-то, который уже находится в ассете например стандартный, который идёт в юнити по умолчанию, но проектами обычно не используется LiberationSans. Также возможно придётся подключить ветку архива из тех где нужно подключить этот шрифт, когда этот шрифт находится в другом архиве, функция добавления веток доступна в Ultimate версии, ну и соответственно вместо m_FileID нужно писать этот добавленный номер ветки. (Library\unity default resources, не учитывается в нумерацию и просто пропускается). Но после небольших тестирований было выявлено, что такой подход тормозит движок юнити так как при появлении первых символов которых нет в текстурном шрифте они начинают грузиться из векторного, то ли они растрируются толи что, в общем движок тормозит. :) Особенно это заметно на корейских и китайских иероглифах, так как их очень много и каждый просто грузится, на кириллице это более-менее. :)
Пример где это находится на распознанных MB https://ibb.co/k8y1kdQ
Или вот на не распознанных https://ibb.co/WxQYD6K
Как добавить ветку ассета:
https://ibb.co/Nr9k2XP
https://ibb.co/BnJ6ym6
Но как понятно этот вариант не совсем работоспособен, из-за дефекта движка юнити на этом способе, обычно специально на кириллице. Также помимо тормозов, всё равно, возможно, не отображение части символов, в виде квадратиков. Когда эти символы присутствуют в шрифте. Либо это также баг движка, либо генерируемые отсутствующие символы на текстуре, не влезают в неё и так и остаются отсутствующими, такой дефект можно заметить, там где разработчики подключили векторные шрифты к шрифтам TextMeshPro, но не сгенерировали нужные вам символы. Или просто отображаются не те символы, такое лечилось только полным удалением координат латиницы и она начинала браться также из подключаемого векторного (убирались так m_GlyphTable size=0 m_CharacterTable size=0, data_1 и далее от массива необязательно теги убирать).
Способ конечно имеет право на существование и даже быстрее делается чем через движок. Всего лишь найти в этом же архиве ttf и в дампе xml исправить m_SourceFontFile.m_PathID=номер файла ttf (другой в бандлах в UnityEX включить столбец PathID), m_AtlasPopulationMode=1, 2 массива координат size=0.
На версиях юнити с 2021 это либо специально было отключено разработчиками либо совсем сломали, обычно это уже не работает, либо подключаются другие зарезервированные вектора из NotoSansHans, можно подменить иногда их на аутентичные, просто если в SDF нет символов ссылаются на эти, с отсутствием в m_SourceFontFile.
Да и ещё в m_FallbackFontAssetTable можно подключить другие SDF, также если символов нет то попробует взять из дополнительных (LiberationSans технический от юнити можно из него подключать).

Подключение шрифта через XUnity.AutoTranslator это самый простой способ добавления. Но разнообразие ограничено лишь одним шрифтом (стандарт ариал).
Вот если кому нужно создавал NotoSerif для него, содержит только кириллицу и латиницу. https://disk.yandex.ru/d/X6fPSSTtvRyFzg
OverrideFontTextMeshPro=NotoSerif_sdf_u2018
Ну и вдобавок о багах шрифтах на юнити. От квадратов на части буквы, когда шрифт не поддерживает буквы, а берёт из вектора, решение подключить sdf. И бывает так, что буквы обводятся полупрозрачными серыми квадратами, на высоком разрешении это не очень заметно, но видно, а при низком совсем видно становится. Косяк TextMeshPro, это уже лечилось только подключением шрифтов через XUnity.AutoTranslator

Шрифты font_raw
Это другой формат также может быть растровым и с distance field, а может быть векторным. Если он растровый то бинарные координаты будут в нём. Ну а если вектор то там будет весь файл вектора ttf.
С растровым созданием шрифта почти всё также, но в юнити он по другому создаётся, там кидается векторный шрифт в проект и переключается режим Character, Dunamic это вектор остальные для растра с заданными символами.
Соответственно, чтобы шрифт задействовался в сборке его нужно добавить на соответствующий текст UI>Text Либо TextMeshPro.
Также в последних версиях UnityEX появилась поддержка вставки вектора на шрифт растровый, которые font_raw и наоборот.
Нужно вместо файлов .ufnt сделать .ttf, а сам ufnt убрать, запакуется вектор. Но вектора тоже в игре могут косячно выглядеть и придётся всё равно клепать текстурные. Ну и наоборот также вместо ttf подставлять созданные ufnt.
Но для font_raw лучше использовать fntxml_to_unityfnt + BMFont, это старый формат шрифтов.

Тексты. Не стандартный способ изменения текста AUTOTRANSLATOR
Если текст игры не в локализационых файлах находятся это форматы LanguageSourceAsset, LanguageSource при распознании, с ними нужно другим способом поступать, для них есть прога, это бинарный табличный файл просто.
Для множества файлов бинарного текста, помимо прямой вставки на файлы, можно также применять такую приблуду Автопереводчик

Сборки в стиле кинул что-нибудь в игру, тупа жмякнул на всё и уже гамаешь.
https://disk.yandex.ru/d/PkI0TPJFlk3IZA
Настройки включения перевода можно прямо из игры переключать Alt-0

В этих уже всё настроено, русский перевод, установлен дипл, при фейлбеке идёт гугл, плюс подхватывает шрифты, если скинуты, включены нужные свойства GeneratePartialTranslations=True и TemplateAllNumberAway=True.
Шрифт NotoSerif_sdf_u2018 мной сделанный он с засечками, шрифт можно подключать только один в конфиге ClearSans_sdf_u2018 ещё какой-то левый без засечек. Как и делать самому. Дефольные ариаловские есть на гитхабе. Можно закинуть в папку с игрой, если нужен какой-либо.
Сами последние версий тут, но они не собраны и ариал шрифт тут есть.
https://github.com/bbepis/XUnity.AutoTranslator

Переводчик типа как бы сам достаёт текст и переводит его машинно, но это всё ненужная фигня. На самом деле, это применяется другим способом, можно текст достать самому из файлов бинарных, перевести и в базу этого софта засунуть. Сам автоперевод машинный просто отключается. Но есть небольшие ограничения, там составляемый текст в файлах он разделён, а в базе уже на игре слеплен будет (генерируемый текст), такой если только на файлы вставлять, иначе сборочные части будут просто дублироваться. Но редко, когда такого много бывает, но всё равно (от этого может помочь настройка GeneratePartialTranslations=True и TemplateAllNumberAway=True). В общем это топ сейчас. Я делал для этого сборку инструментов, такая получилась. https://yadi.sk/d/n7xDmcobAMk-BA
Тем самым постоянного ожидания перевода не будет и текст весь будет получен и уже переведён, возможно и ручным подходом.

Вкратце files_bin там бинарники , через ExtractTextUnityBinary.exe извлекается текст, дальше батники 1.PackALL_DF.bat, 2.Clear_DFC.bat, создаётся TextMono_RU.txt, и ConvertTextToAutoTranslator.bat
Отправить созданную базу в AutoTranslator\Translation\ru\Text\_AutoGeneratedTranslations.txt

Чуть подробнее.

  1. В папку files_bin скинуть бинарники разобранные по типу. В UnityEX это разбирается и извлекается (через гуи и или батником через консоль по всем без разницы).
  2. ExtractTextUnityBinary.exe там нажать кнопку Извлечь (с остальными настройками долго объяснять стандарт сойдёт)
  3. 1.PackALL_DF.bat — запакует все текстовики в один файл UnityText.txt и создаст пожатый с дублями UnityText_DF.txt
  4. 2.Clear_DFC.bat почистит UnityText_DF.txt и создаст UnityText_DFС.txt чищенный (необязательно в tools trash_lines_reg.txt это то что регулярками выкидывается, ignore_lines_reg.txt это то что нужно если в мусор попадёт такая строка то она останется, также почти такая же чистка есть в корне от trash_lines_reg.txt проги ExtractTextUnityBinary тоже сначала немного чистит)

Для патча
CreatePatch.bat это уже для обнов, если Text_EN.txt и Text_RU.txt это будет старые текстовики те которые переводятся на ноте например, при нажатии для нового UnityText_DFС.txt создастся patch.txt

В общем это UnityText_DFС.txt получится начальный файл, который и переводится. Его нужно будет перекинуть в Text_EN.txt и делать для него Text_RU.txt
Также и для любого другого способа получения текста подходит, хоть из даже из dll есть программа ScanIL достаёт из деассемблированного текстовика с помощью ildasm (ilasm обратный компилятор на всякий).
Text_EN.txt — файл с полученным текстом из игры.
Text_RU.txt — файл перевод. 
ConvertTextToAutoTranslator.bat для конвертации в базу авто-переводчика.
Получится файл для авто переводчика _AutoGeneratedTranslations.txt
Сам машинный автоперевод можно отключить в конфиг файле убрать сервис автоперевода или по нажатию Alt-0 здесь убрать.

Инфа для батника 
ImportTextToMonoBehaviour.bat
Для частичной вставки текста напрямую в файлы, это для тех строк, которые генерируемые, чтобы разные связки не переводить на базе.
Техническую часть батника я думаю ненужно объяснять всё равно непонятно будет, да и технари сами в этом разбираются.
Вкратце убирает строки, которые меньше 30 там указано из основного TextMono и строки, которые помечены как //works их оставляет. Ну и вставляет это всё оставшееся на бинарники в BIN_RU. Получается, что так на бинарники не вставятся короткие строки, а указанные (которые генерируемые) и большие вставятся. Ну а остальные, короткие пойдут в автопереводчик.
Отсеивание только долго идёт на моём 40мб файле, наверное, 1 или 2 часа было. (так-то в батнике даже можно убирать это отсеивание и вставлять всё прямо в бинарники)
Проблемка только осталась, что таким способом остались не переведённые строки, которые тоже подставляются типа iron, wood, но непонятно, где находятся так как в этих бинарниках такого под тысчу штук, одиночные они конечно переведутся автопереводчиком. Зато так ничего не глючит уже в игре, придётся с этим смириться.
В моём бы случае с ValeGuard при вставке всего бы в бинарники начались бы баги просто, так что вот.
Возможно ещё может быть проблема с переводом одинаковых строк, которые иногда по разному нужно перевести, автопереводчик такого не поддерживает, тут только на бинарниках как-то придётся делать, и ещё сначала найти эти нужные. Это можно сделать, но так-то тоже несущественно.
Для кого-то это конечно всё мудрёно, но там просто нужно разбираться с тех. часть.

  Font and Text Programs (Show Contents)

Конвертер для шрифтов fntxml_to_unityfnt 
https://yadi.sk/d/vgCbTcqs482k8w
Экспорт только для теста настроек, сами fnt (xml) делаются в BMFont, как прикручивать эффект distance field описано выше. 
Поддержка: (старые форматов от U4, font_raw, старые форматы SDF TextMeshProFont, TMP_FontAsset) Новые SDF 2018-2019... не поддерживаются.
Иногда необходимо указать не использовать page или chnl в зависимости от формата, в основном сейчас всё идёт только без chnl.
В очень редких случаях (возможно для TextMeshProFont), если автоматический поиск смещения не сработает то нужно указать смещение вручную на количество символов после ключа -hand)
Остальные переключатели остались от старых версий программы и сейчас уже можно сказать ненужны для использования, и проще использовать автоматический поиск смещения.
Для старых форматов U4 с целыми типами данных используется ключ -cordint
Поддержка формата font_raw включается автоматом при этом типе файла, либо принудительно через -font_raw
Правильные настройки можно узнать по извлечению export_UnityToFNT (-unitytofnt) или info_UnityData (-info) по полученным значениям координат.
Возможно подгонять координаты через ключ -plus c указанными значениями.
Добавление списка кернинга отключается через ключ -k
-svad [value] можно указать с какого символа начинаются координаты, по умолчанию тут находится пробел значение байта 32, это значение используется в автоматическом режиме поиска.
-sbtn1 [value] значение сколько пропустить байт после первого названия с учётом выравнивания к 4, для перехода на количество символов.
-sbtn2 [value] значение сколько пропустить байт после второго названия с учётом выравнивания к 4, для перехода на количество символов.
С остальными настройками можно ознакомится в программе.
С помощью консольного режима есть возможность использовать программу в качестве патчера в русификаторе, так как после каждого обновления игры часть байт меняется, старые файлы уже не подойдут к новой версии, и необходимо заново накатывать координаты.
Этот софт может оказаться сложным в использовании, так как чаще всего нужно использовать просмотр координат файла в hex и указывать смещения на количество символов. Если автоматический поиск подойдёт то при экспорте должны получаться нормального вида файлы fnt, тут хотя бы понимать нужно как они выглядят, ну в общем они ровные должны быть, как бы значения сильно не должны скакать. Подобранный батник уже с такими же параметрами, но для импорта используется для обратной вставки уже созданного шрифта в BMFont с ру буквами. Но чаще всего формат постоянно меняются в каждой игре почти свой, и без понимания какие настройки нужно применять при очень не стандартных видах вряд ли что-то получится. Также в юнити 2019 появились довольно сложные форматы даже для разбора (идут в виде отдельных таблиц с набором символов, а в координатах ссылки на них, похожего вида как в UE4) и тут они не поддерживаются, эти TextMeshPro 2018-2019... уже делаются через юнити, описание выше.

Parser_ULS
Парсер для извлечения и запаковки текста для I2Languages с  LanguageSource или LanguageSourceAsset в формате csv
https://yadi.sk/d/Lz3SBVVFU7OJdg
Небольшой минус нужно вручную указывать смещения на количество рядов (row) после ключа -o, а также прочие настройки из-за различий шапки этих форматов. В основном смещения достаточно (а -d всегда 2).
Замечено что для LanguageSourceAsset почти всегда используется смещение -o $0C, -d может варьироваться от 2 до 4.
Также может подойти и для других локализационных файлов с простыми таблицами текста где -st будет количество колонок например -st 10

Настройки для других классов простых таблиц
LocalizationFile -o $1C -st 1 -nkey
LocalizerDataContainer -o [offset to row] -st 1 (example offset https://ibb.co/1vP7YsC)
StringLanguageBank -st 1

Другие не мои софтины для файлов *.LanguageSource или *.LanguageSourceAsset
https://github.com/sisizanohito/phoenix_point_jp_mod
https://github.com/sisizanohitopontoon/phoenix_point_jp
unPacker_CSV
Пакер анпакер для извлечения и запаковки текста для csv дополнение к Parser_ULS
https://yadi.sk/d/LhC3A8SbBKlv8g
Более продвинутая сборка с поддержкой обработки.
https://disk.yandex.ru/d/OcoU3MO2IdukgA

Parser_UnityMDcpp2txt
Парсер для извлечения и запаковки текста для global-metadata.dat
https://yadi.sk/d/RnWCiP4j1umm3g

EXTRACT_TextBIN
Извлечение текста из MonoBehaviour (гуишная)
1.5.2 от 19.12.2019 https://yadi.sk/d/ezkoRlUvvZQGjw
1.5.5 от 23.01.2021 https://yadi.sk/d/2ctY9w_5Hk9Uhg
Прога мощная, но полного описная всех настроек нет, по умолчанию вроде как всё работает для юнити одной кнопкой, извлечением текста из файлов в папке files_bin.
Скажу только есть сортировка распознанных monobehaviour текста от мусора.
Нет никакого подбора букв и символов. И формат извлечения и вставки простой txt, как и в запаковщике ParserTextBinUnity, который используется уже для вставки.
Ну и пакер анпакер SpliteCombiner для текстовиков где-то тут был, чтобы их все в один файл -p собирать -u разбирать.
Также можно использовать при умелом использовании и для других бинарных файлов например java class также в скупе для вставки с ParserTextBinUnity.

ParserTextBinUnity
Запаковка текста MonoBehaviour и поддержка старых файлов локализаций (консольная)
https://yadi.sk/d/7Aw2_d9wdhUsyg
Прога мощная, но полного описная всех настроек и ключей нет в консоли сокращённо прописано для своего понимания, есть уже созданные батники.
Писались для себя. На сколько они удобнее для пользователей я не знаю. Но подходит для вставки текста в любые бинарные скрипты, там где ненужно менять смещения например uasset Unreal (но нужен дополнительный фикс смещений в uext), class Java,  движок Visionaire Studio, ну и для Unity бинарных файлов.
Другая сборка от 2022 года, начали появляться снова эти старые локализационные форматы DialogueDatabase.
https://disk.yandex.ru/d/Uwn0U3i4Yvm2nw
Описание тегов формата DialogueDatabase, под какими точно находится нужный текст (Например оказалось, что не нужны теги Title и Description).
https://www.pixelcrushers.com/dialogue_system/manual2x/html/dialogue_editor.html#dialogueDatabase

ТoolsKit_MonoBehaviour 
ToolsKits по извлечению и вставке текста, а также создание текстовой базы для XUnity.AutoTranslator.
files_bin папка должна содержать бинарные файлы MB.
UnityText.txt — создаёт 1.PackALL_DF.bat, содержит весь извлечённый текст считается основной базой (статическая база для текущих файлов MB).
UnityText_DF.txt и UnityText_DFC.txt не очень нужное, 2.Clear_DFC.bat, просто очищенные файлы от мусора, могут быть использованы как начальный файл TextMono_EN.txt
CreatePatch.bat — не очень нужное, создаёт патч с новым добавленным изменённым текстом при обновлениях.
TextMono_EN.txt — оригинальный текст (динамическая база текста оригинала, может браться откуда угодно, и содержать текст патчей обновлений игры)
TextMono_RU.txt — переведённый текст (динамическая база текста перевода, должна соответствовать строкам и количеству строк оригинала TextMono_EN)
Все тексты должны быть в кодировке UTF-8 not bom
_AutoGeneratedTranslations.txt — база текста для автопереводчика ConvertTextToAutoTranslator.bat.
Обратная вставка на бинарные файлы MB (через ParserTextBinUnity) ImportTextToMonoBehaviour.bat. (результат будет в BIN_RU)
https://yadi.sk/d/n7xDmcobAMk-BA
Обновления
04.09.2021 (небольшие правки)
05.09.2021 (ExtractTextUnityBinary обновлён до 1.5.6 извлечение только кириллицы изменено на UNICODE + ANSI и латиница также извлекается)

EX_REPLACER_TEXT
Программа для парсинга текстовых форматов (xml, json, lua).
script_list.txt содержит регулярные выражения для обработки требуемого текста.
Первая строка “содержит открывающийся тег” откуда. Вторая “содержит закрывающийся тег” докуда. Этот текст внутри между этими тегами обрабатывается. 3 и 4 это отступы в для захвата самих тегов, 5 и 6 это добавляемый текст к извлекаемому, эти значения практически не нужны можно оставлять какие есть. Дальше можно добавлять ещё выражение (6 строк) в такой же последовательности для другого открывающегося закрывающегося тега, если понадобится.

Сейчас настроено для обработки текстовых дампов xml из Ultimate версии.
Добавлена замена xml меморики (кодов), чтобы получался такой же текст как и при извлечении из ТoolsKit для MonoBehaviour (ExtractTextUnityBinary)
Такое извлечение может пригодится когда в бинарном файле локализации содержится множество языков, а нужно получить текст только конкретного языка.
Чтобы вставить этот полученный текст уже в бинарный файл нужно в текстовом файле прописать в начале file/[имя и тип бинарного файла].txt — это будет UnityText.txt и создать такой же TextMono_EN.txt, в TextMono_RU.txt будет перевод, так можно уже буде вставить текст перевода конкретного языка обратно на бинарный файл.

https://disk.yandex.ru/d/2ELh-1-GQJMJYg
Более продвинутая сборка с поддержкой обработки одним текстовым файлом из всех, сжатия дублируемых строк (можно переключить в бат файлах), вывод патча с новыми и изменёнными строками + адаптация через память переводов неточно совпадающих строк.
https://disk.yandex.ru/d/yiLvb0ee-FwdgA

dumper_dll_class
To create unity class templates from project dll libraries. Can output template dumps in txt and json formats.
In version 1.9.8.6 UnityEX, this program and its templates are connected and added to the collection of programs for conversion, here it is left as an introduction to how it works. All these templates can also be obtained in UnityEX Ultimate, but there they are still processed and superimposed on file data to obtain text dumps with their data, describing the file structure.
Test batch file damp_test.bat, copy everything to the project folder where the Managed folder is located. The values are taken from the disassembled MB from the scripts. In UnityEX, they are in the path and are also in the description of the file. Mono \ [DLL file name]. dll \ [Namespace] \ binary_file_name. [ClassName] The entire path can be copied from the search bar by clicking on the file.
The resulting templates contain alignment values, which are necessary for the correct operation of the structures. This is why this program was created.
https://disk.yandex.ru/d/0duQbdN5FvgOtQ  Version 1.1
https://disk.yandex.ru/d/r8Jng6_upxIQIQ  Version 2.0
https://disk.yandex.ru/d/IchzK3JHKbJeKw  Sources

Buying a key for paid versions of UnityEX:
 

  WebMoney (Show contents)

WebMoney
120$
WMZ:
Z902634901912

110 USDT
WMT:
T489833437952

BEP20
0xced7f3aa661c0cc4d3b7d3a1694bfe2d341feaf5
TRC20
THPy7Jx4c6rswXUL3Ax8STtFrQ7wiN2n58

  PayPal (Show Contents)

Not Supported.

  Sber (Show contents)


Ultimate 9500₽

  Yandex (Show contents)

410012996939768
https://yoomoney.ru/to/410012996939768

Ultimate 9500₽

  Cryptocurrency (Hide content)

Ultimate
Price: 110 USDT

For USDT
Network BEP-20 or ERC-20
0xced7f3aa661c0cc4d3b7d3a1694bfe2d341feaf5

Network TRC-20
THPy7Jx4c6rswXUL3Ax8STtFrQ7wiN2n58

In any cryptocurrency exchange or application. Example transfer through  https://www.tronlink.org/
Or Binance  https://www.binance.com
When paying, contact dragonzh@yandex.ru


In the comments, please indicate “For UnityEX” or email dragonzh@yandex.ru.

Paid version UnityEX
Ultimate version, support for Unity up to 2020-2021 and possibly higher, processing of sounds, videos, sprites, processing of text dumps.
Payment is made to the details in the program. You need to contact me@DragonZH, I will send the key upon payment.
Transferring the key to other people is not allowed, otherwise the key will be blocked!
It is also possible to block the key when using a VPN or proxy!

I have completed the crypto transfer and have attached the proof to my email. Kindly send the key and UnityEX to the same email address (Gmail).

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


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

Глобальное обновление
v1.10.7.0 Ultimate
Добавлено создание чанков с выбором размера чанка, раньше было одним. Благодаря этому теперь бандлы с размером более 4гб стали рабочими. 
Добавлено сжатие в бандлов по чанкам, а также шапки с выбором типа сжатия.
В списке от поиска файлов нумерация на 1 больше как и в списке в gui.
Добавлена поддержка отображения Utf8 символов в списке файлов и извлечение/запаковка файлов с такими именами.
Небольшие правки открытия старых бандлов, в некоторых случаях и новых.
Поддержка шаблонов бандлов unity id 15 5.3.8 - 5.6.6 (для 2DToolkit UIFont tk2dFontData).

  • Лайк (+1) 1
  • Спасибо (+1) 3

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


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

Добрый день, спасибо за обновление. Подскажите, можно ли в консольном режиме в настройке для сжатия ( -comp...) прикрутить принудительный выбор “Yes” или “No”, как дополнительный параметр (например -comp_lzma -yes)?22-11-2024-115937.jpg

Изменено пользователем Atanvaron

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


Ссылка на сообщение
5 часов назад, Atanvaron сказал:

Добрый день, спасибо за обновление. Подскажите, можно ли в консольном режиме в настройке для сжатия ( -comp...) прикрутить принудительный выбор “Yes” или “No”, как дополнительный параметр (например -comp_lzma -yes)?

Эта часть будет переделана в следующей версии.

Обновление v1.10.7.2 Ultimate
Исправление запаковки бандлов, когда при импорте размер добавляемых файлов меньше оригинальных.
Небольшие правки интерфейса и добавление настроек методов дислокации блоков чанков.

Изменено пользователем DragonZH
  • Лайк (+1) 1

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


Ссылка на сообщение
39 минут назад, pipindor666 сказал:

http://joxi.ru/bmooqllU36BzMm.png

Новая версия поломала шрифты!

Это не помогает?
Панель управления → Региональные стандарты → Дополнительно → Изменить язык системы
Убрать или поставить галочку (выключено по умолчанию и работает).
Поставить страну Россия.
Проверить не модифицировался ли файл сторонне.
Это было добавлено из-за кракозябр в большей степени, на китайских и русских иероглифах, так что если не поможет ничего, переключить язык на english.

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


Ссылка на сообщение
10 часов назад, pipindor666 сказал:

http://joxi.ru/bmooqllU36BzMm.png

Новая версия поломала шрифты!

у меня шрифты в порядке, вероятно дело не в программе

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


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

Здравствуйте!
Может ли кто-нибудь помочь мне с переводом этой игры?
Большое спасибо тем, кто может помочь.
locbin файлы, содержащие тексты. Опытный программист может сделать это примерно за 5 минут... :) Export Tool готов, я могу его написать... :)
Disney Dreamlight Valley
Ссылка на игру: https://store.steampowered.com/app/1401590/Disney_Dreamlight_Valley/

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


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

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

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

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

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

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

Войти

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

Войти сейчас



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

×