Jump to content

UABE - Asset Bundle Extractor


DerPopo

Recommended Posts

First of all, thank you, DerPopo, for the tool. It's been immensely useful in my work documenting games for Gamepedia. Even I have yet to figure out batch processing... Spent two days extracting Tyranny and Pillars of Eternity bundles with map images, fingers still think I'm crazy. :)

 

I'd like to second the request for Tarkov support. I've taken the liberty of screenshotting the hex view:

 

https://www.dropbox.com/s/xjxdzkgwx40xkg4/Hex%20View%20AK.png?dl=0

 

And uploading the file in question (with the manifest).

 

https://www.dropbox.com/s/6gxbnvbls2u5oeb/ak74.zip?dl=0

 

The problem seems to be with this particular version, non-weapon bundles open normally.

 

(the game's no longer under NDA)

Link to comment
Share on other sites

Hi, thank you and great job.

May I ask if there is a way to make sense of the materials asset in the .unity3d files?

Currently there is no plugins for materials. I'm just wondering if the information contained within the .unity3d file is sufficient to reproduce (or extract) the materials such that we can use it in unity?

[ATTACH=CONFIG]19424[/ATTACH]

 

The textures referenced by the material can be extracted (View Data should show all references) but the shaders are stored in a binary format, at least in newer Unity versions. Theoretically it should be possible to reproduce the materials but decoding the shaders to shader code is an issue at the moment.

 

Will this tool add and AnimationClip and more Animation featured plugins?

Animations are mostly useless until the full models (including bones) can be extracted.

In future, will you add feature that allow to export models to fbx with bones are supported and reimport fbx model?

 

 

First of all, thank you, DerPopo, for the tool. It's been immensely useful in my work documenting games for Gamepedia. Even I have yet to figure out batch processing... Spent two days extracting Tyranny and Pillars of Eternity bundles with map images, fingers still think I'm crazy. :)

 

I'd like to second the request for Tarkov support. I've taken the liberty of screenshotting the hex view:

 

https://www.dropbox.com/s/xjxdzkgwx40xkg4/Hex%20View%20AK.png?dl=0

 

And uploading the file in question (with the manifest).

 

https://www.dropbox.com/s/6gxbnvbls2u5oeb/ak74.zip?dl=0

 

The problem seems to be with this particular version, non-weapon bundles open normally.

 

(the game's no longer under NDA)

 

The files have a simple protection. Each byte in the file is the original byte XORed with 0x47.

I've already sent this tool to some who have asked so I can just post it here as well :

https://www.dropbox.com/s/b77kryvb9p0a9kb/xor47h.zip?dl=0

Drag the protected file into xor47h.exe and it'll output the unprotected file with "-xor".

If you want to batch export bundles, create a text file like '+DIR <full directory path of the bundles>' (Windows line ending), create a batch file containing 'AssetBundleExtractor batchexport <full batch file path, if it contains spaces start and end with ">' and start it. Make sure the folder only contains valid bundle files, so in case of Tarkov only the unprotected .bundle files.

 

hello can i ask something .. how can i batch extract the files from .assets file ?

i mean extract 3d object textures with multiple assets file.

 

You can select multiple .assets files in the open dialog, sort by type, select all Meshes you want to extract and use the plugin as usual. Repeat the same thing for the textures.

Link to comment
Share on other sites

a bug

 

Hi,

thank you for your great job.I think i found a bug.

I'm using 2.1c to export and import mesh files in another game.

When i export dump and then import it, the game always crashed.

And do the same thing by raw, crash won't happen.

So i export dump and then import it and then export it to raw,

compare it with the original raw file by hex viewer, they are different.

The raw file of dump seems like dislocation.I fixed dislocation and crash fixed too.

Link to comment
Share on other sites

GameObjects and Modification

 

Hello, DerPopo. After using your tool for almost a year, I am impressed by the versatility for modding that this tool presents. Editing locations of objects, textures, and if they exist in the game or not. However, there is one issue that I couldn't wrap my head around, and I hope you have advice for doing this:

 

How does one edit the components of a GameObject?

 

By that I mean editing the initial public or private variables a GameObject has when the scene loads or when the prefab is instantiated. An example could be an enemy having a health variable, and and using UABE to change the health of the enemy to a different number. If you can provide a solution to this dilemma I have, that would be greatly appreciated.

 

Thanks for making this in the first place, it has been very useful.

Link to comment
Share on other sites

I've updated the type package to include a database for 5.6.0f3. You can find it on the main post.

Edit : Another small bugfix, 2.1d, has been released.

 

Hi,

thank you for your great job.I think i found a bug.

I'm using 2.1c to export and import mesh files in another game.

When i export dump and then import it, the game always crashed.

And do the same thing by raw, crash won't happen.

So i export dump and then import it and then export it to raw,

compare it with the original raw file by hex viewer, they are different.

The raw file of dump seems like dislocation.I fixed dislocation and crash fixed too.

 

Probably the Unity version that game uses has a slightly different Mesh format than the class database used by UABE. Except creating a type database for each and every Unity release, there's not much I can do about it. UABE already has class databases for all semi-major Unity releases from 3.4 to 5.6, for each of which I had to manually update my type extractor tool.

 

Hello, DerPopo. After using your tool for almost a year, I am impressed by the versatility for modding that this tool presents. Editing locations of objects, textures, and if they exist in the game or not. However, there is one issue that I couldn't wrap my head around, and I hope you have advice for doing this:

 

How does one edit the components of a GameObject?

 

By that I mean editing the initial public or private variables a GameObject has when the scene loads or when the prefab is instantiated. An example could be an enemy having a health variable, and and using UABE to change the health of the enemy to a different number. If you can provide a solution to this dilemma I have, that would be greatly appreciated.

 

Thanks for making this in the first place, it has been very useful.

 

Stuff like object properties specific to the game is usually located in MonoBehaviour assets linked to the GameObject through the component list. These contain the values of local variables in script classes that are most often located in Assembly-CSharp.dll. Except for bundles where all the type information is already located in the .assets files, UABE can only show the common properties of all MonoBehaviours such as the MonoScript reference. Tools like ILSpy may help finding the variables and their order. If you need to look at batches of MonoBehaviours, maybe this github issue can help you. For single files, it's likely easier to view the raw asset in a hex editor. Note that all variables are aligned at 4 bytes.

Edited by DerPopo (see edit history)
Link to comment
Share on other sites

Unpacking multiple compressed files at a time

 

Hi,

 

Is there a feature to unpack multiple compressed files at a time? If not, is there a plan of adding it in the future? Or, is there another tool that can do that?

Link to comment
Share on other sites

I'm working on a type information extraction tool for scripts. The tool itself works so far but I still need to integrate it into UABE and make sure it always produces "perfect" matches so the hashes are equal to Unity's. It will add many new options to modding by being able to modify all default variables stored in scripts instantiated with MonoBehaviour assets.

 

 

 

Hi,

 

Is there a feature to unpack multiple compressed files at a time? If not, is there a plan of adding it in the future? Or, is there another tool that can do that?

 

There is a batch extraction command line option for bundles. It's described in Usage.txt. The bundles should be located in a separate folder so no other files could cause issues. If it successfully extracted the bundles, you can open them in UABE separately or all at the same time (the file dialog allows multiple selections).

Link to comment
Share on other sites

There is a batch extraction command line option for bundles. It's described in Usage.txt. The bundles should be located in a separate folder so no other files could cause issues. If it successfully extracted the bundles, you can open them in UABE separately or all at the same time (the file dialog allows multiple selections).

 

Thanks for the answer! I found it and it works like a charm.

Link to comment
Share on other sites

Is it possible to automatically create folders based on the asset's path when using "Export to ___" plugin?

 

e.g. The asset name is "assets/folder/subfolder/image.png". After using the plugin, the app creates "assets/folder/subfolder" folder if it doesn't exist and put the image.png file into it.

Link to comment
Share on other sites

thanks for this useful tool @DerPopo, ive been using for a while now. I have however question, some assets are compressed and when you decompress them with UABE you can make your edits however not able to recompress them back. Would it be possible to add recompressing function?

 

many thanks and keep up good work

Link to comment
Share on other sites

Is it possible to automatically create folders based on the asset's path when using "Export to ___" plugin?

 

e.g. The asset name is "assets/folder/subfolder/image.png". After using the plugin, the app creates "assets/folder/subfolder" folder if it doesn't exist and put the image.png file into it.

 

While that's certainly possible with batch extraction, it would cause issues in the file save dialog as it shouldn't create the folder before the user presses save (and it doesn't allow slashes in the file name.

 

thanks for this useful tool @DerPopo, ive been using for a while now. I have however question, some assets are compressed and when you decompress them with UABE you can make your edits however not able to recompress them back. Would it be possible to add recompressing function?

 

many thanks and keep up good work

 

I'll look into it.

 

hi how update this tool DerPopo?

7205b8542975012.jpg

 

I've just not changed that text since 1.0. If you downloaded the newest version, it's not 1.0 no matter what that text says.

 

DerPopo, please help with view linked data for MonoBehaviours variables changed in inspector.

What a make this?

 

https://7daystodie.com/forums/showthread.php?22675-Unity-Assets-Bundle-Extractor&p=477413&viewfull=1#post477413

 

You can create the type database as described in the github issue and use the order as shown in the inspector.

The next UABE release will be able to extract the information automatically so these steps won't be required anymore in that case (except if a special case is not handled properly).

Link to comment
Share on other sites

Is the MIPmap issue what makes things turn white when swapping their textures with UBAE?

 

It just causes more aliasing on textures and flickering of details when moving around. Mipmapping just stores several downscaled variants of the texture that simply don't longer contain these details.

 

Some textures have their alpha value set to 0 and some image tools either display it as a white image or discard all non-white pixels but keep the transparency. I don't know of any issues in UABE causing such behaviour.

Link to comment
Share on other sites

It just causes more aliasing on textures and flickering of details when moving around. Mipmapping just stores several downscaled variants of the texture that simply don't longer contain these details.

 

Some textures have their alpha value set to 0 and some image tools either display it as a white image or discard all non-white pixels but keep the transparency. I don't know of any issues in UABE causing such behaviour.

 

I'm not sure if it has to do with UABE or not. Basically, I opened the resources.assets file in the game's data folder and exported the burnt zombie's textures in .tga, then I opened the file with Photoshop and scribbled a couple of lines with the brush tool to test if the changes show up in the game.

 

After saving the file, I selected the texture in UABE and imported the .tga file raw; basically swapping the textures. I then made a mod installer and ran it; everything worked as intended, but when I got in the game and spawned a burnt zombie it looked white.

 

And now for some odd reason the game just crashes after doing it again. I honestly don't know what I'm doing wrong.

Link to comment
Share on other sites

There's a game that contains approximately 600 assetbundle files which must all be decompressed before opening, which is quite a bit to decompress one by one. I looked in the Usage.txt to see the method for batch extracting, but is there a way to batch decompress the compressed assetbundle files?

Link to comment
Share on other sites

  • DerPopo changed the title to UABE - Asset Bundle Extractor

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...