mirror of
https://github.com/aelurum/AssetStudio.git
synced 2025-11-12 23:32:42 -05:00
Update to v0.19 & update dependencies
This commit is contained in:
@ -3,7 +3,7 @@
|
||||
<PropertyGroup>
|
||||
<TargetFrameworks>net472;net8.0;net8.0-windows;net9.0;net9.0-windows</TargetFrameworks>
|
||||
<AllowUnsafeBlocks>true</AllowUnsafeBlocks>
|
||||
<Version>0.18.0.0</Version>
|
||||
<Version>0.19.0.0</Version>
|
||||
<Copyright>Copyright © Perfare 2020-2022; Copyright © hozuki 2020</Copyright>
|
||||
<DebugType>embedded</DebugType>
|
||||
</PropertyGroup>
|
||||
|
||||
@ -2,20 +2,20 @@
|
||||
|
||||
<PropertyGroup>
|
||||
<TargetFrameworks>net472;net8.0;net8.0-windows;net9.0;net9.0-windows</TargetFrameworks>
|
||||
<Version>0.18.0.0</Version>
|
||||
<Copyright>Copyright © Perfare 2018-2022; Copyright © aelurum 2023-2024</Copyright>
|
||||
<Version>0.19.0.0</Version>
|
||||
<Copyright>Copyright © Perfare 2018-2022; Copyright © aelurum 2021-2025</Copyright>
|
||||
<DebugType>embedded</DebugType>
|
||||
</PropertyGroup>
|
||||
|
||||
<ItemGroup>
|
||||
<PackageReference Include="ZstdSharp.Port" Version="0.8.1" />
|
||||
<PackageReference Include="ZstdSharp.Port" Version="0.8.6" />
|
||||
<PackageReference Include="K4os.Compression.LZ4" Version="1.3.8" />
|
||||
</ItemGroup>
|
||||
|
||||
<ItemGroup Condition=" '$(TargetFramework)' == 'net472' ">
|
||||
<PackageReference Include="System.IO.Compression" Version="4.3.0" />
|
||||
<PackageReference Include="System.Text.Json" Version="9.0.0" />
|
||||
<PackageReference Include="Microsoft.Bcl.Numerics" Version="9.0.1" />
|
||||
<PackageReference Include="System.Text.Json" Version="9.0.8" />
|
||||
<PackageReference Include="Microsoft.Bcl.Numerics" Version="9.0.8" />
|
||||
|
||||
<ProjectReference Include="..\AssetStudio.PInvoke\AssetStudio.PInvoke.csproj" />
|
||||
</ItemGroup>
|
||||
|
||||
@ -376,6 +376,7 @@ namespace AssetStudio
|
||||
SceneRoots = 1660057539,
|
||||
BrokenPrefabAsset = 1731078267,
|
||||
AndroidAssetPackImporter = 1736697216,
|
||||
VulkanDeviceFilterLists = 1740304944,
|
||||
GridLayout = 1742807556,
|
||||
AssemblyDefinitionImporter = 1766753193,
|
||||
ParentConstraint = 1773428102,
|
||||
|
||||
@ -5,8 +5,8 @@
|
||||
<TargetFrameworks>net472;net8.0;net9.0</TargetFrameworks>
|
||||
<AssemblyTitle>AssetStudioMod by aelurum</AssemblyTitle>
|
||||
<AssemblyName>AssetStudioModCLI</AssemblyName>
|
||||
<Version>0.18.0.0</Version>
|
||||
<Copyright>Copyright © Perfare; Copyright © aelurum 2023-2024</Copyright>
|
||||
<Version>0.19.0.0</Version>
|
||||
<Copyright>Copyright © Perfare; Copyright © aelurum 2023-2025</Copyright>
|
||||
<PlatformTarget>AnyCPU</PlatformTarget>
|
||||
<DebugType>embedded</DebugType>
|
||||
</PropertyGroup>
|
||||
|
||||
@ -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 <input path to asset file/folder> [-m, --mode <value>]
|
||||
AssetStudioModCLI <input path to asset file(s)/folder> [-m, --mode <value>]
|
||||
[-t, --asset-type <value(s)>] [-g, --group-option <value>]
|
||||
[-f, --filename-format <value>] [-o, --output <path>]
|
||||
[-h, --help] [--log-level <value>]
|
||||
[--log-output <value>] [--image-format <value>]
|
||||
[--audio-format <value>] [--l2d-motion-mode <value>]
|
||||
[--l2d-force-bezier] [--fbx-scale-factor <value>]
|
||||
[--fbx-bone-size <value>] [--filter-by-name <text>]
|
||||
[--filter-by-container <text>] [--filter-by-pathid <text>]
|
||||
[--filter-by-text <text>] [--custom-compression <value>]
|
||||
[--max-export-tasks <value>] [--export-asset-list <value>]
|
||||
[--assembly-folder <path>] [--unity-version <text>]
|
||||
[--not-restore-extension] [--avoid-typetree-loading]
|
||||
[-r, --overwrite-existing] [-h, --help]
|
||||
[--log-level <value>] [--log-output <value>]
|
||||
[--image-format <value>] [--audio-format <value>]
|
||||
[--l2d-group-option <value>] [--l2d-motion-mode <value>]
|
||||
[--l2d-search-by-filename] [--l2d-force-bezier]
|
||||
[--fbx-scale-factor <value>] [--fbx-bone-size <value>]
|
||||
[--fbx-animation] [--fbx-uvs-as-diffuse]
|
||||
[--filter-by-name <text>] [--filter-by-container <text>]
|
||||
[--filter-by-pathid <text>] [--filter-by-text <text>]
|
||||
[--filter-with-regex] [--blockinfo-comp <value>]
|
||||
[--block-comp <value>] [--max-export-tasks <value>]
|
||||
[--export-asset-list <value>] [--assembly-folder <path>]
|
||||
[--unity-version <text>] [--decompress-to-disk]
|
||||
[--not-restore-extension] [--ignore-typetree]
|
||||
[--load-all]
|
||||
|
||||
General Options:
|
||||
-m, --mode <value> Specify working mode
|
||||
<Value: export(default) | exportRaw | dump | info | live2d | splitObjects>
|
||||
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)
|
||||
<Value: extract | export(default) | exportRaw | dump | info | live2d |
|
||||
splitObjects | animator>
|
||||
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 <value(s)> Specify asset type(s) to export
|
||||
<Value(s): tex2d, tex2dArray, sprite, textAsset, monoBehaviour, font, shader
|
||||
movieTexture, audio, video, mesh | all(default)>
|
||||
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 <value> Specify the way in which exported assets should be grouped
|
||||
<Value: none | type | container(default) | containerFull | filename | sceneHierarchy>
|
||||
<Value: none | type | container(default) | containerFull | fileName | sceneHierarchy>
|
||||
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 <value> Specify the file name format for exported assets
|
||||
@ -58,6 +64,8 @@ General Options:
|
||||
-o, --output <path> 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 <value> Specify the format for converting FMOD audio assets
|
||||
<Value: none | wav(default)>
|
||||
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 <value> Specify the way in which exported models should be grouped
|
||||
<Value: container(default) | fileName | modelName>
|
||||
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 <value> Specify Live2D motion export mode
|
||||
<Value: monoBehaviour(default) | animationClip>
|
||||
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:
|
||||
<Value: integer number from 0 to 100 (default=10)>
|
||||
Example: "--fbx-bone-size 10"
|
||||
|
||||
--fbx-animation Specify the FBX animation export mode
|
||||
<Value: auto(default) | skip | all>
|
||||
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 <text> Specify the name by which assets should be filtered
|
||||
--filter-by-name <text> 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 <text> Specify the container by which assets should be filtered
|
||||
--filter-by-container <text> 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 <text> Specify the text by which assets should be filtered
|
||||
--filter-by-text <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 <value> Specify the compression type for assets that use custom compression
|
||||
<Value: zstd(default) | lz4>
|
||||
--blockinfo-comp <value> Specify the compression type of bundle's blockInfo data
|
||||
<Value: auto(default) | zstd | oodle | lz4 | lzma>
|
||||
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 <value> Specify the compression type of bundle's block data
|
||||
<Value: auto(default) | zstd | oodle | lz4 | lzma>
|
||||
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 <value> Specify the number of parallel tasks for asset export
|
||||
<Value: integer number from 1 to max number of cores (default=max)>
|
||||
@ -141,12 +186,15 @@ Advanced Options:
|
||||
--unity-version <text> 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)
|
||||
```
|
||||
|
||||
@ -3,7 +3,7 @@
|
||||
<PropertyGroup>
|
||||
<TargetFrameworks>net472;net8.0;net8.0-windows;net9.0;net9.0-windows</TargetFrameworks>
|
||||
<AllowUnsafeBlocks>true</AllowUnsafeBlocks>
|
||||
<Version>0.18.0.0</Version>
|
||||
<Version>0.19.0.0</Version>
|
||||
<Copyright>Copyright © Perfare 2018-2022; Copyright © hozuki 2020</Copyright>
|
||||
<DebugType>embedded</DebugType>
|
||||
</PropertyGroup>
|
||||
|
||||
6
AssetStudioGUI/AboutForm.Designer.cs
generated
6
AssetStudioGUI/AboutForm.Designer.cs
generated
@ -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);
|
||||
|
||||
@ -7,8 +7,8 @@
|
||||
<ApplicationIcon>Resources\as.ico</ApplicationIcon>
|
||||
<AssemblyTitle>AssetStudioMod by aelurum</AssemblyTitle>
|
||||
<AssemblyName>AssetStudioModGUI</AssemblyName>
|
||||
<Version>0.18.0.0</Version>
|
||||
<Copyright>Copyright © Perfare 2018-2022; Copyright © aelurum 2021-2024</Copyright>
|
||||
<Version>0.19.0.0</Version>
|
||||
<Copyright>Copyright © Perfare 2018-2022; Copyright © aelurum 2021-2025</Copyright>
|
||||
<DebugType>embedded</DebugType>
|
||||
</PropertyGroup>
|
||||
|
||||
@ -54,14 +54,14 @@
|
||||
</ItemGroup>
|
||||
|
||||
<ItemGroup>
|
||||
<PackageReference Include="Microsoft-WindowsAPICodePack-Core-6.0" Version="1.1.6" />
|
||||
<PackageReference Include="Microsoft-WindowsAPICodePack-Shell-6.0" Version="1.1.6" />
|
||||
<PackageReference Include="Microsoft-WindowsAPICodePack-Core-6.0" Version="1.1.7" />
|
||||
<PackageReference Include="Microsoft-WindowsAPICodePack-Shell-6.0" Version="1.1.7" />
|
||||
<PackageReference Include="Newtonsoft.Json" Version="13.0.3" />
|
||||
</ItemGroup>
|
||||
|
||||
<ItemGroup Condition=" '$(TargetFramework)' != 'net472' ">
|
||||
<PackageReference Include="OpenTK.Graphics" Version="4.8.2" />
|
||||
<PackageReference Include="OpenTK.Windowing.Desktop" Version="4.8.2" />
|
||||
<PackageReference Include="OpenTK.Graphics" Version="4.9.4" />
|
||||
<PackageReference Include="OpenTK.Windowing.Desktop" Version="4.9.4" />
|
||||
<Reference Include="OpenTK.WinForms">
|
||||
<HintPath>Libraries\OpenTK.WinForms.dll</HintPath>
|
||||
</Reference>
|
||||
|
||||
@ -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);
|
||||
}
|
||||
|
||||
@ -2,8 +2,8 @@
|
||||
|
||||
<PropertyGroup>
|
||||
<TargetFrameworks>net472;net8.0;net8.0-windows;net9.0;net9.0-windows</TargetFrameworks>
|
||||
<Version>0.18.0.0</Version>
|
||||
<Copyright>Copyright © Perfare 2018-2022; Copyright © aelurum 2023-2024</Copyright>
|
||||
<Version>0.19.0.0</Version>
|
||||
<Copyright>Copyright © Perfare 2018-2022; Copyright © aelurum 2021-2025</Copyright>
|
||||
<DebugType>embedded</DebugType>
|
||||
</PropertyGroup>
|
||||
|
||||
@ -22,7 +22,7 @@
|
||||
<PackageReference Include="Kyaru.Texture2DDecoder">
|
||||
<Version>0.17.0</Version>
|
||||
</PackageReference>
|
||||
<PackageReference Include="SixLabors.ImageSharp.Drawing" Version="2.1.4" />
|
||||
<PackageReference Include="SixLabors.ImageSharp.Drawing" Version="2.1.6" />
|
||||
</ItemGroup>
|
||||
|
||||
<ItemGroup Condition=" '$(TargetFramework)' == 'net472' ">
|
||||
|
||||
@ -26,6 +26,7 @@ namespace Unity.SerializationLogic
|
||||
"BoundsInt",
|
||||
"Vector3Int",
|
||||
"Vector2Int",
|
||||
"RenderingLayerMask",
|
||||
};
|
||||
|
||||
private const string Gradient = "UnityEngine.Gradient";
|
||||
|
||||
78
CHANGELOG.md
78
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`)
|
||||
|
||||
2
LICENSE
2
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
|
||||
|
||||
27
README.md
27
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 <asset folder path> -m dump -o <output folder path>
|
||||
```
|
||||
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.
|
||||
> 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 <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.
|
||||
> When running in splitObjects mode, the only filter option supported is `--filter-by-name`.
|
||||
- Export Animator assets
|
||||
```
|
||||
AssetStudioModCLI <asset folder path> -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)
|
||||
|
||||
@ -3,13 +3,13 @@
|
||||
<PropertyGroup>
|
||||
<TargetFramework>net472</TargetFramework>
|
||||
<AllowUnsafeBlocks>true</AllowUnsafeBlocks>
|
||||
<Version>0.18.0.0</Version>
|
||||
<Version>0.19.0.0</Version>
|
||||
<Copyright>Copyright © Perfare 2020-2022; Copyright © hozuki 2020</Copyright>
|
||||
<DebugType>embedded</DebugType>
|
||||
</PropertyGroup>
|
||||
|
||||
<ItemGroup Condition=" '$(TargetFramework)' == 'net472' ">
|
||||
<PackageReference Include="System.Memory" Version="4.5.5" />
|
||||
<PackageReference Include="System.Memory" Version="4.6.3" />
|
||||
</ItemGroup>
|
||||
|
||||
<ItemGroup>
|
||||
|
||||
Reference in New Issue
Block a user