Распаковщик файлов Unity: как извлечь ресурсы из игры

Файл resources.assets или архив с расширением .unity3d не открывается обычным архиватором — для извлечения данных из проектов на движке Unity требуется специальный распаковщик, понимающий внутренний формат сериализации движка. Стандартные 7-Zip или WinRAR в лучшем случае покажут бинарный заголовок, но не извлекут текстуры, модели и звуки в пригодном виде.

Внутри игр на Unity ресурсы хранятся в собственных контейнерах: Asset Bundles, файлы .assets, .resS и .sharedassets. Каждый из них содержит объекты с типизированными данными — Texture2D, Mesh, AudioClip, MonoBehaviour и другие. Распаковщик файлов Unity читает структуру этих контейнеров, восстанавливает имена объектов и конвертирует их в стандартные форматы: PNG, WAV, FBX.

Какие файлы Unity можно распаковать

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

  • 🗂️ .assets и .sharedassets — основные файлы ресурсов сцены, лежат в папке _Data рядом с исполняемым файлом игры.
  • 🎨 .resS — сопутствующие файлы с «сырыми» данными текстур и звуков, на которые ссылаются .assets.
  • 📦 .unity3d и .ab — Asset Bundles, часто загружаемые игрой отдельно, в том числе с сервера.
  • 🔧 globalgamemanagers — файл с настройками проекта, тоже поддаётся разбору.

Обратите внимание: файлы .resS сами по себе бесполезны — распаковщик анализирует их в связке с основным .assets, где хранится таблица объектов. Поэтому копировать для извлечения нужно всю папку ресурсов, а не отдельные файлы.

Популярные распаковщики файлов Unity

Инструментов для работы с ресурсами Unity несколько, и у каждого своя специализация. Выбор зависит от задачи: просмотр, извлечение или модификация.

ПрограммаНазначениеОсобенности
AssetStudioПросмотр и извлечение ресурсовГрафический интерфейс, предпросмотр текстур и моделей
UABE (Unity Assets Bundle Extractor)Извлечение и редактированиеПоддержка изменения ресурсов и обратной упаковки
AssetRipperВосстановление проектаЭкспорт в структуру, пригодную для редактора Unity
QuickBMSУниверсальный распаковщикТребует отдельного скрипта под формат Unity

Для большинства задач достаточно AssetStudio: программа бесплатна, не требует установки и открывает как отдельные файлы, так и целые папки ресурсов. Если нужно не только извлечь, но и изменить содержимое с возвратом в игру, подойдёт UABE.

📊 Какой распаковщик Unity вы используете чаще всего?
AssetStudio
UABE
AssetRipper
QuickBMS

Как распаковать файлы Unity через AssetStudio

Рассмотрим базовый порядок действий на примере AssetStudio — интерфейс программы интуитивен, но есть нюансы, которые стоит знать заранее.

  1. Скачайте актуальную сборку AssetStudio со страницы проекта и распакуйте архив в отдельную папку.
  2. Запустите AssetStudioGUI.exe и откройте меню File → Load Folder, указав папку _Data нужной игры. Так программа подхватит все связанные файлы сразу.
  3. Дождитесь завершения загрузки и перейдите на вкладку Asset List — там появится список объектов с типами.
  4. Отфильтруйте нужный тип через Filter Type, например Texture2D или AudioClip.
  5. Экспортируйте выбранное через Export → Selected assets или всё сразу через Export → All assets.

☑️ Проверка перед распаковкой

Выполнено: 0 / 4

После экспорта текстуры появятся в формате PNG, звуки — в WAV, а модели — в FBX (если включён соответствующий экспортёр в настройках). Если модель экспортируется пустой, проверьте, что в Options → Export options активен нужный модуль.

Извлечение из Asset Bundle и зашифрованных архивов

Файлы .unity3d и .ab — это упакованные бандлы. Большинство из них открываются тем же AssetStudio напрямую через File → Load File. Однако встречаются бандлы со сжатием LZ4 или LZMA, а иногда и с дополнительным шифрованием, добавленным разработчиком игры.

Если программа выдаёт ошибку при открытии бандла, возможные причины такие: файл зашифрован, используется нестандартная версия формата или архив повреждён при загрузке. Проверьте целостность файла и попробуйте открыть его в UABE — он иногда справляется с бандлами, которые AssetStudio не берёт.

⚠️ Внимание: взлом шифрования и обход защиты ресурсов могут нарушать лицензионное соглашение игры и законодательство вашей страны. Используйте распаковку только для легальных целей — изучения, моддинга там, где он разрешён разработчиком, или восстановления собственных проектов.

AssetRipper умеет восстанавливать структуру проекта целиком — с папками, префабами и ссылками между ассетами, что незаменимо при потере исходников собственной игры. Для чужих проектов полного восстановления кода это не даст: скрипты сохраняются в виде скомпилированных сборок, а не исходного C#-кода.

Почему скрипты не восстанавливаются полностью

Код на C# компилируется в сборки .NET (DLL). Распаковщики извлекают сами DLL, а для чтения логики потребуется декомпилятор вроде dnSpy или ILSpy. При этом имена переменных и комментарии из исходников не восстанавливаются.

Типичные ошибки при распаковке и их решение

Самая частая жалоба — программа не видит объекты после загрузки файла. Причина обычно в том, что открыт только .resS без основного .assets, либо ресурсы игры собраны под версию Unity, которую ваша сборка распаковщика ещё не поддерживает. Обновление программы решает проблему чаще всего.

Вторая распространённая ситуация — экспортированные текстуры выглядят искажёнными или с неверными цветами. Такое бывает с текстурами в форматах сжатия ASTC или ETC2, рассчитанными на мобильные GPU. Попробуйте другой режим экспорта в настройках или конвертируйте результат отдельным инструментом.

⚠️ Внимание: не запускайте распаковку ресурсов запущенной игры и не изменяйте файлы в её папке напрямую — это может привести к падению игры, а в онлайн-проектах — к блокировке аккаунта системой античита.

  • 🧩 Ошибка «неизвестный формат» — обновите программу или попробуйте альтернативный инструмент.
  • 🖼️ Битые текстуры — проверьте поддержку формата сжатия (ASTC, ETC2, DXT).
  • 🔇 Пустой список объектов — загружайте папку целиком, а не одиночный файл.
  • 🐌 Медленная загрузка — большие бандлы разбираются долго, это нормально; проверьте, что хватает оперативной памяти.

Легальность и ограничения

Сам по себе распаковщик файлов Unity — нейтральный инструмент, но его применение регулируется лицензионным соглашением конкретной игры. Многие разработчики разрешают моддинг и извлечение ресурсов для личного использования, однако распространение извлечённых ассетов, их коммерческое использование или вставка в собственные проекты почти всегда запрещены.

Особняком стоят онлайн-игры: там модификация клиентских файлов обычно прямо запрещена правилами и отслеживается античитом. Перед любыми действиями с ресурсами такой игры сверьтесь с пользовательским соглашением конкретного проекта.

FAQ: частые вопросы о распаковке файлов Unity

Чем открыть файл .assets без установки Unity?

Редактор Unity для этого не нужен. Файл открывается программами AssetStudio или UABE — они самостоятельно разбирают формат сериализации и показывают содержимое без установленного движка.

Можно ли распаковать ресурсы мобильной игры на Unity?

Да, если вы получили доступ к файлам игры (например, извлекли APK и его содержимое). Внутри будут те же .assets и бандлы, которые открываются на ПК теми же инструментами. Учитывайте, что текстуры могут быть в мобильных форматах сжатия.

Почему AssetStudio не открывает файл игры?

Возможные причины: устаревшая версия программы, шифрование бандла разработчиком, повреждённый файл или нестандартный формат упаковки. Обновите программу, проверьте целостность файла и попробуйте UABE как альтернативу.

Можно ли после редактирования упаковать файлы обратно?

Да, для этого используется UABE — он позволяет заменить ресурс внутри контейнера и сохранить изменения. Однако для онлайн-игр это почти наверняка приведёт к блокировке, а для одиночных — к необходимости отключить проверку целостности файлов.

Восстановит ли распаковщик исходный код игры?

Нет. Распаковщики извлекают ресурсы и скомпилированные сборки DLL. Для чтения логики потребуется декомпилятор (dnSpy, ILSpy), но исходный код с комментариями и исходными именами переменных восстановить невозможно.