- platform: windows 10 64bits
- recovery of Unity3D assets
A windows executable made with Unity is usually (always?) composed of an .exe and a *_Data folder containing all the scripts, shaders, textures, meshes, etc. required to run the game.
The files in *_Data folder are obfuscated for obvious IP reasons. When looking into it, you will sees a series of extension less files, some *.assets and *.assets.reS files. The stargate to get the assets back are these *.assets files.
Extraction of *.assets
First of all, we need a decompression utility. The one we used is uTinyRipper in standalone mode.
It’s very simple to use, but there’s some subtleties to be aware of when it comes to unpacking a Unity project.
It seems that Unity scatters all the resources across multiple sharedassets*.assets files. Why? No idea, but it requires a bit of method to avoid uncompressing same files again and again.
As shown above, sharedassets files depends on each other and are able top point to their dependencies. Therefore, we suggest to start by the last sharedassets*.assets file in the folder, as it might depend on all before it. If some sharedassets files are not present in uTinyRipper, drag the last one and repeat the operation.
Extraction of materials, meshes and rigs
Once exported, uTinyRipper creates a folder structure in the target folder looking like this:
All textures aare easy to retrieve, just navigate to Texture2D folder and browse the .png
If you want to get geometries and related objects, it will be more complex: unity is storing them in generic *.asset file format. To retrieve editable meshes, you will need a bit of space on your hard-drive to install Unity Editor. Once installed, create an empty 3D project and launch it.
Once unity ois running, get GLTF exporter addon from Plattar (a thousand thanks to h.is.er work).
If you struggle to install it, what I did is copy/paste the v1.93.0-unity.unitypackage in the Assets folder, and double-click on it in the Unity Folder panel (i works just fine).
Once installed, move the folder extracted with uTinyRipper inside the folder Assets of the Unity project.
Export, unzip the file, and open the *.gltf file with blender3d (for instance…)
References:
- Unity editor: https://store.unity.com/#plans-individual
- GLTF exporter addon: https://github.com/Plattar/gltf-exporter
- uTinyRipper: https://sourceforge.net/projects/utinyripper/