Giter Club home page Giter Club logo

assetstudio's Introduction

AssetStudio

Last Commit Open Issues Contributors Contributions Welcome

GitHub watchers GitHub forks GitHub stars

Platform License

Github CI Status

Custom

AssetStudio - Based on the archived Perfare's AssetStudio, I continue Perfare's work to keep AssetStudio up-to-date, with support for new Unity versions and additional improvements.

What This Fork Offers Over the Original Repository

  • Support for New Unity Versions
    • Added support for Unity 2021.3.10+, 2022.2, and 2022.3.
  • Enhanced Shader Preview and Export
    • Add pretty printing functionality to enhance shader information readability.
    • Fix errors by implementing lazy generation for ShaderSubProgram as needed.
  • Support for Lua bytecode assets
    • Decompile, preview and export LuaJIT, Lua 5.1, 5.2, and 5.3 bytecode assets.

None of the repo, the tool, nor the repo owner is affiliated with, or sponsored or authorized by, Unity Technologies or its affiliates.

AssetStudio is a tool for exploring, extracting and exporting assets and assetbundles.

Features

  • Support version:
    • 3.4 - 2022.3
  • Support asset types:
    • Texture2D : convert to png, tga, jpeg, bmp
    • Sprite : crop Texture2D to png, tga, jpeg, bmp
    • AudioClip : mp3, ogg, wav, m4a, fsb. support convert FSB file to WAV(PCM)
    • Font : ttf, otf
    • Mesh : obj
    • TextAsset
    • Shader
    • MovieTexture
    • VideoClip
    • MonoBehaviour : json
    • Animator : export to FBX file with bound AnimationClip
    • Lua bytecode : decompile Lua bytecode back to Lua source code

Requirements

Usage

Load Assets/AssetBundles

Use File-Load file or File-Load folder.

When AssetStudio loads AssetBundles, it decompresses and reads it directly in memory, which may cause a large amount of memory to be used. You can use File-Extract file or File-Extract folder to extract AssetBundles to another folder, and then read.

Extract/Decompress AssetBundles

Use File-Extract file or File-Extract folder.

Export Assets

use Export menu.

Export Model

Export model from "Scene Hierarchy" using the Model menu.

Export Animator from "Asset List" using the Export menu.

With AnimationClip

Select model from "Scene Hierarchy" then select the AnimationClip from "Asset List", using Model-Export selected objects with AnimationClip to export.

Export Animator will export bound AnimationClip or use Ctrl to select Animator and AnimationClip from "Asset List", using Export-Export Animator with selected AnimationClip to export.

Export MonoBehaviour

When you select an asset of the MonoBehaviour type for the first time, AssetStudio will ask you the directory where the assembly is located, please select the directory where the assembly is located, such as the Managed folder.

For Il2Cpp

First, use my another program Il2CppDumper to generate dummy dll, then when using AssetStudio to select the assembly directory, select the dummy dll folder.

Decompiling Lua Bytecode

By default, the feature to decompile Lua bytecode is not enabled. It can be activated via Options-Decompile Lua

Build

  • Visual Studio 2022 or newer
  • AssetStudioFBXNative uses FBX SDK 2020.2.1, before building, you need to install the FBX SDK and modify the project file, change include directory and library directory to point to the FBX SDK directory

Open source libraries used

Texture2DDecoder

Lua Bytecode Decompiler

Roadmap

Support for new Unity versions

Unity 2023.1, Unity 2023.2, Unity 6 (Unity 2023 LTS, Unity 2023.3), etc.

License

AssetStudio is licensed under the MIT license.

Credits

If you find this tool useful, please mention my name in your credits screen. Something like "AssetStudio by Perfare & zhangjiequan" or "Thanks to Perfare & zhangjiequan" would be very much appreciated.

Collaborate

Feel free to fork the project and make modifications for yourself or to share by creating pull requests. Also, create issues for feature requests or bug reports if you want to help improving this tool, thanks!

Contact

Contact me at [email protected]

Donate

AssetStudio is a free and open-source software. If you like it and find it helpful, you can buy me a coffee!

image.png

Star History

Star History Chart

assetstudio's People

Contributors

arcadedoug avatar brianpow avatar dazombiekiller avatar druhin13 avatar fraxul avatar hozuki avatar imgbotapp avatar ishotihadus avatar jayatubi avatar k0lb3 avatar mafaca avatar nikitalita avatar notjosh avatar paleneutron avatar patrickking avatar perfare avatar qiankanglai avatar radumc avatar ragdoll1234 avatar scriptkitz avatar sk-zk avatar starhearthunt avatar tahvohck avatar zhangjiequan avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

assetstudio's Issues

Error while reading bundle file - System.IO.IOException: Lz4 decompression error, write -1 bytes but expected 131072 bytes

Game: Rise of Kingdoms
Build: Unity 2021.3.21f1
File: ui_texture_commander.lb _(Applies to all .lb UnityFS Bundle files for Rise of Kingdoms)

Error:

Error while reading bundle file C:\Users\MGS\Desktop\RoK\ui_texture_commander.lb

System.IO.IOException: Lz4 decompression error, write -1 bytes but expected 131072 bytes

   at AssetStudio.BundleFile.ReadBlocks(EndianBinaryReader reader, Stream blocksStream) in D:\a\AssetStudio\AssetStudio\AssetStudio\BundleFile.cs:line 351

   at AssetStudio.BundleFile..ctor(FileReader reader) in D:\a\AssetStudio\AssetStudio\AssetStudio\BundleFile.cs:line 98

   at AssetStudio.AssetsManager.LoadBundleFile(FileReader reader, String originalPath) in D:\a\AssetStudio\AssetStudio\AssetStudio\AssetsManager.cs:line 182

Issue reference from original 2022 build: Perfare#971 (comment)

Solution: Delete all bit entries from the first "UnityFS" specification to the next "UnityFS" specification.

Originally posted by @p0pZeroSn in Perfare#971 (comment)

Other user who had trouble with solution:

Hey bro, after I follow what you said, it prompts that the dimension of the array is exceeded. Do you know why?

Originally posted by @PackageInstaller in Perfare#971 (comment)

If this specific niche use-case doesn't warrant a special fix, could there be any more specific explanation on how to execute @p0pZeroSn's alleged fix? Even if I delete everything from and to the first and second UnityFS declarations/headers/whatever, it still doesn't function.

Is it possible to export assets with PathID in filename?

Thank you so much for your work on this!

Something that would really help me, and I have always wished the original AssetStudio had, is the ability to export files with the pathID in the name. Because unfortunately right now it seems like it just exports them with random numbers...

I mean this path ID here. Would it be possible to add a feature that can add this value to the filename of exported assets?
Immagine 2023-12-20 214008

Sonic Forces models comes out without bones or rigg

Like the title says, that's the problem, but this come from the last Version of the "Perfare/AssetStudio"

Example:
Screenshot_soniclego1

From Sonic Dash comes out well (with animations too), in Forces just with some simple Bones, no skeleton and no rigg 😞

Images appear corrupted and misidentified

A game that recently came out appears to have images of an unknown format which appear corrupted. It seems the program is also misidentifying what kind of image this is. It says something erroneous such as "DXT5" or "ASTC" which cannot be opened in viewers or converters that support these formats.

Corrupted Image

Error while read type, read 32 bytes but expected 136 bytes

Hello. I'm using wasm.unityweb and data.unityweb. When i first clicked a Monobehaviour Asset i selected the dummy dll folder generated from Il2cppDumper. Then i get the error. Unity Version: 2022.3.15f1. Is that supported or does someone know whats wrong?

变体集和材质不显示

Unity版本 2021.3.30
附件是一个项目,在StreamingAssets文件夹里已经有打好的包,myshader包里包含了SimpleLit shader和一个变体集,mymat包里包含了一个材质。
点击菜单栏Test-BBB会打包,打包前清空StreamingAssets文件夹。
AssetStudio打开包后看不到变体集和材质文件。
sbb.zip

System.IO.IOException: Lz4 decompression error, write -1 bytes but expected 131072 bytes

I get this error on every file I want to open from the game Whiteout Survival. Any tips?

I saw #15 but in my case there is a single instance of the "UnityFS" string in the file (first characters).

Error while reading bundle file D:\work\whiteout\apk\assets\data\actor_battle_battle_gpu_soldier_archer_blue_906b8dd885c6cb6653e843cd67dc4a6.unity3d
System.IO.IOException: Lz4 decompression error, write -1 bytes but expected 131072 bytes
   at AssetStudio.BundleFile.ReadBlocks(EndianBinaryReader reader, Stream blocksStream) in D:\work\whiteout\AssetStudio\AssetStudio\BundleFile.cs:line 353
   at AssetStudio.BundleFile..ctor(FileReader reader) in D:\work\whiteout\AssetStudio\AssetStudio\BundleFile.cs:line 98
   at AssetStudio.AssetsManager.LoadBundleFile(FileReader reader, String originalPath) in D:\work\whiteout\AssetStudio\AssetStudio\AssetsManager.cs:line 182

The files appear to have version 5.x.x 2018.4.36f1

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.