Jump to content

UABE - Asset Bundle Extractor


DerPopo

Recommended Posts

@sam ata Take a look at the TextureFileFormat.h. You have to call ReadTextureFile on an empty TextureFile structure with the value field to the texture and call GetTextureData on it (it'll write the RGBA32 data with width*height*4 bytes to pOutBuf). To write the raw data to .png, you can use a library such as lodepng or stb_image.

__

Release 2.0 is almost ready, I'm doing some final bughunting and improvements.

Link to comment
Share on other sites

@sam ata Take a look at the TextureFileFormat.h. You have to call ReadTextureFile on an empty TextureFile structure with the value field to the texture and call GetTextureData on it (it'll write the RGBA32 data with width*height*4 bytes to pOutBuf). To write the raw data to .png, you can use a library such as lodepng or stb_image.

Thanks for all your help.

 

Release 2.0 is almost ready, I'm doing some final bughunting and improvements.

Great !

Link to comment
Share on other sites

Release 2.0 is out! It's the largest release so far with 14118 line insertions and 1642 deletions, resulting in 31 lines in the changelog (it's actually more than that).

The main features are a mod installer creator along with the option to restore a previous session (by loading an installer package), direct editing of assets in bundles, better support for older Unity versions + 5.4, lots of bugfixes and improvements. See the changelog on the main post for more details.

I did extensive bug hunting but there likely are still some things I've missed. Feel free to suggest improvements or to ask questions.

Link to comment
Share on other sites

Release 2.0 is out! It's the largest release so far with 14118 line insertions and 1642 deletions, resulting in 31 lines in the changelog (it's actually more than that).

The main features are a mod installer creator along with the option to restore a previous session (by loading an installer package), direct editing of assets in bundles, better support for older Unity versions + 5.4, lots of bugfixes and improvements. See the changelog on the main post for more details.

I did extensive bug hunting but there likely are still some things I've missed. Feel free to suggest improvements or to ask questions.

Cool !

Link to comment
Share on other sites

Why I can't open .assets.resS files?

When I try to open this it says "invalid file or unknown version".

And how I can extract AnimationClip, AnimatorControler and Sprite?

When I click on Plugins, there's nothing that I can use to extract...

 

The .assets.resS files contain raw data referenced by the .assets file (i.e. it has no file format and is just data of any kind glued into one file). AudioClip and Texture2D assets with the data stored in .resS files can be extracted.

Use View Data on Sprites to see which textures are referenced, and you can export the texture.

AnimationClip files can't be exported right now (Meshes are exported without bones atm, so animations wouldn't work on them)

Link to comment
Share on other sites

Currently I'm looking for a way to replace a 2d texture in a asset bundle. And the asset bundle I'm working on is a tga format image.

 

I've seen there are talks about Unity Assets Bundle Extractor can achieve that goal.

 

 

Sorry, just found that massive Texture Load button, I'll give that try. Thanks.

 

 

 

Could you please give some guidance how to do that?

 

I'm really new to this texture thing, so any other knowledge articles for how to create these 2D texture and asset bundle will be greatly appreciated.

 

 

Thanks in advance.

Edited by WinterCloud
missed info (see edit history)
Link to comment
Share on other sites

The .assets.resS files contain raw data referenced by the .assets file (i.e. it has no file format and is just data of any kind glued into one file). AudioClip and Texture2D assets with the data stored in .resS files can be extracted.

Use View Data on Sprites to see which textures are referenced, and you can export the texture.

AnimationClip files can't be exported right now (Meshes are exported without bones atm, so animations wouldn't work on them)

 

How do i replace Texture2D in it .resS ?

(I want to replace "Loading_Screen_1" from the old version of the game.)

I imported/load this texture, i saved asset. She appeared in asset. But the game somehow magically loads the which was first...!

I suspect that the blame for this .resS....but I can't impact on it !

 

 

PS: Thanks for the support for compressed assets! Are now I work with terrain textures - now I'm going to do what could not previously !:D

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

Is there a way to recompress the BDL after decompressed it?

 

Currently I got a 2d texture replaced with another from the same game, however, game can't read it for some reasons.

 

Only thing missing from the process is re-compress the bdl after replaced texture.

 

Thanks in advance.

Link to comment
Share on other sites

Is there a way to recompress the BDL after decompressed it?

 

Currently I got a 2d texture replaced with another from the same game, however, game can't read it for some reasons.

 

Only thing missing from the process is re-compress the bdl after replaced texture.

 

Thanks in advance.

It seems that you are asking about the problem that I had before.

Earlier, i was trying to replace one .txt in BlockTextureAtlases and Texture2D in the TerrainTextures. After the launch I received a message in the console that this bundle is incorrectly compressed.

Now (in A14.7), and UABE the latest version (2.0b x64) allowed me implement this!

Open asset, decompressing it, replace the texture (through the Load), save.

The game uses that unpacked and modified asset. I didn't compress back. Everything worked. ;)

 

PS: or is it automatically compressed when saving ?

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

Enter 0x1C for the type (you can see that number when you select any Texture and look in the Type field).

Mono Class ID can stay -1 as long as you don't create any MonoBehaviours.

After you press Ok, it will add the new item at the top of the asset list. You can use the texture plugin as you're used to.

 

The files aren't compressed back after saving. I may look into adding a compress option (but disable it by default because it would need to be decompressed again when editing).

Textures in .resS won't be touched, it will be stored in the Texture2D asset directly. Else, the whole file would need to be recompiled once the texture is bigger than before.

Link to comment
Share on other sites

Thank You!

I already got the texture Sulfur by replacing method! (and returned the old look for ore! :))

 

sulfur.jpg.a74a1e1a531cc1ecfeacfecb41e62c52.jpg

 

But now I need to add the texture "clayU".

Clipboard02.thumb.jpg.52509358590f54b6515b6f2bd3a3b671.jpg

With Your help i was able to shove something in the asset but it is not accepted by the game, maybe i need to set the path. How to do it ?

 

(yes, i also made changes in ta_terrainxml.txt)

 

 

 

Enter 0x1C for the type (you can see that number when you select any Texture and look in the Type field).....

aaaa....yeah i suspected, but was entered 0x0000001C - it's not worked....

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

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