From 6de33d04379828abfcd35e0965b23d03b88f4751 Mon Sep 17 00:00:00 2001 From: VaDiM Date: Thu, 4 Sep 2025 20:04:50 +0300 Subject: [PATCH] Update to v0.19 & update dependencies --- .../AssetStudio.PInvoke.csproj | 2 +- AssetStudio/AssetStudio.csproj | 10 +- AssetStudio/ClassIDType.cs | 1 + AssetStudioCLI/AssetStudioCLI.csproj | 4 +- AssetStudioCLI/ReadMe.md | 118 ++++++++++++------ .../AssetStudioFBXWrapper.csproj | 2 +- AssetStudioGUI/AboutForm.Designer.cs | 6 +- AssetStudioGUI/AssetStudioGUI.csproj | 12 +- AssetStudioGUI/AssetStudioGUIForm.cs | 8 ++ AssetStudioUtility/AssetStudioUtility.csproj | 6 +- .../UnityEngineTypePredicates.cs | 1 + CHANGELOG.md | 78 ++++++++++++ LICENSE | 2 +- README.md | 27 ++-- .../Texture2DDecoderWrapper.csproj | 4 +- 15 files changed, 212 insertions(+), 69 deletions(-) diff --git a/AssetStudio.PInvoke/AssetStudio.PInvoke.csproj b/AssetStudio.PInvoke/AssetStudio.PInvoke.csproj index 7233d27..beb5ba8 100644 --- a/AssetStudio.PInvoke/AssetStudio.PInvoke.csproj +++ b/AssetStudio.PInvoke/AssetStudio.PInvoke.csproj @@ -3,7 +3,7 @@ net472;net8.0;net8.0-windows;net9.0;net9.0-windows true - 0.18.0.0 + 0.19.0.0 Copyright © Perfare 2020-2022; Copyright © hozuki 2020 embedded diff --git a/AssetStudio/AssetStudio.csproj b/AssetStudio/AssetStudio.csproj index e63d987..aad4891 100644 --- a/AssetStudio/AssetStudio.csproj +++ b/AssetStudio/AssetStudio.csproj @@ -2,20 +2,20 @@ net472;net8.0;net8.0-windows;net9.0;net9.0-windows - 0.18.0.0 - Copyright © Perfare 2018-2022; Copyright © aelurum 2023-2024 + 0.19.0.0 + Copyright © Perfare 2018-2022; Copyright © aelurum 2021-2025 embedded - + - - + + diff --git a/AssetStudio/ClassIDType.cs b/AssetStudio/ClassIDType.cs index 07cc5bf..234adeb 100644 --- a/AssetStudio/ClassIDType.cs +++ b/AssetStudio/ClassIDType.cs @@ -376,6 +376,7 @@ namespace AssetStudio SceneRoots = 1660057539, BrokenPrefabAsset = 1731078267, AndroidAssetPackImporter = 1736697216, + VulkanDeviceFilterLists = 1740304944, GridLayout = 1742807556, AssemblyDefinitionImporter = 1766753193, ParentConstraint = 1773428102, diff --git a/AssetStudioCLI/AssetStudioCLI.csproj b/AssetStudioCLI/AssetStudioCLI.csproj index 58fb8c4..e848d60 100644 --- a/AssetStudioCLI/AssetStudioCLI.csproj +++ b/AssetStudioCLI/AssetStudioCLI.csproj @@ -5,8 +5,8 @@ net472;net8.0;net9.0 AssetStudioMod by aelurum AssetStudioModCLI - 0.18.0.0 - Copyright © Perfare; Copyright © aelurum 2023-2024 + 0.19.0.0 + Copyright © Perfare; Copyright © aelurum 2023-2025 AnyCPU embedded diff --git a/AssetStudioCLI/ReadMe.md b/AssetStudioCLI/ReadMe.md index a1bceca..29f21af 100644 --- a/AssetStudioCLI/ReadMe.md +++ b/AssetStudioCLI/ReadMe.md @@ -1,51 +1,57 @@ ## AssetStudioModCLI CLI version of AssetStudioMod. -- Supported asset types for export: `Texture2D`, `Texture2DArray`, `Sprite`, `TextAsset`, `MonoBehaviour`, `Font`, `Shader`, `MovieTexture`, `AudioClip`, `VideoClip`, `Mesh`. -- *There are no plans to add support for `AnimationClip`, `Animator` for now.* +- Supported asset types for export: `Texture2D`, `Texture2DArray`, `Sprite`, `TextAsset`, `MonoBehaviour`, `Font`, `Shader`, `MovieTexture`, `AudioClip`, `VideoClip`, `Mesh`, `Animator`. ### Usage ``` -AssetStudioModCLI [-m, --mode ] +AssetStudioModCLI [-m, --mode ] [-t, --asset-type ] [-g, --group-option ] [-f, --filename-format ] [-o, --output ] - [-h, --help] [--log-level ] - [--log-output ] [--image-format ] - [--audio-format ] [--l2d-motion-mode ] - [--l2d-force-bezier] [--fbx-scale-factor ] - [--fbx-bone-size ] [--filter-by-name ] - [--filter-by-container ] [--filter-by-pathid ] - [--filter-by-text ] [--custom-compression ] - [--max-export-tasks ] [--export-asset-list ] - [--assembly-folder ] [--unity-version ] - [--not-restore-extension] [--avoid-typetree-loading] + [-r, --overwrite-existing] [-h, --help] + [--log-level ] [--log-output ] + [--image-format ] [--audio-format ] + [--l2d-group-option ] [--l2d-motion-mode ] + [--l2d-search-by-filename] [--l2d-force-bezier] + [--fbx-scale-factor ] [--fbx-bone-size ] + [--fbx-animation] [--fbx-uvs-as-diffuse] + [--filter-by-name ] [--filter-by-container ] + [--filter-by-pathid ] [--filter-by-text ] + [--filter-with-regex] [--blockinfo-comp ] + [--block-comp ] [--max-export-tasks ] + [--export-asset-list ] [--assembly-folder ] + [--unity-version ] [--decompress-to-disk] + [--not-restore-extension] [--ignore-typetree] [--load-all] General Options: -m, --mode Specify working mode - - Export - Exports converted assets - ExportRaw - Exports raw data - Dump - Makes asset dumps - Info - Loads file(s), shows the number of available for export assets and exits - Live2D - Exports Live2D Cubism models - SplitObjects - Exports split objects (fbx) + + Extract - Extract(Decompress) asset bundles + Export - Convert and export assets + ExportRaw - Export raw assets + Dump - Generate json dumps of loaded asset + Info - Load file(s) and show the number of available for export assets + Live2D - Export Live2D Cubism models + SplitObjects - Export all model objects (split) (fbx) + Animator - Export Animator assets (fbx) Example: "-m info" -t, --asset-type Specify asset type(s) to export - All - export all asset types, which are listed in the values + All - Export all asset types listed in the values *To specify multiple asset types, write them separated by ',' or ';' without spaces Examples: "-t sprite" or "-t tex2d,sprite,audio" or "-t tex2d;sprite;font" -g, --group-option Specify the way in which exported assets should be grouped - + None - Do not group exported assets Type - Group exported assets by type name Container - Group exported assets by container path ContainerFull - Group exported assets by full container path (e.g. with prefab name) SceneHierarchy - Group exported assets by their node path in scene hierarchy - Filename - Group exported assets by source file name + FileName - Group exported assets by source file name Example: "-g containerFull" -f, --filename-format Specify the file name format for exported assets @@ -58,6 +64,8 @@ General Options: -o, --output Specify path to the output folder If path isn't specified, 'ASExport' folder will be created in the program's work folder + -r, --overwrite-existing (Flag) If specified, Studio will overwrite existing files during asset export/dump + -h, --help Display help and exit Logger Options: @@ -77,10 +85,17 @@ Convert Options: --audio-format Specify the format for converting FMOD audio assets - None - Do not convert fmod audios and export them in their own format + None - Do not convert FMOD audios and export them in their own format Example: "--audio-format wav" Live2D Options: + --l2d-group-option Specify the way in which exported models should be grouped + + Container - Group exported models by container path + FileName - Group exported models by source file name + ModelName - Group exported models by model name + Example: "--l2d-group-option modelName" + --l2d-motion-mode Specify Live2D motion export mode MonoBehaviour - Try to export motions from MonoBehaviour Fade motions @@ -88,6 +103,11 @@ Live2D Options: AnimationClip - Try to export motions using AnimationClip assets Example: "--l2d-motion-mode animationClip" + --l2d-search-by-filename (Flag) If specified, Studio will search for model-related Live2D assets by file name + rather than by container + (Preferred option if all l2d assets of a single model are stored in a single file + or containers are obfuscated) + --l2d-force-bezier (Flag) If specified, Linear motion segments will be calculated as Bezier segments (May help if the exported motions look jerky/not smooth enough) @@ -100,12 +120,23 @@ FBX Options: Example: "--fbx-bone-size 10" + --fbx-animation Specify the FBX animation export mode + + Auto - Search for model-related animations and export model with them + Skip - Don't export animations + All - Try to bind all loaded animations to each loaded model + Example: "--fbx-animation skip" + + --fbx-uvs-as-diffuse (Flag) If specified, Studio will export all UVs as Diffuse maps. + Can be useful if you cannot find some UVs after exporting (e.g. in Blender) + (But can also cause some bugs with UVs) + Filter Options: - --filter-by-name Specify the name by which assets should be filtered + --filter-by-name Specify the name or regexp by which assets should be filtered *To specify multiple names write them separated by ',' or ';' without spaces Example: "--filter-by-name char" or "--filter-by-name char,bg" - --filter-by-container Specify the container by which assets should be filtered + --filter-by-container Specify the container or regexp by which assets should be filtered *To specify multiple containers write them separated by ',' or ';' without spaces Example: "--filter-by-container arts" or "--filter-by-container arts,icons" @@ -113,18 +144,32 @@ Filter Options: *To specify multiple PathIDs write them separated by ',' or ';' without spaces Example: "--filter-by-pathid 7238605633795851352,-2430306240205277265" - --filter-by-text Specify the text by which assets should be filtered + --filter-by-text Specify the text or regexp by which assets should be filtered Looks for assets that contain the specified text in their names or containers *To specify multiple values write them separated by ',' or ';' without spaces Example: "--filter-by-text portrait" or "--filter-by-text portrait,art" + --filter-with-regex (Flag) If specified, the filter options will handle the specified text + as a regular expression (doesn't apply to --filter-by-pathid) Advanced Options: - --custom-compression Specify the compression type for assets that use custom compression - + --blockinfo-comp Specify the compression type of bundle's blockInfo data + + Auto - Use compression type specified in an asset bundle Zstd - Try to decompress as zstd archive - Lz4 - Try to decompress as lz4 archive - Example: "--custom-compression lz4" + Oodle - Try to decompress as oodle archive + Lz4 - Try to decompress as lz4/lz4hc archive + Lzma - Try to decompress as lzma archive + Example: "--blockinfo-comp lz4" + + --block-comp Specify the compression type of bundle's block data + + Auto - Use compression type specified in an asset bundle + Zstd - Try to decompress as zstd archive + Oodle - Try to decompress as oodle archive + Lz4 - Try to decompress as lz4/lz4hc archive + Lzma - Try to decompress as lzma archive + Example: "--block-comp zstd" --max-export-tasks Specify the number of parallel tasks for asset export @@ -141,12 +186,15 @@ Advanced Options: --unity-version Specify Unity version Example: "--unity-version 2017.4.39f1" - --not-restore-extension (Flag) If specified, AssetStudio will not try to use/restore original TextAsset - extension name, and will just export all TextAssets with the ".txt" extension + --decompress-to-disk (Flag) If not specified, only bundles larger than 2GB will be decompressed to disk + instead of RAM - --avoid-typetree-loading (Flag) If specified, AssetStudio will not try to parse assets at load time + --not-restore-extension (Flag) If specified, Studio will not try to use/restore original TextAsset extension, + and will just export all TextAssets with the ".txt" extension + + --ignore-typetree (Flag) If specified, Studio will not try to parse assets at load time using their type tree - --load-all (Flag) If specified, AssetStudio will load assets of all types + --load-all (Flag) If specified, Studio will load assets of all types (Only for Dump, Info and ExportRaw modes) ``` diff --git a/AssetStudioFBXWrapper/AssetStudioFBXWrapper.csproj b/AssetStudioFBXWrapper/AssetStudioFBXWrapper.csproj index d3a2a02..496249e 100644 --- a/AssetStudioFBXWrapper/AssetStudioFBXWrapper.csproj +++ b/AssetStudioFBXWrapper/AssetStudioFBXWrapper.csproj @@ -3,7 +3,7 @@ net472;net8.0;net8.0-windows;net9.0;net9.0-windows true - 0.18.0.0 + 0.19.0.0 Copyright © Perfare 2018-2022; Copyright © hozuki 2020 embedded diff --git a/AssetStudioGUI/AboutForm.Designer.cs b/AssetStudioGUI/AboutForm.Designer.cs index f1c9cbe..12afc64 100644 --- a/AssetStudioGUI/AboutForm.Designer.cs +++ b/AssetStudioGUI/AboutForm.Designer.cs @@ -165,7 +165,7 @@ this.tableLayoutPanel2.ColumnCount = 3; this.tableLayoutPanel2.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 41.37931F)); this.tableLayoutPanel2.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 58.62069F)); - this.tableLayoutPanel2.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Absolute, 113F)); + this.tableLayoutPanel2.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Absolute, 114F)); this.tableLayoutPanel2.Controls.Add(this.label16, 0, 0); this.tableLayoutPanel2.Controls.Add(this.label17, 1, 0); this.tableLayoutPanel2.Controls.Add(this.gitPerfareLinkLabel, 2, 0); @@ -232,7 +232,7 @@ this.label19.Name = "label19"; this.label19.Size = new System.Drawing.Size(113, 13); this.label19.TabIndex = 13; - this.label19.Text = "aelurum (c) 2021-2024"; + this.label19.Text = "aelurum (c) 2021-2025"; // // gitAelurumLinkLabel // @@ -253,7 +253,7 @@ this.tableLayoutPanel1.ColumnCount = 3; this.tableLayoutPanel1.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 41.37931F)); this.tableLayoutPanel1.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 58.62069F)); - this.tableLayoutPanel1.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Absolute, 113F)); + this.tableLayoutPanel1.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Absolute, 114F)); this.tableLayoutPanel1.Controls.Add(this.label5, 0, 0); this.tableLayoutPanel1.Controls.Add(this.productNamelabel, 1, 0); this.tableLayoutPanel1.Controls.Add(this.label7, 0, 1); diff --git a/AssetStudioGUI/AssetStudioGUI.csproj b/AssetStudioGUI/AssetStudioGUI.csproj index f59d08c..258da4b 100644 --- a/AssetStudioGUI/AssetStudioGUI.csproj +++ b/AssetStudioGUI/AssetStudioGUI.csproj @@ -7,8 +7,8 @@ Resources\as.ico AssetStudioMod by aelurum AssetStudioModGUI - 0.18.0.0 - Copyright © Perfare 2018-2022; Copyright © aelurum 2021-2024 + 0.19.0.0 + Copyright © Perfare 2018-2022; Copyright © aelurum 2021-2025 embedded @@ -54,14 +54,14 @@ - - + + - - + + Libraries\OpenTK.WinForms.dll diff --git a/AssetStudioGUI/AssetStudioGUIForm.cs b/AssetStudioGUI/AssetStudioGUIForm.cs index 071e22c..17c8b5c 100644 --- a/AssetStudioGUI/AssetStudioGUIForm.cs +++ b/AssetStudioGUI/AssetStudioGUIForm.cs @@ -3110,7 +3110,11 @@ namespace AssetStudioGUI GL.UniformMatrix4(uniformModelMatrix, false, ref modelMatrixData); GL.UniformMatrix4(uniformViewMatrix, false, ref viewMatrixData); GL.UniformMatrix4(uniformProjMatrix, false, ref projMatrixData); +#if NETFRAMEWORK GL.PolygonMode(MaterialFace.FrontAndBack, PolygonMode.Fill); +#else + GL.PolygonMode(TriangleFace.FrontAndBack, PolygonMode.Fill); +#endif GL.DrawElements(BeginMode.Triangles, indiceData.Length, DrawElementsType.UnsignedInt, 0); } //Wireframe @@ -3122,7 +3126,11 @@ namespace AssetStudioGUI GL.UniformMatrix4(uniformModelMatrix, false, ref modelMatrixData); GL.UniformMatrix4(uniformViewMatrix, false, ref viewMatrixData); GL.UniformMatrix4(uniformProjMatrix, false, ref projMatrixData); +#if NETFRAMEWORK GL.PolygonMode(MaterialFace.FrontAndBack, PolygonMode.Line); +#else + GL.PolygonMode(TriangleFace.FrontAndBack, PolygonMode.Line); +#endif GL.DrawElements(BeginMode.Triangles, indiceData.Length, DrawElementsType.UnsignedInt, 0); GL.Disable(EnableCap.PolygonOffsetLine); } diff --git a/AssetStudioUtility/AssetStudioUtility.csproj b/AssetStudioUtility/AssetStudioUtility.csproj index 386ee59..c56d460 100644 --- a/AssetStudioUtility/AssetStudioUtility.csproj +++ b/AssetStudioUtility/AssetStudioUtility.csproj @@ -2,8 +2,8 @@ net472;net8.0;net8.0-windows;net9.0;net9.0-windows - 0.18.0.0 - Copyright © Perfare 2018-2022; Copyright © aelurum 2023-2024 + 0.19.0.0 + Copyright © Perfare 2018-2022; Copyright © aelurum 2021-2025 embedded @@ -22,7 +22,7 @@ 0.17.0 - + diff --git a/AssetStudioUtility/Unity.SerializationLogic/UnityEngineTypePredicates.cs b/AssetStudioUtility/Unity.SerializationLogic/UnityEngineTypePredicates.cs index 73e39ee..762226f 100644 --- a/AssetStudioUtility/Unity.SerializationLogic/UnityEngineTypePredicates.cs +++ b/AssetStudioUtility/Unity.SerializationLogic/UnityEngineTypePredicates.cs @@ -26,6 +26,7 @@ namespace Unity.SerializationLogic "BoundsInt", "Vector3Int", "Vector2Int", + "RenderingLayerMask", }; private const string Gradient = "UnityEngine.Gradient"; diff --git a/CHANGELOG.md b/CHANGELOG.md index 410d2ac..239ef24 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,83 @@ # Changelog +## v0.19.0.0 [04-09-2025] +#### Breaking Changes +- Many asset fields of array type have been replaced with list type *(aka fixed the cause of most memory leaks)* ([35b2499](https://github.com/aelurum/AssetStudio/commit/35b24990c6a5d99c15b661578cf9da26aefe8d1b)) + +#### New features +- Added Unity 6 support +- Added support for Tuanjie 1.0 - 1.6 (partial) + - Support for some Tuanjie-specific features, such as web streaming of texture data/virtual geometry meshes/acl clips, is not implemented yet +- Added multiBundle support (a single file with multiple asset bundles inside) + - *Which also includes support for fake headers* +- Added options to control exported UV types + - [GUI] Added option for manual binding of UV map types + - [CLI] Added flag to export all UVs as diffuse maps +- [GUI] Added Dark mode support for .NET 9 (wip) (https://github.com/aelurum/AssetStudio/issues/9) +- [GUI] Added option to use lazy loading for `Mesh` assets +- [GUI] Added option to use tree view in the Dump tab +- [GUI] Added option to autoplay `AudioClip` assets +- [CLI] Added mode to export `Animator` assets + - Added option to choose animation export mode (`--fbx-animation`) +- [CLI] Added mode to Extract/Decompress asset bundles (https://github.com/aelurum/AssetStudio/issues/62) +- [CLI] Added support for multiple input paths (separated by `,` or `;`) + +#### Fixes +- Fixed support for `Mesh` assets with omitted weight values (https://github.com/aelurum/AssetStudio/issues/21) +- Fixed audio preview for some fmod formats (https://github.com/aelurum/AssetStudio/issues/53) +- Fixed bundle blocks read failed with ArchiveFlags.BlocksInfoAtTheEnd (https://github.com/aelurum/AssetStudio/pull/44) +- Fixed a bug that caused audio preview volume to reset when selecting an asset +- Fixed support of `Sprite` assets from Unity < 5.2 +- Fixed support of `Sprite` assets with wrong `SpriteAtlas` pathID +- Fixed parsing of `AnimationClip` assets via typetree for Unity versions < 5 +- Fixed calculation of totalPointCount and totalSegmentCount in Live2D motions (https://github.com/Live2D/CubismNativeFramework/pull/57) +- [GUI] Fixed displayed info for non-fmod audio clips from Unity < 5 +- [CLI] Fixed `Mesh` export for some region formats (https://github.com/aelurum/AssetStudio/issues/38) + +#### Other Changes +- Replaced Newtonsoft.Json with System.Text.Json for asset typetree serialization/deserialization +- Disabled animation converting if animation export is disabled in the options +- Added support for assets/bundles with obfuscated Unity version +- Added support of loading `Material` assets using their typetree +- Added Oodle compression support (unofficial) +- Improved `Animator` export in cases where `MeshRenderer` is missing a `Mesh` reference (https://github.com/aelurum/AssetStudio/pull/40) +- Improved support for some older Unity versions (< 3.0) +- Improved support of zipped files +- Improved ExportRaw option: External data will also be added to exported assets +- Updated UnityCN encryption detection method +- Updated bundle reader + - Replaced creation of a duplicated file/memory stream with OffsetStream + - Added separate processing of uncompressed bundles (including streamed bundles). They will be read directly from disk + - Added progress report on LZMA decompression process +- Updated asset export logic + - Disabled saving files with a unique id if they already exist. A unique id will only be added to files with identical names during export + - Added option to overwrite existing files (`-r`, `--overwrite-existing` flag in CLI) + - Fixed support of multiple model export using "Export selected objects (split)" option (https://github.com/aelurum/AssetStudio/issues/43) +- Improved integration with Live2D assets + - Fixed Live2D model export for bundles with multiple models inside + - Added support of exporting Live2D poses (pose3.json) + - Added support of grouping exported models by model name + - Added container-independent method for searching `AnimationClip` assets + > *However, it's not really universal, so it cannot completely replace the container-dependent method* + - [GUI] Added ability to filter Live2D model assets using "Filter Type" + - [CLI] Added name filtering support for Live2D export mode +- FMOD updated to v2.03.06 + - Added native libs for linux-arm64, win-arm64 +- [GUI] AudioClip improvements: + - Increased loading speed of `AudioClip` preview + - Optimized memory consumption of `AudioClip` preview + - Fixed incorrect length detection for some sound types + - Added `AudioClip` loop point display (https://github.com/aelurum/AssetStudio/pull/37) + - Added channel count info (audio channels) +- [GUI] Reworked some import options + - Added feature to load and save import options to a file (*import options include Unity version*) + - Added option to always decompress bundles to disk (related issue: https://github.com/aelurum/AssetStudio/issues/58) +- [GUI] Added exact search option for Scene Hierarchy (https://github.com/aelurum/AssetStudio/issues/49) +- [CLI] Added flag to always decompress bundles to disk (`--decompress-to-disk`) +- [CLI] Added flag to allow filtering assets using regex (`--filter-with-regex`) (https://github.com/aelurum/AssetStudio/issues/45) +- [CLI] The `--avoid-typetree-loading` flag replaced with `--ignore-typetree` +- Made some other minor fixes and improvements + ## v0.18.0.0 [04-04-2024] #### Breaking Changes - Structure of the AnimationClip class has been changed a bit to match the structure of its type tree (`m_Clip = animationClip.m_MuscleClip.m_Clip` -> `m_Clip = animationClip.m_MuscleClip.m_Clip.data`) diff --git a/LICENSE b/LICENSE index cb25983..b95825b 100644 --- a/LICENSE +++ b/LICENSE @@ -2,7 +2,7 @@ MIT License Copyright (c) 2016 Radu Copyright (c) 2016-2022 Perfare -Copyright (c) 2021-2024 aelurum +Copyright (c) 2021-2025 aelurum Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/README.md b/README.md index 35706a6..2dabd6a 100644 --- a/README.md +++ b/README.md @@ -14,8 +14,8 @@ ## AssetStudio Features -- Support version: - - 3.4 - 2023.2 +- Support Unity version: + - 1.7 - 6000.2 - Support asset types: - **Texture2D**, **Texture2DArray** : convert to png, tga, jpeg, bmp, webp - **Sprite** : crop Texture2D to png, tga, jpeg, bmp, webp @@ -32,7 +32,6 @@ ## 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 @@ -48,12 +47,12 @@ - AssetStudioMod.net472 - GUI/CLI - [.NET Framework 4.7.2](https://dotnet.microsoft.com/download/dotnet-framework/net472) -- AssetStudioMod.net6 - - GUI/CLI (Windows) - [.NET Desktop Runtime 6.0](https://dotnet.microsoft.com/download/dotnet/6.0) - - CLI (Linux/Mac) - [.NET Runtime 6.0](https://dotnet.microsoft.com/download/dotnet/6.0) - AssetStudioMod.net8 - GUI/CLI (Windows) - [.NET Desktop Runtime 8.0](https://dotnet.microsoft.com/download/dotnet/8.0) - CLI (Linux/Mac) - [.NET Runtime 8.0](https://dotnet.microsoft.com/download/dotnet/8.0) +- AssetStudioMod.net9 + - GUI/CLI (Windows) - [.NET Desktop Runtime 9.0](https://dotnet.microsoft.com/download/dotnet/9.0) + - CLI (Linux/Mac) - [.NET Runtime 9.0](https://dotnet.microsoft.com/download/dotnet/9.0) ## CLI Usage @@ -97,14 +96,16 @@ AssetStudioModCLI -m dump -o ``` AssetStudioModCLI -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. +> When running in live2d mode, the only filter option supported is `--filter-by-name`. - Export all FBX objects (similar to "Export all objects (split)" option in the GUI) ``` AssetStudioModCLI -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. +> When running in splitObjects mode, the only filter option supported is `--filter-by-name`. +- Export Animator assets +``` +AssetStudioModCLI -m animator +``` ### Advanced Samples - Export image assets converted to webp format to a specified output folder @@ -202,3 +203,9 @@ First, use [Il2CppDumper](https://github.com/Perfare/Il2CppDumper) to generate d * [Ishotihadus/mikunyan](https://github.com/Ishotihadus/mikunyan) * [BinomialLLC/crunch](https://github.com/BinomialLLC/crunch) * [Unity-Technologies/crunch](https://github.com/Unity-Technologies/crunch/tree/unity) + +### LZMA compression +* [7-zip/sdk](https://www.7-zip.org/sdk.html) + +### Oodle compression +* [zao/ooz](https://github.com/zao/ooz) diff --git a/Texture2DDecoderWrapper/Texture2DDecoderWrapper.csproj b/Texture2DDecoderWrapper/Texture2DDecoderWrapper.csproj index 2afff6d..885066f 100644 --- a/Texture2DDecoderWrapper/Texture2DDecoderWrapper.csproj +++ b/Texture2DDecoderWrapper/Texture2DDecoderWrapper.csproj @@ -3,13 +3,13 @@ net472 true - 0.18.0.0 + 0.19.0.0 Copyright © Perfare 2020-2022; Copyright © hozuki 2020 embedded - +