Файл resources.assets или архив .unity3d в папке с игрой на Unity нельзя открыть двойным кликом — это сериализованные контейнеры движка, и для их распаковки (unpack unity assets) понадобятся специальные инструменты вроде AssetStudio или AssetRipper. Попытка открыть такой файл в архиваторе закончится ошибкой, потому что внутри не ZIP, а бинарный формат Unity со своей структурой заголовков и таблиц типов.
В этой статье разберём, какие форматы ресурсов использует Unity, чем их распаковать, как извлечь текстуры, модели и звуки, и почему иногда инструмент выдаёт ошибку на вполне «нормальном» файле. Речь пойдёт о работе с файлами тех игр, которые установлены на вашем компьютере, — для изучения устройства проектов, моддинга в рамках правил конкретной игры или восстановления собственных ассетов.
Какие форматы ресурсов использует Unity
Прежде чем распаковывать, полезно понимать, что именно лежит в папке игры. Unity хранит ресурсы в нескольких типах контейнеров, и инструменты работают с ними по-разному.
- 📦 .assets — основные сериализованные файлы сцены и ресурсов (например,
level0,sharedassets0.assets,resources.assets). - 🗜️ .bundle / .unity3d — Asset Bundles, которые игра может подгружать динамически; часто сжаты LZMA или LZ4.
- 📁 .resS — сопутствующие файлы с «сырыми» данными (текстуры, аудио), на которые ссылается основной .assets-файл.
- 🔐 Зашифрованные бандлы — некоторые разработчики дополнительно шифруют данные, и стандартные инструменты их не откроют.
Типичная структура папки с игрой выглядит так: рядом с исполняемым файлом лежит каталог НазваниеИгры_Data, а внутри него — перечисленные файлы. Если вы видите только один большой файл без расширения или с нестандартным именем, возможная причина — упаковка всего в один бандл или кастомный формат загрузчика.
Инструменты для распаковки Unity assets
Для unpack unity assets чаще всего используют два открытых проекта. AssetStudio — просмотрщик и экстрактор с графическим интерфейсом: он открывает файлы, показывает список ресурсов и позволяет экспортировать их по одному или пакетно. AssetRipper идёт дальше и пытается восстановить структуру целого проекта Unity — со сценами, префабами и скриптами в виде заглушек.
| Инструмент | Тип | Основная задача | Экспорт |
|---|---|---|---|
| AssetStudio | GUI-просмотрщик | Просмотр и извлечение отдельных ресурсов | Текстуры, модели, аудио, текст |
| AssetRipper | Конвертер проекта | Восстановление структуры проекта Unity | Папка проекта с ассетами и сценами |
| UnityPy | Библиотека Python | Скриптовая обработка и автоматизация | Зависит от написанного скрипта |
| UABE (устарел) | Редактор бандлов | Правка и перепаковка .assets | Ограниченная поддержка новых версий |
Выбор зависит от цели. Нужно вытащить пару текстур или саундтрек — достаточно AssetStudio. Требуется изучить устройство всей игры или восстановить свой утерянный проект из собранной сборки — логичнее AssetRipper. Для массовой обработки сотен файлов удобнее скрипты на UnityPy.
Пошаговая распаковка через AssetStudio
AssetStudio распространяется как портативная программа для Windows и не требует установки. Порядок действий следующий. Сначала скачайте актуальный релиз со страницы проекта и распакуйте архив в отдельную папку. Затем запустите исполняемый файл и откройте данные игры через меню File → Load File (один файл) или File → Load Folder (вся папка _Data целиком — так надёжнее, потому что программа подтянет связанные .resS-файлы).
После загрузки перейдите на вкладку Asset List — там появится перечень всех найденных ресурсов с типами: Texture2D, Mesh, AudioClip, TextAsset и другие. Список можно фильтровать по типу и сортировать по имени или размеру. Для экспорта выделите нужные элементы и используйте Export в главном меню: текстуры сохраняются в PNG или TGA, аудио — в WAV или исходном формате, модели — в FBX через встроенный экспортёр.
☑️ Проверка перед распаковкой
Если список пуст или программа показывает ошибку чтения, возможная причина — слишком новая версия Unity, которую данный релиз AssetStudio ещё не поддерживает, либо шифрование бандлов разработчиком. В первом случае стоит проверить обновления инструмента, во втором — стандартными средствами файл не открыть.
⚠️ Внимание: распаковывайте только файлы игр, которые легально установлены на вашем устройстве. Использование извлечённых ресурсов (текстур, моделей, музыки) в собственных проектах без разрешения правообладателя нарушает авторские права, даже если технически извлечение удалось.
Восстановление проекта через AssetRipper
AssetRipper работает иначе: вместо списка отдельных файлов он собирает из сериализованных данных структуру, похожую на исходный проект Unity. Вы указываете программе папку с игрой или конкретные файлы, а на выходе получаете каталог с подпапками Assets, сценами, префабами и материалами, который можно открыть в редакторе Unity совместимой версии.
Здесь важно понимать ограничение: скрипты восстанавливаются только в виде заглушек или декомпилированного кода, а не исходного C#-проекта — логика игры хранится в скомпилированных сборках Managed, и их придётся изучать отдельно через декомпиляторы .NET. Кроме того, точность восстановления сцен зависит от версии движка, на которой собрана игра.
Типичные ошибки и их причины
Чаще всего пользователи сталкиваются с тремя ситуациями. Первая — программа вообще не видит ресурсы после загрузки файла. Проверьте, не зашифрован ли бандл: признак косвенный, но если заголовок файла не содержит читаемой сигнатуры Unity и все инструменты выдают ошибку парсинга, вероятно, разработчик применил шифрование или обфускацию.
Вторая ситуация — текстуры экспортируются чёрными или битвыми. Возможная причина — формат текстур под конкретную платформу (например, ASTC для мобильных сборок), который не каждая версия инструмента декодирует корректно. Попробуйте другой релиз программы или экспорт в альтернативный формат.
- 🧩 Ошибка чтения заголовка — файл зашифрован, повреждён или это не Unity-контейнер.
- 🖼️ Битые текстуры — платформенный формат сжатия, попробуйте другую версию инструмента.
- 🔇 Аудио не воспроизводится — экспортируйте в исходном контейнере и конвертируйте отдельно.
- 📂 Пустой список ресурсов — загружайте всю папку _Data, а не одиночный файл.
⚠️ Внимание: не переименовывайте и не перемещайте файлы внутри папки с установленной игрой — это может нарушить её работу. Копируйте нужные файлы в отдельный каталог и работайте с копиями.
Как определить версию Unity, на которой собрана игра
Откройте любой крупный .assets-файл в hex-редакторе или посмотрите свойства исполняемого файла игры — часто строка версии движка видна в начале файла либо в метаданных. Также версию иногда показывает сам AssetStudio при загрузке. Точный способ зависит от версии движка, поэтому надёжнее сверяться с несколькими источниками.
Правовые и практические ограничения
Техническая возможность распаковки не равна юридическому праву на использование содержимого. Ресурсы игры — текстуры, модели, анимации, музыка — защищены авторским правом, и их публикация, продажа или включение в собственные продукты без лицензии недопустимы. Допустимые сценарии обычно ограничиваются личным изучением, моддингом в рамках правил конкретной игры (многие разработчики публикуют модding-политику) и восстановлением собственных утерянных проектов.
Отдельно стоит упомянуть онлайн-игры: вмешательство в их файлы может нарушать пользовательское соглашение и привести к блокировке аккаунта, даже если вы ничего не публиковали. Перед любыми действиями с файлами сетевой игры сверьтесь с её правилами.
Часто задаваемые вопросы
Можно ли распаковать assets мобильной Unity-игры с Android?
Да, принцип тот же: APK-файл открывается как ZIP-архив, а Unity-ресурсы обычно лежат в папке assets/bin/Data внутри него. Извлечённые файлы дальше обрабатываются в AssetStudio или AssetRipper так же, как файлы ПК-версии, хотя форматы текстур могут быть мобильными (например, ASTC).
Почему AssetStudio не открывает файл игры?
Наиболее вероятные причины: бандл зашифрован разработчиком, игра собрана на версии Unity, которую ваш релиз программы ещё не поддерживает, либо файл повреждён. Проверьте обновления инструмента и попробуйте загрузить всю папку _Data вместо одиночного файла.
Можно ли после распаковки собрать файлы обратно в игру?
Теоретически — да, с помощью редакторов бандлов, но поддержка новых версий Unity у таких инструментов ограничена, а для онлайн-игр модификация файлов обычно запрещена правилами и детектируется античитом. Для моддинга надёжнее использовать официальные инструменты, если игра их предоставляет.
Восстановит ли AssetRipper исходный код скриптов?
Нет, полноценный исходный C#-проект он не восстановит. Скрипты сохраняются в виде заглушек, а логику придётся изучать через декомпиляцию сборок .NET из папки Managed отдельными инструментами.
Это законно — распаковывать файлы купленной игры?
Само по себе извлечение файлов для личного изучения в большинстве юрисдикций относят к серой зоне и обычно не преследуется, но распространение, продажа или использование извлечённых ресурсов в своих продуктах без разрешения правообладателя — нарушение авторских прав. Для онлайн-игр дополнительно действуют ограничения пользовательского соглашения.