Code Monkey home page Code Monkey logo

assetstudio's Introduction

AssetStudioMod

Release Downloads Download latest release

Build status Download latest build

AssetStudioMod - modified version of Perfare's AssetStudio, mainly focused on UI optimization and some functionality enhancements.

Neither the repository, nor the tool, nor the author of the tool, nor the author of the modification is affiliated with, sponsored, or authorized by Unity Technologies or its affiliates.

Game specific modifications

AssetStudio Features

  • Support version:
    • 3.4 - 2023.2
  • Support asset types:
    • Texture2D, Texture2DArray : convert to png, tga, jpeg, bmp, webp
    • Sprite : crop Texture2D to png, tga, jpeg, bmp, webp
    • AudioClip : mp3, ogg, wav, m4a, fsb. Support converting FSB file to WAV(PCM)
    • Font : ttf, otf
    • Mesh : obj
    • TextAsset
    • Shader (for Unity < 2021)
    • MovieTexture
    • VideoClip
    • MonoBehaviour : json
    • Animator : export to FBX file with bound AnimationClip

AssetStudioMod Features

  • CLI version (for Windows, Linux, Mac)
    • Animator and AnimationClip assets are not supported in the CLI version
  • Support of sprites with alpha mask
  • Support of image export in WebP format
  • Support of Live2D Cubism model export
    • Ported from my fork of Perfare's UnityLive2DExtractor
    • Using the Live2D export in AssetStudio allows you to specify a Unity version and assembly folder if needed
  • Support of swizzled Switch textures
  • Detecting bundles with UnityCN encryption
    • Detection only. If you want to open them, please use Razmoth's Studio
  • Some UI optimizations and bug fixes (See CHANGELOG for details)

Requirements

CLI Usage

You can read CLI readme here.

Run

  • Command-line: AssetStudioModCLI <asset folder path>
  • Command-line for Portable versions (.NET 6+): dotnet AssetStudioModCLI.dll <asset folder path>

Basic Samples

  • Show a list with a number of assets of each type available for export
AssetStudioModCLI <asset folder path> -m info
  • Export assets of all supported for export types
AssetStudioModCLI <asset folder path>
  • Export assets of specific types
AssetStudioModCLI <asset folder path> -t tex2d
AssetStudioModCLI <asset folder path> -t tex2d,sprite,audio
  • Export assets grouped by type
AssetStudioModCLI <asset folder path> -g type
  • Export assets to a specified output folder
AssetStudioModCLI <asset folder path> -o <output folder path>
  • Dump assets to a specified output folder
AssetStudioModCLI <asset folder path> -m dump -o <output folder path>
  • Export Live2D Cubism models
AssetStudioModCLI <asset folder path> -m live2d

When running in live2d mode you can only specify -o, --log-level, --log-output, --l2d-motion-mode, --l2d-force-bezier, --export-asset-list, --unity-version and --assembly-folder options. Any other options will be ignored.

  • Export all FBX objects (similar to "Export all objects (split)" option in the GUI)
AssetStudioModCLI <asset folder path> -m splitObjects

When running in splitObjects mode you can only specify -o, --log-level, --log-output, --export-asset-list, --image-format, --filter-by-name and --unity-version options. Any other options will be ignored.

Advanced Samples

  • Export image assets converted to webp format to a specified output folder
AssetStudioModCLI <asset folder path> -o <output folder path> -t sprite,tex2d --image-format webp
  • Show the number of audio assets that have "voice" in their names
AssetStudioModCLI <asset folder path> -m info -t audio --filter-by-name voice
  • Export audio assets that have "voice" in their names
AssetStudioModCLI <asset folder path> -t audio --filter-by-name voice
  • Export audio assets that have "music" or "voice" in their names
AssetStudioModCLI <asset folder path> -t audio --filter-by-name music,voice
AssetStudioModCLI <asset folder path> -t audio --filter-by-name music --filter-by-name voice
  • Export audio assets that have "char" in their names or containers
AssetStudioModCLI <asset folder path> -t audio --filter-by-text char
  • Export audio assets that have "voice" in their names and "char" in their containers
AssetStudioModCLI <asset folder path> -t audio --filter-by-name voice --filter-by-container char
  • Export FBX objects that have "model" or "scene" in their names and set the scale factor to 10
AssetStudioModCLI <asset folder path> -m splitObjects --filter-by-name model,scene --fbx-scale-factor 10
  • Export MonoBehaviour assets that require an assembly folder to read and create a log file
AssetStudioModCLI <asset folder path> -t monobehaviour --assembly-folder <assembly folder path> --log-output both
  • Export assets that require to specify a Unity version
AssetStudioModCLI <asset folder path> --unity-version 2017.4.39f1
  • Load assets of all types and show them (similar to "Display all assets" option in the GUI)
AssetStudioModCLI <asset folder path> -m info --load-all
  • Load assets of all types and dump Material assets
AssetStudioModCLI <asset folder path> -m dump -t material --load-all

GUI 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, Live2D models

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 Il2CppDumper to generate dummy dll, then when using AssetStudio to select the assembly directory, select the dummy dll folder.

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

assetstudio's People

Contributors

aelurum avatar arcadedoug avatar astro75 avatar bm85-hz avatar brianpow avatar dazombiekiller avatar druhin13 avatar fraxul avatar hozuki avatar imgbotapp avatar insprill avatar ipsvn avatar ishotihadus avatar jayatubi avatar k0lb3 avatar mafaca avatar nikitalita avatar notjosh avatar paleneutron avatar patrickking avatar perfare avatar qiankanglai avatar radumc avatar scriptkitz avatar sk-zk avatar starhearthunt avatar tahvohck 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

assetstudio's Issues

Is support for higher unity versions coming?

A few days ago I ran into a problem where AssetStudio could not properly parse MB files of a game which was made with Unity version 2022.2.12

The game is called "I am Dave", and it's free to download and play so just in case you want to take a look, below is the link to the game.
https://dnsatan.itch.io/i-am-dave

With that said, I was wondering if support for higher unity versions, such as 2022.2, are coming/planned/being considered in the future.
Or will the support versions permanently be fixed to 3.4 - 2022.1, as is at the moment?

Meshes exporting without vertex groups

Hi, I'm trying to export models from Transformers: Earth Wars. I normally use Export-->Animator + selected AnimationClips, and that gives me a fully animated mesh with all the correct textures. On a very small percentage of models from that game, however, AssetStudio exports the armature and animation correctly, but the mesh comes through with no vertex groups, which means the armature and animation are fairly useless.

I know the vertex groups exist, because the models are animated correctly in the gallery in the game, but they're not coming through in the mesh. I've attached a data file in case anybody is willing to troubleshoot the problem. Thanks!

__data_nemesis_2023-12-14.zip

Go to scene hierarchy in CLI?

Is it possible to view scene hierarchy of an asset in the CLI version, or export assets in folders that show scene hierarchy?
In the GUI version I use the go to scene hierarchy function a lot but it doesnt seem like there's an equivalent function in CLI, which means I have no way of finding some very necessary information about certain Monobehavior assets. Could this be added if it doesn't exist?

Before you tell me to just use the GUI version: i don't always have access to a windows machine so sometimes cli is all i can use.

SkinnedMeshRenderer won't open

Hi, I'm trying to extract assets from a folder with about 33,800 .unity3d files. I'm getting this message many times:

Unable to load object
Assets CAB-fa3d70dec379a6a5a618fa2d0d410bed
Path
C:\Users\jackj\OneDrive\Desktop\DHSG\Output\aRCNAME_03750b32.unity3d
Type SkinnedMeshRenderer
PathID 6841637308075437081
System.IO.EndOfStreamException: Unable to read beyond the end of the stream.
at System.IO.BinaryReader.InternalRead(Int32 numBytes)
at AssetStudio.EndianBinaryReader.ReadInt64() in
L:\GIT\AssetStudioMod\AssetStudio\EndianBinaryReader.cs:line 52
at AssetStudio.SkinnedMeshRenderer...ctor(ObjectReader reader) in
L:\GIT\AssetStudioMod\AssetStudio\Classes\SkinnedMeshRenderer.cs:line 14
at AssetStudio.AssetsManager.ReadAssets() in
L:\GIT\AssetStudioMod\AssetStudio\AssetsManager.cs:line 588

It seems like the same error message for all the files, and all the files are of type SkinnedMeshRenderer.

Errors when loading Rust bundles

Hello! I'm trying to load the bundles from the game Rust but am having errors since they updated it to Unity 2021.3.

I have 32GBs of RAM and used to be able to load all the bundles, but now that these errors started showing up, it consumes the entirety of my memory until my system crashes, while the progress bar is still barely at 5%.

It all seems to be related to ReadInt32().. My wild guess is that Unity 2021.3 updated some of the data types to Int64 which started causing problems everywhere an Int32 value is expected.

Here are a few of the errors I was able to screenshot before it crashed:

Screenshots

2023-03-13 19-41-10

2023-03-13 19-41-17

2023-03-13 19-49-52

2023-03-13 19-51-34

2023-03-13 19-53-03

2023-03-13 19-53-50

Unhandled exception has occured in your application.

this popped up
image
this had popped up while i was trying to extract stuff from phas for animating, importing the phas folder causes this.
I did attempt to continue but nothing happened

this is the whole error
See the end of this message for details on invoking
just-in-time (JIT) debugging instead of this dialog box.

************** Exception Text **************
System.IO.IOException: Stream was too long.
at System.IO.MemoryStream.Write(Byte[] buffer, Int32 offset, Int32 count)
at System.IO.Stream.InternalCopyTo(Stream destination, Int32 bufferSize)
at AssetStudio.ImportHelper.DecompressGZip(FileReader reader) in L:\GIT\AssetStudioMod\AssetStudio\ImportHelper.cs:line 61
at AssetStudio.AssetsManager.LoadFile(FileReader reader) in L:\GIT\AssetStudioMod\AssetStudio\AssetsManager.cs:line 148
at AssetStudio.AssetsManager.Load(String[] files) in L:\GIT\AssetStudioMod\AssetStudio\AssetsManager.cs:line 116
at AssetStudio.AssetsManager.LoadFilesAndFolders(String& parentPath, List`1 pathList) in L:\GIT\AssetStudioMod\AssetStudio\AssetsManager.cs:line 101
at System.Threading.Tasks.Task.Execute()
--- End of stack trace from previous location where exception was thrown ---
at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
at AssetStudioGUI.AssetStudioGUIForm.<loadFolder_Click>d__58.MoveNext() in L:\GIT\AssetStudioMod\AssetStudioGUI\AssetStudioGUIForm.cs:line 176
--- End of stack trace from previous location where exception was thrown ---
at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()

************** Loaded Assemblies **************
mscorlib
Assembly Version: 4.0.0.0
Win32 Version: 4.8.9181.0 built by: NET481REL1LAST_C
CodeBase: file:///C:/Windows/Microsoft.NET/Framework64/v4.0.30319/mscorlib.dll

AssetStudioModGUI
Assembly Version: 0.17.3.0
Win32 Version: 0.17.3.0
CodeBase: file:///I:/AssetStudioModGUI_net472_win32_64/AssetStudioModGUI.exe

System.Windows.Forms
Assembly Version: 4.0.0.0
Win32 Version: 4.8.9181.0 built by: NET481REL1LAST_C
CodeBase: file:///C:/Windows/Microsoft.Net/assembly/GAC_MSIL/System.Windows.Forms/v4.0_4.0.0.0__b77a5c561934e089/System.Windows.Forms.dll

System
Assembly Version: 4.0.0.0
Win32 Version: 4.8.9172.0 built by: NET481REL1LAST_C
CodeBase: file:///C:/Windows/Microsoft.Net/assembly/GAC_MSIL/System/v4.0_4.0.0.0__b77a5c561934e089/System.dll

System.Drawing
Assembly Version: 4.0.0.0
Win32 Version: 4.8.9037.0 built by: NET481REL1
CodeBase: file:///C:/Windows/Microsoft.Net/assembly/GAC_MSIL/System.Drawing/v4.0_4.0.0.0__b03f5f7f11d50a3a/System.Drawing.dll

AssetStudioUtility
Assembly Version: 0.17.3.0
Win32 Version: 0.17.3.0
CodeBase: file:///I:/AssetStudioModGUI_net472_win32_64/AssetStudioUtility.DLL

OpenTK
Assembly Version: 3.3.3.0
Win32 Version: 3.3.3
CodeBase: file:///I:/AssetStudioModGUI_net472_win32_64/OpenTK.DLL

Microsoft.WindowsAPICodePack.Shell
Assembly Version: 1.1.6.0
Win32 Version: 1.1.6.0
CodeBase: file:///I:/AssetStudioModGUI_net472_win32_64/Microsoft.WindowsAPICodePack.Shell.DLL

AssetStudio
Assembly Version: 0.17.3.0
Win32 Version: 0.17.3.0
CodeBase: file:///I:/AssetStudioModGUI_net472_win32_64/AssetStudio.DLL

System.Core
Assembly Version: 4.0.0.0
Win32 Version: 4.8.9181.0 built by: NET481REL1LAST_C
CodeBase: file:///C:/Windows/Microsoft.Net/assembly/GAC_MSIL/System.Core/v4.0_4.0.0.0__b77a5c561934e089/System.Core.dll

Mono.Cecil
Assembly Version: 0.11.3.0
Win32 Version: 0.11.3.0
CodeBase: file:///I:/AssetStudioModGUI_net472_win32_64/Mono.Cecil.DLL

Microsoft.WindowsAPICodePack
Assembly Version: 1.1.6.0
Win32 Version: 1.1.6.0
CodeBase: file:///I:/AssetStudioModGUI_net472_win32_64/Microsoft.WindowsAPICodePack.DLL

System.Configuration
Assembly Version: 4.0.0.0
Win32 Version: 4.8.9037.0 built by: NET481REL1
CodeBase: file:///C:/Windows/Microsoft.Net/assembly/GAC_MSIL/System.Configuration/v4.0_4.0.0.0__b03f5f7f11d50a3a/System.Configuration.dll

System.Xml
Assembly Version: 4.0.0.0
Win32 Version: 4.8.9037.0 built by: NET481REL1
CodeBase: file:///C:/Windows/Microsoft.Net/assembly/GAC_MSIL/System.Xml/v4.0_4.0.0.0__b77a5c561934e089/System.Xml.dll

OpenTK.GLControl
Assembly Version: 3.3.3.0
Win32 Version: 3.3.3
CodeBase: file:///I:/AssetStudioModGUI_net472_win32_64/OpenTK.GLControl.DLL

AssetStudio.PInvoke
Assembly Version: 0.17.3.0
Win32 Version: 0.17.3.0
CodeBase: file:///I:/AssetStudioModGUI_net472_win32_64/AssetStudio.PInvoke.DLL

System.Memory
Assembly Version: 4.0.1.1
Win32 Version: 4.6.28619.01
CodeBase: file:///I:/AssetStudioModGUI_net472_win32_64/System.Memory.DLL

System.Runtime.CompilerServices.Unsafe
Assembly Version: 5.0.0.0
Win32 Version: 5.0.20.51904
CodeBase: file:///I:/AssetStudioModGUI_net472_win32_64/System.Runtime.CompilerServices.Unsafe.DLL

************** JIT Debugging **************
To enable just-in-time (JIT) debugging, the .config file for this
application or computer (machine.config) must have the
jitDebugging value set in the system.windows.forms section.
The application must also be compiled with debugging
enabled.

For example:

When JIT debugging is enabled, any unhandled exception
will be sent to the JIT debugger registered on the computer
rather than be handled by this dialog box.

Crashing when attempting to preview certain files & Please add Dark theme if possible

The crashing problem happens with the original AssetStudio aswell

I appreciate that you modded the GUI to suppress all of the annoying error pop-ups that force me to click Ok or press Enter 1000 times

I don't know what's wrong with the file that caused the program to crash. Its size isn't even big for that matter. I'm aware this is vague and generic error report, please let me know what I can do to help you debug this further

Add support for .lnk shortcuts using drag-and-drop

I have a .lnk to an assetbundle, and (using the GUI version) works fine via File -> Load file, but if I try to drag and drop the .lnk onto the GUI, nothing happens and a message "No Unity file can be loaded." appears at the bottom.

Unexpected interpolation color in fragment shader (not sure how to modify code, seeking help)

Current issue encountered:
When I use original textrue, there should be no problem
But when I use in the index, it interpolates my index at the boundaries of pixels
When two coordinates are included in the same pixel, they are merged to obtain an index in between,
which looks like two types with a type mixed in between
Why can I conclude that it is interpolation? Please see the example below

CASE1:Yellow and blue, even if interpolated, are green instead of gray
I cannot control the interpolation of pixels at the boundaries (using the nearest point instead of mixing them together)
image
image

CASE2:You can see that the value of index is directly interpolated to the middle of both
image
image

My code is written as follows: first, search for the corresponding type by zooming in and out, in the x of this color
Then retrieve the type through index and directly search for the color of the index corresponding to the subscript
image
image
image

segfault in unitycrnd::crn_unpacker::unpack_dxt1 extracting from game TOEM

I first encountered this crash via AssetRipper -q -o tmp --logFile tmp/log sharedassets1.assets AssetRipper/AssetRipper#795

I have since recompiled the latest libTexture2DDecoderNative.so in Debug mode from your repo (seemingly the only active fork since Perfare archived the upstream repo) and reproduced the crash with more useful symbols.

[~1000 successful export lines skipped]
ExportedFile : 'TextIcon' exported
ExportedFile : 'WelcomeTo' exported
ExportedFile : 'WelcomeToHidden' exported
ExportedFile : 'CameraView' exported
About to unpack unity crunch...
Segmentation fault (core dumped)
Thread 1 "AssetRipper" received signal SIGSEGV, Segmentation fault.
0x00007fffefd06cfa in unitycrnd::crn_unpacker::unpack_dxt1 (this=0x55555578cec0, pDst=0x7fffffffb4e0, output_pitch_in_bytes=512, output_width=64, output_height=64) at /home/sparr/src/AssetStudio/Texture2DDecoderNative/unitycrunch/crn_decomp.h:3373
3373                pData[0] = m_color_endpoints[color_endpoint_index];
(gdb) bt
#0  0x00007fffefd06cfa in unitycrnd::crn_unpacker::unpack_dxt1 (this=0x55555578cec0, pDst=0x7fffffffb4e0, output_pitch_in_bytes=512, output_width=64, output_height=64)
    at /home/sparr/src/AssetStudio/Texture2DDecoderNative/unitycrunch/crn_decomp.h:3373
#1  0x00007fffefd05046 in unitycrnd::crn_unpacker::unpack_level (this=0x55555578cec0, pSrc=0x7fff29a77eec, src_size_in_bytes=124750, pDst=0x7fffffffb4e0, dst_size_in_bytes=32768, row_pitch_in_bytes=512, level_index=0)
    at /home/sparr/src/AssetStudio/Texture2DDecoderNative/unitycrunch/crn_decomp.h:3014
#2  0x00007fffefd04e4a in unitycrnd::crn_unpacker::unpack_level (this=0x55555578cec0, pDst=0x7fffffffb4e0, dst_size_in_bytes=32768, row_pitch_in_bytes=512, level_index=0)
    at /home/sparr/src/AssetStudio/Texture2DDecoderNative/unitycrunch/crn_decomp.h:2979
#3  0x00007fffefd042a0 in unitycrnd::crnd_unpack_level (pContext=0x55555578cec0, pDst=0x7fffffffb4e0, dst_size_in_bytes=32768, row_pitch_in_bytes=512, level_index=0)
    at /home/sparr/src/AssetStudio/Texture2DDecoderNative/unitycrunch/crn_decomp.h:3754
#4  0x00007fffefd04515 in unity_crunch_unpack_level (data=0x7fff29a779c8 "Hx", data_size=126066, level_index=0, ret=0x7fffffffb4e0, ret_size=0x7fffffffb4dc)
    at /home/sparr/src/AssetStudio/Texture2DDecoderNative/unitycrunch.cpp:27
#5  0x00007fffefcfb49f in UnpackUnityCrunch (data=0x7fff29a779c8, dataSize=126066, ppResult=0x7fffffffb5b0, pResultSize=0x7fffffffb5a8) at /home/sparr/src/AssetStudio/Texture2DDecoderNative/dllmain.cpp:161
(gdb) p pData
$5 = (unitycrnd::uint32 *) 0x45bcb28f2f6b9900
(gdb) p pData[0]
Cannot access memory at address 0x45bcb28f2f6b9900
(gdb) p f
$6 = 1
(gdb) p pDst
$7 = (unitycrnd::uint8 **) 0x7fffffffb4e0
(gdb) p *pDst
$8 = (unitycrnd::uint8 *) 0x5555558ab760 "\243\030"
(gdb) p pDst[0]
$9 = (unitycrnd::uint8 *) 0x5555558ab760 "\243\030"
(gdb) p pDst[1]
$10 = (unitycrnd::uint8 *) 0x45bcb28f2f6b9900 <error: Cannot access memory at address 0x45bcb28f2f6b9900>
(gdb) p m_pHeader->m_faces
$13 = {m_buf = "\006"}
(gdb) p pDst[2]
$16 = (unitycrnd::uint8 *) 0x7fffffffb590 "\300\265\377\377\377\177"
(gdb) p pDst[3]
$17 = (unitycrnd::uint8 *) 0x7fff7f84393e "A\306E\f\001H\277\060\357\227\367\377\177"
(gdb) p pDst[4]
$18 = (unitycrnd::uint8 *) 0x7fffffffb500 ""
(gdb) p pDst[5]
$19 = (unitycrnd::uint8 *) 0x4a7a3409 <error: Cannot access memory at address 0x4a7a3409>
(gdb) p pDst[6]
$20 = (unitycrnd::uint8 *) 0x7ffff794ef08 "\220\033\065\367\377\177"
(gdb) p pDst[7]
$21 = (unitycrnd::uint8 *) 0xffffffffffffffff <error: Cannot access memory at address 0xffffffffffffffff>

So it looks like pDst[1] and pDst[5] both point somewhere they shouldn't. (pDst[6] and [7] are out of bounds since m_faces is 6)

I'd be happy to poke around further if that would be helpful. I had some trouble following the logic back up into unpack_level but with some advice I'd could take another crack at it. I'm also open to instructions on how to extract the texture in question without decoding it, to a smaller file I could attach to this issue.

option to split model by folder/GameObject name

i have some issue when exporting GameObjects by using "Model -> Export selected objects" feature, the problem is there are many textures with same name, so when i do batch export, textures with same name will be replaced, which will cause wrong/missing texture for some models.

Huge Issue! Models Shifted and UV Unwrap only on first material on the entire object.

When using export all objects or export selected objects to export the entire 3D scene as an FBX, we run into major issues. For starters the FBX when imported into Blender has some models completely moved from their proper locations. Second the materials are all messed up, as the mesh only has the first material applied to the entire mesh, instead of certain sections having certain materials/UV Unwraps. Here's an example, of how the building has been shifted from its proper position and the lights along with it.
image
And here's the image that shows how it's supposed to look like (Correct), and what it looks like when exported to Blender (Incorrect).
image

path IDs in exported file name

hello, me again, sorry i hate to request another feature when i've already got another enhancement request open, but i'm wondering if it might be possible to implement an option to include the path ID of exported assets in their filename? i know it lists path IDs of exported objects if you generate an assets.xml file, but it can be kind of hard to match up the asset listed in the xml file to its exported file especially when a lot of monobehavior objects have the same name. If this is something that can be done in addition to the group assets by source file name option, that would be ideal.

this would be really useful in saving me time—the path IDs are pretty important for a lot of the asset mining i do, and being able to export assets with path IDs somewhere in the filename would allow me to write python scripts that would speed up the process of looking through these assets significantly. even if its just added to the cli version only that would be fine

Feature request: Import options

Would it be possible to add Import options to Asset Studio so I could choose to exclude certain types of assets from being loaded. That way, I could for example, load a folder and skip loading the AudioClip assets if I want the models.

I was trying to load a folder full of assets with what look like randomly generated file names that were all unorganized and in one big folder, but loading too many assets at once eats up too much RAM, so a feature like this would be a big help.

`OutOfMemoryException` when trying to rip small amount of assets from a big game

I have one huge game with ~30GB of assets, and it seems even my 64GB of RAM is not enough.
I'm getting a bunch of

[Warning] System.OutOfMemoryException: Exception of type 'System.OutOfMemoryException' was thrown. 
[Warning]    at AssetStudio.BundleFile.CreateBlocksStream(String path) in L:\GIT\AssetStudioMod\AssetStudio\BundleFile.cs:line 174 
[Warning]    at AssetStudio.BundleFile..ctor(FileReader reader, String specUnityVer) in L:\GIT\AssetStudioMod\AssetStudio\BundleFile.cs:line 127 
[Warning]    at AssetStudio.AssetsManager.LoadBundleFile(FileReader reader, String originalPath) in L:\GIT\AssetStudioMod\AssetStudio\AssetsManager.cs:line 256 

But, in my case, I'm trying to execute the -t audio, and I doubt there will be even 1GB of audio in the assets. What can be done to immediately discard everything that will be filtered out, right after loading a .bundle file?

[Error] Export Sprite:summon_eleElemental_9 error

[Error] Export Sprite:summon_eleElemental_9 error
[Error]
[Error] System.ArgumentOutOfRangeException: Parameter "width" (System.Int32) must be greater than 0, was 0
[Error] 參數名稱: width
[Error] 於 SixLabors.ThrowHelper.ThrowArgumentOutOfRangeException(String name, String message)
[Error] 於 SixLabors.ThrowHelper.ThrowArgumentOutOfRangeExceptionForMustBeGreaterThan[T](T value, T minimum, String name)
[Error] 於 SixLabors.ImageSharp.ImageFrame1..ctor(Configuration configuration, Int32 width, Int32 height, ImageFrameMetadata metadata) [Error] 於 SixLabors.ImageSharp.Processing.Processors.CloningImageProcessor1.CreateTarget()
[Error] 於 SixLabors.ImageSharp.Processing.Processors.CloningImageProcessor1.SixLabors.ImageSharp.Processing.Processors.ICloningImageProcessor<TPixel>.CloneAndExecute() [Error] 於 SixLabors.ImageSharp.Processing.DefaultImageProcessorContext1.ApplyProcessor(IImageProcessor processor, Rectangle rectangle)
[Error] 於 SixLabors.ImageSharp.Processing.DefaultImageProcessorContext1.ApplyProcessor(IImageProcessor processor) [Error] 於 SixLabors.ImageSharp.Processing.CropExtensions.Crop(IImageProcessingContext source, Rectangle cropRectangle) [Error] 於 AssetStudio.SpriteHelper.<>c__DisplayClass2_0.<CutImage>b__0(IImageProcessingContext x) 於 L:\GIT\AssetStudioMod\AssetStudioUtility\SpriteHelper.cs: 行 108 [Error] 於 SixLabors.ImageSharp.Processing.ProcessingExtensions.Clone[TPixel](Image1 source, Configuration configuration, Action`1 operation)
[Error] 於 AssetStudio.SpriteHelper.CutImage(Sprite m_Sprite, Texture2D m_Texture2D, Rectf textureRect, Vector2 textureRectOffset, Single downscaleMultiplier, SpriteSettings settingsRaw) 於 L:\GIT\AssetStudioMod\AssetStudioUtility\SpriteHelper.cs: 行 108
[Error] 於 AssetStudio.SpriteHelper.GetImage(Sprite m_Sprite, SpriteMaskMode spriteMaskMode) 於 L:\GIT\AssetStudioMod\AssetStudioUtility\SpriteHelper.cs: 行 30
[Error] 於 AssetStudioGUI.Exporter.ExportSprite(AssetItem item, String exportPath) 於 L:\GIT\AssetStudioMod\AssetStudioGUI\Exporter.cs: 行 246
[Error] 於 AssetStudioGUI.Studio.<>c__DisplayClass14_0.b__0(Object state) 於 L:\GIT\AssetStudioMod\AssetStudioGUI\Studio.cs: 行 477

.Exe file available?

Hi! I really want to use this version of AssetStudio, but I have no idea how to compile this. I've been working on this for an entire day, and it's just over my head. Is there a .exe available for the GUI version of this for people like me who are completely ignorant of C++ or C# programming?

How to add a new compression type?

Hi,

I'm not really familiar with C# and Unity's low-level details or anything related to cracking, but I'm still trying to dig into the models of the new Arknights game (Endfield). When attempting to open the game directory, I got a Unsupported compression type 5 error. It seems to be the exception thrown in BundleFile.ReadBlocks() in AssetStudio/BundleFile.cs line 398.

I've no idea where the enum values for CompressionType come from. Are they derived from Unity's documentation, or something obtained through reverse engineering?

I want to try adding some decompression logic but idk what the algorithm is for "type 5"...

Animation Export Order?

Hi, when I'm using the Export-->Animator + selected AnimationClips, is there a way to change the order in which it exports the clips? I have exported a model with two animation clips, and they're appearing in the order 2-then-1, when I need them in the order 1-then-2. Fixing this afterwards in Noesis has proved to be impossible, and fixing it in Blender is terribly complicated.

This is for the game Transformers: Earth Wars.

I'm selecting the Animator file "main" (the lod0 version) and the AnimationClips:
transform_to_alt_hero
transform_to_main_hero

I want them to export in that order, but AssetStudio is reversing the order. I've tried changing the order in which I select the AnimationClips, but it doesn't affect the export.

grapple.zip

Request to add regexp support

the CLI is not like the GUI where you can manually filter.
keywords alone will export a lot of irrelevant files.
regexp can help the CLI filter files more detailed.
It would be useful to have this feature

Mesh files exported incorrectly [CLI]

The mesh files are being exported with commas instead of periods for the vertices when converted to the OBJ format, which ends up corrupting the file. I conducted a test comparing the files generated by the GUI and the CLI, and it seems that this issue affects only the CLI version. Simply replacing the commas with periods makes the OBJ file work correctly

image

Hair textures distorted or masked on extraction

When extracting models from Star Trek: Fleet Command, the models with hair are coming out with distorted hair textures. I think there is some kind of translation that's happening in-game in order to make the models look correct in the game's gallery, but when extracted, the hair portions of the models' textures appear as brightly-colored blobs. In the attached file, as an example, the character should have dark brown or black hair; instead, the color is a mixture of blues and greens. I was hoping there was something that could be done in AssetStudio to compensate for this.

STFC_Bashir.zip

Unable to load object

Hi. Ive been trying to see the files from the mobile game Shining Nikki and I used to be able to do it before. The game had a recent update and now I cant seem to open the mesh files. Textures load fine, but meshes seem to have some issues.

I get the following message when trying to load the files in AssetStudio:

Unable to load object
[Warning] Assets CAB-118a61376bf239bc6ad21673ca396376
[Warning] Path D:\RIP\Shining Nikki\Ripping tools\Test\s0554_2d.cut
[Warning] Type Material
[Warning] PathID 7030046753368706209
[Warning] System.IO.EndOfStreamException: Unable to read beyond the end of the stream.
[Warning] at System.IO.BinaryReader.InternalRead(Int32 numBytes)
[Warning] at System.IO.BinaryReader.ReadSingle()
[Warning] at AssetStudio.EndianBinaryReader.ReadSingle() in L:\GIT\AssetStudioMod\AssetStudio\EndianBinaryReader.cs:line 91
[Warning] at AssetStudio.BinaryReaderExtensions.ReadColor4(BinaryReader reader) in L:\GIT\AssetStudioMod\AssetStudio\Extensions\BinaryReaderExtensions.cs:line 98
[Warning] at AssetStudio.UnityPropertySheet..ctor(ObjectReader reader) in L:\GIT\AssetStudioMod\AssetStudio\Classes\Material.cs:line 58
[Warning] at AssetStudio.Material..ctor(ObjectReader reader) in L:\GIT\AssetStudioMod\AssetStudio\Classes\Material.cs:line 119
[Warning] at AssetStudio.AssetsManager.ReadAssets() in L:\GIT\AssetStudioMod\AssetStudio\AssetsManager.cs:line 564

You can find the assets I've been trying to open here:
Shining nikki assets.zip

They are .cut because I need to use vgmtoolbox to remove the first 8 bytes in order to open them on ASsetStudio. If you need the original assets, I can also provide them.

Thank you!

[Feature request] Add 'Deselect All' button to the Hierarchy

(somewhat copied from Perfare#961)

Hello!

I would like to request a feature that would allow me to de-select all checkboxes in the hierarchy because due to my current workflow I use "Go to scene hierarchy" from the Asset list all the time and when I need to export the next asset, the previous one is already scrolled away from the hierarchy view, forcing me to find it again just to de-select it.

Another option would be a setting that automatically de-selects all previously selected assets after exporting.

Thanks!

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.