Skip to content

Latest commit

 

History

History

Folders and files

NameName
Last commit message
Last commit date

parent directory

..
 
 

README.md

UnityPatcher

UnityPatcher, или же Patcher, — это консольная программа для замены Unity ассетов. Она работает на основе UnityPy.

image

Особенности:

  • Поддержка операций для таких типов как Texture2D, TextAsset, AudioClip, VideoClip, MonoBehaviour, и другие.
  • Поддержка экспорта дампов MonoBehaviour до Unity примерно 2021 версии (на основе AssetStudio).
  • Модифицирование бандлов напрямую без необходимости распаковки CAB-архивов.
  • Запаковка бандлов со сжатием, которое было в оригинале.
  • Экспорт ассетов на выбор в одном из форматов: конвертация, raw, JSON дамп.
  • Функция импорта сперва пакует дамп, а затем связанный с ним конвертированный файл, что дает вам возможность импорта в связке, например, изображения и её дампа.

Самое главное, всё делается в несколько кликов, а команды очень простые. Также при импорте нет жестко заданных путей, где патч файлы должны лежать, а значит вы можете группировать их как угодно.

Требования

  • .NET Framework — для генерации typetree и сжатия текстур.
  • ffmpeg, загруженный и добавленный в переменные среды PATH — для перекодирования видео (но это не обязательно, если вы не собираетесь использовать данную опцию).

Важная информация

  • Вы должны паковать только отредактированные файлы.
  • Patcher ориентирован на игры, сделанные под Windows. Совместимость с другими платформами не гарантируется.
  • В папке игры не должно быть файлов из разных игр или с одинаковыми именами, иначе запаковка пройдет некорректно. Вы можете воспользоваться опцией --blacklist для добавления определенных папок и путей в черный список. Пример: --blacklist "DLC" "Update".

Решение распространенных проблем

  • Если у вас не очень мощный компьютер и вы испытываете низкую производительность при использовании программы, возможно у вас открыто много всего. Вы можете уменьшить количество потоков опцией --threads и посмотреть, улучшит ли это ситуацию.
  • Проблемы с загрузкой файлов при использовании команды pack ("Can't load file"): маловероятно, но если в папке игры есть все нужные файлы и вы сталкиваетесь с данной ошибкой, попробуйте загрузить всю игровую папку опцией --load_all.
  • Не импортируются определенные файлы: проверьте, не включен ли умный патчинг. Попробуйте отключить его и повторите снова. Проверьте, не включены ли фильтры.
  • Ошибка "stripped version": разработчики вырезали версию движка из заголовков, поэтому программа не может узнать её автоматически. Укажите версию движка вручную. Пример: --fallback_version "2020.3.47f1".
  • MonoBehaviour может потребовать дополнительные зависимости, например globalgamemanagers. Что делать при возникновении ошибки "Failed to read typetree":
    1. Пролистайте лог выше и убедитесь в отсутствии строк "Typetree was not generated because Managed was not in the game folder". Если ваша игра не содержит папку Managed, воспользуйтесь Il2CppDumper для генерации фиктивных библиотек при помощи файлов global-metadata.dat и GameAssembly.dll. Полученную папку переименуйте в Managed и поместите в Data папку вашей игры.
    2. Возможно отсутствуют необходимые зависимости. Убедитесь, что в логе нет строк наподобие "Can't load dependency". Недостающие файлы надо поместить в папку игры. "Can't load possible dependency" — это просто предположительные зависимости, не факт, что они нужны на самом деле.
  • Для экспорта аудио и видео тоже понадобятся зависимости (файлы с расширением .resource). О недостатке этих файлов будет говорить ошибка "Failed to parse object: can't load ... file".
  • Patcher по-прежнему находится в разработке. Пожалуйста, если вы нашли баг, сообщите о нем здесь. Но сперва убедитесь, всё ли вы сделали правильно (проверьте команду, файлы, и т.д.)!

Команды

На данный момент UnityPatcher поддерживает 3 команды (запаковка, извлечение, поиск текста в ассетах). Полный список опций можно узнать, вызвав одну из следующих команд в консоли:

  • Patcher pack -h
  • Patcher unpack -h
  • Patcher search -h

Примеры использования

  • Patcher unpack --texture -c Text -i Game_Data -o ExtractedAssets
  • Patcher pack Patches --outsamedir
  • Patcher search "example text" --export

Скачать

Последние релизы

Руководство по использованию

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

Перейти к руководству

TDoT и обратная связь

Присоединяйтесь к серверу TDoT, чтобы обсудить патчер, получать уведомления о новых версиях и участвовать в совместном переводе игр вместе с нами!

Примечание: TDoT не связан с разработкой данной программы. Это просто команда переводчиков, в которой я состою.

visits