Jump to content

UABE - Asset Bundle Extractor


DerPopo

Recommended Posts

The .sbsasm file can be copied out of the SubstanceArchive. Export it raw and delete everything before "SBAM" in a hex editor.

The only issue is the .xml file that needs to be next to the .sbsasm file (both are packed in a .7z renamed to .sbsar). The information converted from the xml is stored in ProceduralMaterial and ProceduralTexture assets but I don't know the specifics of how the sbsar xml files are built.

Link to comment
Share on other sites

Thanks for shedding some light into this matter DerPopo! We did in fact have some success with the method you described, yet we still have some doubts, especially regarding the .xml files you mentioned - I sent you a PM as so to not hijack your thread any further.

 

Keep up the awesome work mate, your tool is powerfully awesome! ;)

Link to comment
Share on other sites

Thanks you so much for the amazing tool i just have a question

 

I ♥♥♥♥ing love this tool. Thank you so much for making it!!!

Been looking for a way to extract unity assets for ages.

I just have one question, is there anyway to open the files that look like this

AssetName.assets0.split1

AssetName.assets0.split2 ... and so on ?

Are these asset files that are split into pieces?

I really love to learn about this stuff thank you.

Link to comment
Share on other sites

I ♥♥♥♥ing love this tool. Thank you so much for making it!!!

Been looking for a way to extract unity assets for ages.

I just have one question, is there anyway to open the files that look like this

AssetName.assets0.split1

AssetName.assets0.split2 ... and so on ?

Are these asset files that are split into pieces?

I really love to learn about this stuff thank you.

 

So far, it only opens .split files as references from another opened file. If it's not a levelx file, you can open mainData or globalgamemanagers (the one without the .assets extension), and you can go to the split file in the default sorting with View->Go to asset, select the .assets file and type 1 for path id.

 

Greetings! It is amazing tool!

 

Can we expect support unpacking ASTC_6x6 textures? :adoration:

 

P.S.

There is an encoder that can decode ASTC texture with export to tga format file.

https://github.com/ARM-software/astc-encoder

 

ASTC support is already in if the 32/64bit version (depending on the used UABE release) of VC++ 2013 is installed. If that doesn't change it, it's a bug (or they changed the texture type numbers).

Link to comment
Share on other sites

ASTC support is already in if the 32/64bit version (depending on the used UABE release) of VC++ 2013 is installed. If that doesn't change it, it's a bug (or they changed the texture type numbers).

It is works with ASTC_RGBA_6x6, but don't work with ASTC_RGB_6x6.

UABE defines a ASTC_RGB_6x6 texture as a ARGB32 texture, gives an error "Unable to convert texture data!" when been used export plugin on the texture.

 

I tried change texture format from ARGB32 to ASTC_RGBA_6x6 in the edit option; and then the texture has been converted in tga without any errors.

 

But it is not the solution for batch convertation.

Link to comment
Share on other sites

So far, it only opens .split files as references from another opened file. If it's not a levelx file, you can open mainData or globalgamemanagers (the one without the .assets extension), and you can go to the split file in the default sorting with View->Go to asset, select the .assets file and type 1 for path id.

 

 

 

ASTC support is already in if the 32/64bit version (depending on the used UABE release) of VC++ 2013 is installed. If that doesn't change it, it's a bug (or they changed the texture type numbers).

 

I'm trying to extract the resources from PewdiePie's Tube Simulator android app. I opened all the files without extensions with the tool and only got about 5% of the game resources.

I think the rest of the resources are in those split files, as each file is 1MB. Is it possible at the moment to extract the rest of the resources with your tool? If yes can you please explain how :)

Thank you :)

http://imgh.us/screenshot_290_1.png

screenshot_290_1.png

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

Hey, I just want to say a huge thanks for this program! With a recent update to a certain game to Unity 5, I can open the asset files now!

 

I was wondering if there's a way for UABE to unpack multiple files? Normally this wouldn't be an issue if it was a few files or if the files were named, but all the files are now found under Unity-cache and there's 400 files with very eccentric names. Thanks in advance!

Link to comment
Share on other sites

Hey, I just want to say a huge thanks for this program! With a recent update to a certain game to Unity 5, I can open the asset files now!

 

I was wondering if there's a way for UABE to unpack multiple files? Normally this wouldn't be an issue if it was a few files or if the files were named, but all the files are now found under Unity-cache and there's 400 files with very eccentric names. Thanks in advance!

 

:D,speaking again about this ?

Select objects with shift :)

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

Link to comment
Share on other sites

 

Not quite. If the files are compressed and you select multiple files, you are asked to unpack them, but only the first one gets unpacked. I was wondering if there was a way to unpack multiple compressed files at the same time. Sorry if that wasn't clear.:apologetic:

Link to comment
Share on other sites

Earlier i was experimenting with the replacement terrain textures, but now i just tried to return the texture for simple block (old redwood for barns :)) and found that without mipmap this work useless - at a distance it looks bad and wasted loads GPU.

This situation - with any texture loaded without MIP-map...

 

DerPopo, mipmap support or the support .DDS - it would be a huge addition for UABE (...and for me personally, of course!) .

 

With Respect!

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

It is works with ASTC_RGBA_6x6, but don't work with ASTC_RGB_6x6.

UABE defines a ASTC_RGB_6x6 texture as a ARGB32 texture, gives an error "Unable to convert texture data!" when been used export plugin on the texture.

 

I tried change texture format from ARGB32 to ASTC_RGBA_6x6 in the edit option; and then the texture has been converted in tga without any errors.

 

But it is not the solution for batch convertation.

 

Thanks, I will look into it!

 

I'm trying to extract the resources from PewdiePie's Tube Simulator android app. I opened all the files without extensions with the tool and only got about 5% of the game resources.

I think the rest of the resources are in those split files, as each file is 1MB. Is it possible at the moment to extract the rest of the resources with your tool? If yes can you please explain how :)

Thank you :)

 

It can't open the split files directly. There surely are some tools that can merge split binary files directly but the "dirty" way of merging the files manually with a hex editor (such as HxD ) works for sure. You have to open the .split0 file in the hex editor, then open the .split1 file and copy+paste its contents to the end of the .split0 file. Repeat that for the remaining split files, in numerical order of course. The resulting file should then be openable with UABE.

 

Hey, I just want to say a huge thanks for this program! With a recent update to a certain game to Unity 5, I can open the asset files now!

 

I was wondering if there's a way for UABE to unpack multiple files? Normally this wouldn't be an issue if it was a few files or if the files were named, but all the files are now found under Unity-cache and there's 400 files with very eccentric names. Thanks in advance!

 

For bundle files, there's a batch extract feature in the command line. It's further described in Usage.txt.

 

Earlier i was experimenting with the replacement terrain textures, but now i just tried to return the texture for simple block (old redwood for barns :)) and found that without mipmap this work useless - at a distance it looks bad and wasted loads GPU.

This situation - with any texture loaded without MIP-map...

 

DerPopo, mipmap support or the support .DDS - it would be a huge addition for UABE (...and for me personally, of course!) .

 

With Respect!

 

Mipmaps should be doable, dds import shouldn't be too much of a problem either.

Link to comment
Share on other sites

Thanks, I will look into it!

 

 

 

It can't open the split files directly. There surely are some tools that can merge split binary files directly but the "dirty" way of merging the files manually with a hex editor (such as HxD ) works for sure. You have to open the .split0 file in the hex editor, then open the .split1 file and copy+paste its contents to the end of the .split0 file. Repeat that for the remaining split files, in numerical order of course. The resulting file should then be openable with UABE.

 

 

 

For bundle files, there's a batch extract feature in the command line. It's further described in Usage.txt.

 

 

 

Mipmaps should be doable, dds import shouldn't be too much of a problem either.

 

 

I used (Bulk Rename Utility) and (VHJSplit 3.0) to rename and combine the files and it worked great!!!

Thnak you so much. I thought that was some kind of encryption, but it's just a binary file split into pieces.

Are you planning on adding the feature of combining these split files natively in your program?

Link to comment
Share on other sites

First of all I'd like to thank you for the amazing work you're doing here. This is just so awesome. Thank you.

 

I hate myself for asking for something when you've already done so much, but being able to extract rigged meshes (.fbx perhaps?) would be really helpful.

 

By the way, I'm curious as to how you do this. My knowledge is limited to modeling, rigging and some basic C# scripting, but it appears that it is possible to develop these 'plugins' to export the data in a specific format using the API you provided. What sort of knowledge is needed to work on this? If there's any way we can support your project, please say :)

Link to comment
Share on other sites

First of all I'd like to thank you for the amazing work you're doing here. This is just so awesome. Thank you.

 

I hate myself for asking for something when you've already done so much, but being able to extract rigged meshes (.fbx perhaps?) would be really helpful.

 

By the way, I'm curious as to how you do this. My knowledge is limited to modeling, rigging and some basic C# scripting, but it appears that it is possible to develop these 'plugins' to export the data in a specific format using the API you provided. What sort of knowledge is needed to work on this? If there's any way we can support your project, please say :)

 

FBX support is definitely something I'll look into.

The .bep plugin files actually are renamed .dlls (compiled with MSVC++ 2010). They contain a function that returns a structure with the import/export options, and the functions for the actual asset import/export. UABE passes some interface classes to the plugin but they are not (yet) contained in the API.

Link to comment
Share on other sites

Help Pleaseee!!! :(

 

Hi to everyone, someone cant make a tutorial (videos it if posible) to show or teach, how use the Unity Assets Bundle Extractor whit the asset of 7DTD and create a new recipe, or item? Cause i have really goods ideas to create news items, but i dont not how to impor or export the new or olds item. I would really appreciate it. Tnx to all. I hope someone cant help me. :)

 

P.D: sorry for my bad English jeje:concern:

Link to comment
Share on other sites

Hi to everyone, someone cant make a tutorial (videos it if posible) to show or teach, how use the Unity Assets Bundle Extractor whit the asset of 7DTD and create a new recipe, or item? Cause i have really goods ideas to create news items, but i dont not how to impor or export the new or olds item. I would really appreciate it. Tnx to all. I hope someone cant help me. :)

 

P.D: sorry for my bad English jeje:concern:

 

You don't need UABE to make new recipes or items. Just edit the XML files with a text editor. There's lots of examples all over the place, including the stuff already in the game that are already in the XML files you'll need to edit.

Link to comment
Share on other sites

  • 2 weeks later...

Hi guys -- Thanks for the great utility!

 

I've been using it to make some texture updates for NASCAR Heat Evolution, another recently released Unity based game.

 

I've come to the point where I'd like to mute some distracting sound files -- notably, the fake crowd noise, but would also like to replace the engine sounds with improved ones.

 

UABE can of course extract these sounds, but it appears there is no way to import a modified version of the sound file. Is there something I am overlooking, or is this a feature not yet implemented (or perhaps not possible to implement).

 

Thanks for any tips you can provide!!

Link to comment
Share on other sites

i edited the opaque.png in BlckTextureAtlases and ive tried putting it back in with different texture formats but i cant seem to get it to work.

 

I'll see if I can reproduce it.

 

Hi guys -- Thanks for the great utility!

 

I've been using it to make some texture updates for NASCAR Heat Evolution, another recently released Unity based game.

 

I've come to the point where I'd like to mute some distracting sound files -- notably, the fake crowd noise, but would also like to replace the engine sounds with improved ones.

 

UABE can of course extract these sounds, but it appears there is no way to import a modified version of the sound file. Is there something I am overlooking, or is this a feature not yet implemented (or perhaps not possible to implement).

 

Thanks for any tips you can provide!!

 

Removing sounds should work by setting the resource size to 0 in the AudioClip (Export Dump/Import Dump), I'm not sure if it throws errors in the log though.

UABE can't import sounds so far. You could add one or more manually by creating an empty Unity project, dragging the sound file(s) in the assets tab, attaching one Audio Source Component per sound to the Main Camera (select the camera in the list, select Audio Source in the Component menu) and select each audio file in the Inspector tab.

Build the project for one of the desktop platforms, open mainData/globalgamemanagers (the one without .assets) in UABE, export dumps of all AudioClips, change the resource file name so it doesn't conflict with the game (also in the dumps), copy over the renamed .resource file and replace the existing AudioClip assets using Import Dump.

I'll work on direct AudioClip import options in UABE, I think it should be relatively easy with the FMOD API.

Link to comment
Share on other sites

Question:

 

I'm a 3d modeler, and someone asked about adding a whip antenna to the back of the minibike. If I can get the minibike model and textures, I could easily do this in a half hour.

 

 

The only issues I could foresee if if the collision box for the minibike would change with the antenna addition, and how to export or just add the generic metal texture to the antenna itself, and the red flag at the top.

 

Would this tool give me the capability to export and then import the minibike model, once changed?

 

I'm thinking the minibike is probably a grouped object, combining its components. (seat, chassis, handlebars, ect.) Or maybe its a new separate model that replaces versions that are partially completed?

 

Its easy to loose the minibike in tall grass, and adding a whip antenna with a flag seems like an easy solution.

 

Maybe someone can partner up with me on this if I create the new geometry changes to make it available?

Link to comment
Share on other sites

Applying path to added texture2D

 

DerPopo,

 

First of all, let me say to you that your tool already helped me immensely with my project (I'm creating Mod for different 2D game). Using UABE, I was able to change IsReadable flag to true and thus, make possible to change hue of the textures in game.

 

I've come to the point where I need to add my own files to the bundle (textures for now). Using UABE I managed to successfully add needed texture.

 

Problem is that I can't seem to figure out how to apply needed path to this texture (or should I say create a reference to this texture). The only PreloadData file I found in a bundle just points to the all .assets files, w/o mentioning texture names.

 

If I open mainData file, I can see my newly added texture but w/o path (like portraits/enemies/thistexture).

 

Could you please suggest how to solve this issue? Is it possible or it really depends on the game?

Link to comment
Share on other sites

I would have asked too.

- how to make this way:

You'll most likely have to add the path in the PathId 1 asset (type AssetBundle) using export/import dump so it can find it properly. Make sure to update the array size properly before importing the dump (it doesn't matter if the indices are wrong though).

if this is not about the "TerrainTextures" as I asked earlier, but I want to add the texture in the maingames assets.

 

I want to add another type of spectrum for the biomes (textures/environment/spectrums).

I think the structure of the maingame assets is different, for example - there is have common "globalgamemanagers" ...

How to find this "header", to add the path ?

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

Question:

 

I'm a 3d modeler, and someone asked about adding a whip antenna to the back of the minibike. If I can get the minibike model and textures, I could easily do this in a half hour.

 

 

The only issues I could foresee if if the collision box for the minibike would change with the antenna addition, and how to export or just add the generic metal texture to the antenna itself, and the red flag at the top.

 

Would this tool give me the capability to export and then import the minibike model, once changed?

 

I'm thinking the minibike is probably a grouped object, combining its components. (seat, chassis, handlebars, ect.) Or maybe its a new separate model that replaces versions that are partially completed?

 

Its easy to loose the minibike in tall grass, and adding a whip antenna with a flag seems like an easy solution.

 

Maybe someone can partner up with me on this if I create the new geometry changes to make it available?

 

The minibike is created from the GameObject "entities/vehicles/minibike_prefab" (if you open globalgamemanagers through UABE, you can search for that path without " of course). It contains a Transform component (in View Data, expand m_Component, Array, 0, data, second and view asset) that has all minibike parts linked as children Transform (they contain a reference to the according GameObject).

There are two options :

1) Extending one of the minibike's part meshes by the whip antenna, which requires adding your texture to an existing one (I'm not sure if that's easily doable).

You can find the mesh location in GameObject->m_Component->Array->(usually 1)->data->second->view asset->Base->m_Mesh, the file id in brackets is the one you're looking for.

You can find the texture location in GameObject->m_Component->Array->(usually 1)->data->second->view asset->Base->m_Materials->Array->0->data->view asset->Base->m_SavedProperties->m_TexEnvs->Array->5->data->second->m_Texture.

UABE can't export rigged meshes and can't import meshes at all so far. As far as I know, all the minibike parts have bones though so it likely won't work good. The only way to import a mesh is through the .assets of a built custom Unity project with that mesh in a scene.

2) Adding another part to the minibike.

While it should work in theory, I haven't found a way not crashing the game even though I have created a new Transform, GameObject and SkinnedMeshRenderer and added all necessary dependencies to the ResourceManager assets. The game crashes because it somehow doesn't load my assets properly but tries to access them, so either the assets themselves are wrong or I am missing another dependency tree.

I'll report back if I find a way to fix it.

 

 

DerPopo,

 

First of all, let me say to you that your tool already helped me immensely with my project (I'm creating Mod for different 2D game). Using UABE, I was able to change IsReadable flag to true and thus, make possible to change hue of the textures in game.

 

I've come to the point where I need to add my own files to the bundle (textures for now). Using UABE I managed to successfully add needed texture.

 

Problem is that I can't seem to figure out how to apply needed path to this texture (or should I say create a reference to this texture). The only PreloadData file I found in a bundle just points to the all .assets files, w/o mentioning texture names.

 

If I open mainData file, I can see my newly added texture but w/o path (like portraits/enemies/thistexture).

 

Could you please suggest how to solve this issue? Is it possible or it really depends on the game?

I would have asked too.

- how to make this way:

 

if this is not about the "TerrainTextures" as I asked earlier, but I want to add the texture in the maingames assets.

 

I want to add another type of spectrum for the biomes (textures/environment/spectrums).

I think the structure of the maingame assets is different, for example - there is have common "globalgamemanagers" ...

How to find this "header", to add the path ?

 

In case you store your texture in a bundle file, there should be an unnamed asset of type AssetBundle (path id always is 1 afaik) in at least one of the bundle's .assets that contains the names in the m_Container array. Export a dump, copy the last entry in m_PreloadTable and adjust it so it e.g. looks like this :

 0 Array Array (144 items)
  [b][size=3]0 int size = 145[/size][/b]
... (entries 0-142)
  [143]
   0 PPtr<Object> data
    0 int m_FileID = 0
    0 SInt64 m_PathID = 45
  [b][size=3][144][/size]
   [size=3]0 PPtr<Object> data[/size]
    [size=3]0 int m_FileID = 0[/size]
    [size=3]0 SInt64 m_PathID = 46[/size][/b]

The changed lines are marked in bold font.

You don't need to fix the index in the brackets. It's important that the new entry is at the end and that you fix the size. Adjust the file id and path id to match your asset.

Perform similarly on m_Container. Copy one item (you can use any in this case), increase the size, enter the new name, set preloadIndex to the index of the entry in m_PreloadTable, preloadSize to 1 and also modify the PPtr to match your asset.

 

In .assets files, the ResourceManager asset in the mainData or globalgamemanagers file (depends on the Unity version of the game) has all the names. Copy the first entry (or any other entry) in m_Container, set your name and file/path ID and adjust the size. The file id here isn't the same one as in the list UABE shows, you need to look for other named assets in the same .assets file to find the correct one.

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

I'm tinkering with modding and using them on our home server now. I'm pretty sure I can just stretch uvs on the antenna and use the mirror texture if I can locate it, and could probably slap any color color texture on the flag just to see if its working. the only issue I think might happen is the bike's collision extends to the mesh, which might mean the flag could catch the bike on tree limbs n such.

 

I'll look at it again once I get this modding stuff done... thanks for the detailed info!

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...