diff --git a/AssetStudioCLI/Exporter.cs b/AssetStudioCLI/Exporter.cs index 90260b1e6..35b93c6a5 100644 --- a/AssetStudioCLI/Exporter.cs +++ b/AssetStudioCLI/Exporter.cs @@ -287,6 +287,7 @@ private static void ExportFbx(IImported convert, string exportPath) ScaleFactor = CLIOptions.o_fbxScaleFactor.Value, ExportAllUvsAsDiffuseMaps = CLIOptions.f_fbxUvsAsDiffuseMaps.Value, ExportAnimations = CLIOptions.o_fbxAnimMode.Value != AnimationExportMode.Skip, + FbxFormat = CLIOptions.f_fbxAsciiFormat.Value == true ? 1 : 0, }; ModelExporter.ExportFbx(exportPath, convert, fbxSettings); } diff --git a/AssetStudioCLI/Options/CLIOptions.cs b/AssetStudioCLI/Options/CLIOptions.cs index 37cd04451..d23d1f42a 100644 --- a/AssetStudioCLI/Options/CLIOptions.cs +++ b/AssetStudioCLI/Options/CLIOptions.cs @@ -112,6 +112,7 @@ internal static class CLIOptions public static Option o_fbxBoneSize; public static Option o_fbxAnimMode; public static Option f_fbxUvsAsDiffuseMaps; + public static Option f_fbxAsciiFormat; //filter public static Option> o_filterByName; public static Option> o_filterByContainer; @@ -407,7 +408,16 @@ private static void InitOptions() optionName: "--fbx-uvs-as-diffuse", optionDescription: "(Flag) If specified, Studio will export all UVs as Diffuse maps.\n" + "Сan be useful if you cannot find some UVs after exporting (e.g. in Blender)\n" + - "(But can also cause some bugs with UVs)", + "(But can also cause some bugs with UVs)\n", + optionExample: "", + optionHelpGroup: HelpGroups.FBX + ); + f_fbxAsciiFormat = new GroupedOption + ( + optionDefaultValue: false, + optionName: "--fbx-ascii-format", + optionDescription: "(Flag) If specified, Studio will export FBX in ASCII format.\n" + + "If not specified, Binary format will be used", optionExample: "", optionHelpGroup: HelpGroups.FBX ); @@ -679,6 +689,7 @@ public static void ParseArgs(string[] args) o_exportAssetTypes.Value = new List { ClassIDType.Animator, + ClassIDType.AnimationClip, ClassIDType.Mesh, ClassIDType.Texture2D, }; @@ -726,7 +737,7 @@ public static void ParseArgs(string[] args) flagIndexes.Add(i); break; case "--fbx-uvs-as-diffuse": - if (o_workMode.Value != WorkMode.SplitObjects) + if (o_workMode.Value != WorkMode.SplitObjects && o_workMode.Value != WorkMode.Animator) { Console.WriteLine($"{"Error".Color(brightRed)} during parsing [{flag.Color(brightYellow)}] flag. This flag is not suitable for the current working mode [{o_workMode.Value}].\n"); ShowOptionDescription(o_workMode); @@ -735,6 +746,10 @@ public static void ParseArgs(string[] args) f_fbxUvsAsDiffuseMaps.Value = true; flagIndexes.Add(i); break; + case "--fbx-ascii-format": + f_fbxAsciiFormat.Value = true; + flagIndexes.Add(i); + break; case "--filter-with-regex": f_filterWithRegex.Value = true; flagIndexes.Add(i); @@ -1481,6 +1496,7 @@ public static void ShowCurrentOptions() sb.AppendLine($"# FBX Bone Size: {o_fbxBoneSize}"); sb.AppendLine($"# FBX Animation Mode: {o_fbxAnimMode}"); sb.AppendLine($"# FBX UVs as Diffuse Maps: {f_fbxUvsAsDiffuseMaps}"); + sb.AppendLine($"# FBX Export in ASCII Format: {f_fbxAsciiFormat}"); break; } sb.AppendLine("======");