UI improvements

This commit is contained in:
Perfare 2018-04-18 07:11:10 +08:00
parent 592bfb64e7
commit ed569bfaf8
9 changed files with 170 additions and 213 deletions

View File

@ -49,6 +49,9 @@
this.exportallobjectsMenuItem = new System.Windows.Forms.ToolStripMenuItem(); this.exportallobjectsMenuItem = new System.Windows.Forms.ToolStripMenuItem();
this.exportallobjectssplitToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); this.exportallobjectssplitToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
this.exportselectedobjectsMenuItem = new System.Windows.Forms.ToolStripMenuItem(); this.exportselectedobjectsMenuItem = new System.Windows.Forms.ToolStripMenuItem();
this.toolStripSeparator1 = new System.Windows.Forms.ToolStripSeparator();
this.exportSelectedObjectsToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
this.exportSelectedObjectsWithAnimationClipToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
this.exportToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); this.exportToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
this.exportAllAssetsMenuItem = new System.Windows.Forms.ToolStripMenuItem(); this.exportAllAssetsMenuItem = new System.Windows.Forms.ToolStripMenuItem();
this.exportSelectedAssetsMenuItem = new System.Windows.Forms.ToolStripMenuItem(); this.exportSelectedAssetsMenuItem = new System.Windows.Forms.ToolStripMenuItem();
@ -105,9 +108,11 @@
this.treeTip = new System.Windows.Forms.ToolTip(this.components); this.treeTip = new System.Windows.Forms.ToolTip(this.components);
this.contextMenuStrip1 = new System.Windows.Forms.ContextMenuStrip(this.components); this.contextMenuStrip1 = new System.Windows.Forms.ContextMenuStrip(this.components);
this.exportSelectedAssetsToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); this.exportSelectedAssetsToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
this.exportAnimatorwithAnimationClipMenuItem = new System.Windows.Forms.ToolStripMenuItem(); this.exportAnimatorwithselectedAnimationClipMenuItem = new System.Windows.Forms.ToolStripMenuItem();
this.exportObjectswithAnimationClipMenuItem = new System.Windows.Forms.ToolStripMenuItem(); this.exportobjectswithselectedAnimationClipMenuItem = new System.Windows.Forms.ToolStripMenuItem();
this.showOriginalFileToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); this.showOriginalFileToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
this.toolStripSeparator3 = new System.Windows.Forms.ToolStripSeparator();
this.exportAnimatorWithSelectedAnimationClipToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
this.menuStrip1.SuspendLayout(); this.menuStrip1.SuspendLayout();
((System.ComponentModel.ISupportInitialize)(this.splitContainer1)).BeginInit(); ((System.ComponentModel.ISupportInitialize)(this.splitContainer1)).BeginInit();
this.splitContainer1.Panel1.SuspendLayout(); this.splitContainer1.Panel1.SuspendLayout();
@ -276,7 +281,10 @@
this.modelToolStripMenuItem.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] { this.modelToolStripMenuItem.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] {
this.exportallobjectsMenuItem, this.exportallobjectsMenuItem,
this.exportallobjectssplitToolStripMenuItem, this.exportallobjectssplitToolStripMenuItem,
this.exportselectedobjectsMenuItem}); this.exportselectedobjectsMenuItem,
this.toolStripSeparator1,
this.exportSelectedObjectsToolStripMenuItem,
this.exportSelectedObjectsWithAnimationClipToolStripMenuItem});
this.modelToolStripMenuItem.Name = "modelToolStripMenuItem"; this.modelToolStripMenuItem.Name = "modelToolStripMenuItem";
this.modelToolStripMenuItem.Size = new System.Drawing.Size(58, 21); this.modelToolStripMenuItem.Size = new System.Drawing.Size(58, 21);
this.modelToolStripMenuItem.Text = "Model"; this.modelToolStripMenuItem.Text = "Model";
@ -284,53 +292,73 @@
// exportallobjectsMenuItem // exportallobjectsMenuItem
// //
this.exportallobjectsMenuItem.Name = "exportallobjectsMenuItem"; this.exportallobjectsMenuItem.Name = "exportallobjectsMenuItem";
this.exportallobjectsMenuItem.Size = new System.Drawing.Size(213, 22); this.exportallobjectsMenuItem.Size = new System.Drawing.Size(323, 22);
this.exportallobjectsMenuItem.Text = "Export all objects"; this.exportallobjectsMenuItem.Text = "Export all objects";
this.exportallobjectsMenuItem.Click += new System.EventHandler(this.ExportObjects_Click); this.exportallobjectsMenuItem.Click += new System.EventHandler(this.ExportObjects_Click);
// //
// exportallobjectssplitToolStripMenuItem // exportallobjectssplitToolStripMenuItem
// //
this.exportallobjectssplitToolStripMenuItem.Name = "exportallobjectssplitToolStripMenuItem"; this.exportallobjectssplitToolStripMenuItem.Name = "exportallobjectssplitToolStripMenuItem";
this.exportallobjectssplitToolStripMenuItem.Size = new System.Drawing.Size(213, 22); this.exportallobjectssplitToolStripMenuItem.Size = new System.Drawing.Size(323, 22);
this.exportallobjectssplitToolStripMenuItem.Text = "Export all objects (split)"; this.exportallobjectssplitToolStripMenuItem.Text = "Export all objects (split)";
this.exportallobjectssplitToolStripMenuItem.Click += new System.EventHandler(this.exportallobjectssplitToolStripMenuItem_Click); this.exportallobjectssplitToolStripMenuItem.Click += new System.EventHandler(this.exportallobjectssplitToolStripMenuItem_Click);
// //
// exportselectedobjectsMenuItem // exportselectedobjectsMenuItem
// //
this.exportselectedobjectsMenuItem.Name = "exportselectedobjectsMenuItem"; this.exportselectedobjectsMenuItem.Name = "exportselectedobjectsMenuItem";
this.exportselectedobjectsMenuItem.Size = new System.Drawing.Size(213, 22); this.exportselectedobjectsMenuItem.Size = new System.Drawing.Size(323, 22);
this.exportselectedobjectsMenuItem.Text = "Export selected objects"; this.exportselectedobjectsMenuItem.Text = "Export selected objects";
this.exportselectedobjectsMenuItem.Click += new System.EventHandler(this.ExportObjects_Click); this.exportselectedobjectsMenuItem.Click += new System.EventHandler(this.ExportObjects_Click);
// //
// toolStripSeparator1
//
this.toolStripSeparator1.Name = "toolStripSeparator1";
this.toolStripSeparator1.Size = new System.Drawing.Size(320, 6);
//
// exportSelectedObjectsToolStripMenuItem
//
this.exportSelectedObjectsToolStripMenuItem.Name = "exportSelectedObjectsToolStripMenuItem";
this.exportSelectedObjectsToolStripMenuItem.Size = new System.Drawing.Size(323, 22);
this.exportSelectedObjectsToolStripMenuItem.Text = "Export selected objects";
this.exportSelectedObjectsToolStripMenuItem.Click += new System.EventHandler(this.exportSelectedObjectsToolStripMenuItem_Click);
//
// exportSelectedObjectsWithAnimationClipToolStripMenuItem
//
this.exportSelectedObjectsWithAnimationClipToolStripMenuItem.Name = "exportSelectedObjectsWithAnimationClipToolStripMenuItem";
this.exportSelectedObjectsWithAnimationClipToolStripMenuItem.Size = new System.Drawing.Size(323, 22);
this.exportSelectedObjectsWithAnimationClipToolStripMenuItem.Text = "Export selected objects with AnimationClip";
this.exportSelectedObjectsWithAnimationClipToolStripMenuItem.Click += new System.EventHandler(this.exportObjectswithAnimationClipMenuItem_Click);
//
// exportToolStripMenuItem // exportToolStripMenuItem
// //
this.exportToolStripMenuItem.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] { this.exportToolStripMenuItem.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] {
this.exportAllAssetsMenuItem, this.exportAllAssetsMenuItem,
this.exportSelectedAssetsMenuItem, this.exportSelectedAssetsMenuItem,
this.exportFilteredAssetsMenuItem}); this.exportFilteredAssetsMenuItem,
this.toolStripSeparator3,
this.exportAnimatorWithSelectedAnimationClipToolStripMenuItem});
this.exportToolStripMenuItem.Name = "exportToolStripMenuItem"; this.exportToolStripMenuItem.Name = "exportToolStripMenuItem";
this.exportToolStripMenuItem.Size = new System.Drawing.Size(58, 21); this.exportToolStripMenuItem.Size = new System.Drawing.Size(58, 21);
this.exportToolStripMenuItem.Text = "Export"; this.exportToolStripMenuItem.Text = "Export";
this.exportToolStripMenuItem.Visible = false;
// //
// exportAllAssetsMenuItem // exportAllAssetsMenuItem
// //
this.exportAllAssetsMenuItem.Name = "exportAllAssetsMenuItem"; this.exportAllAssetsMenuItem.Name = "exportAllAssetsMenuItem";
this.exportAllAssetsMenuItem.Size = new System.Drawing.Size(165, 22); this.exportAllAssetsMenuItem.Size = new System.Drawing.Size(334, 22);
this.exportAllAssetsMenuItem.Text = "All assets"; this.exportAllAssetsMenuItem.Text = "All assets";
this.exportAllAssetsMenuItem.Click += new System.EventHandler(this.ExportAssets_Click); this.exportAllAssetsMenuItem.Click += new System.EventHandler(this.ExportAssets_Click);
// //
// exportSelectedAssetsMenuItem // exportSelectedAssetsMenuItem
// //
this.exportSelectedAssetsMenuItem.Name = "exportSelectedAssetsMenuItem"; this.exportSelectedAssetsMenuItem.Name = "exportSelectedAssetsMenuItem";
this.exportSelectedAssetsMenuItem.Size = new System.Drawing.Size(165, 22); this.exportSelectedAssetsMenuItem.Size = new System.Drawing.Size(334, 22);
this.exportSelectedAssetsMenuItem.Text = "Selected assets"; this.exportSelectedAssetsMenuItem.Text = "Selected assets";
this.exportSelectedAssetsMenuItem.Click += new System.EventHandler(this.ExportAssets_Click); this.exportSelectedAssetsMenuItem.Click += new System.EventHandler(this.ExportAssets_Click);
// //
// exportFilteredAssetsMenuItem // exportFilteredAssetsMenuItem
// //
this.exportFilteredAssetsMenuItem.Name = "exportFilteredAssetsMenuItem"; this.exportFilteredAssetsMenuItem.Name = "exportFilteredAssetsMenuItem";
this.exportFilteredAssetsMenuItem.Size = new System.Drawing.Size(165, 22); this.exportFilteredAssetsMenuItem.Size = new System.Drawing.Size(334, 22);
this.exportFilteredAssetsMenuItem.Text = "Filtered assets"; this.exportFilteredAssetsMenuItem.Text = "Filtered assets";
this.exportFilteredAssetsMenuItem.Click += new System.EventHandler(this.ExportAssets_Click); this.exportFilteredAssetsMenuItem.Click += new System.EventHandler(this.ExportAssets_Click);
// //
@ -349,7 +377,7 @@
this.allToolStripMenuItem.CheckOnClick = true; this.allToolStripMenuItem.CheckOnClick = true;
this.allToolStripMenuItem.CheckState = System.Windows.Forms.CheckState.Checked; this.allToolStripMenuItem.CheckState = System.Windows.Forms.CheckState.Checked;
this.allToolStripMenuItem.Name = "allToolStripMenuItem"; this.allToolStripMenuItem.Name = "allToolStripMenuItem";
this.allToolStripMenuItem.Size = new System.Drawing.Size(180, 22); this.allToolStripMenuItem.Size = new System.Drawing.Size(90, 22);
this.allToolStripMenuItem.Text = "All"; this.allToolStripMenuItem.Text = "All";
this.allToolStripMenuItem.Click += new System.EventHandler(this.typeToolStripMenuItem_Click); this.allToolStripMenuItem.Click += new System.EventHandler(this.typeToolStripMenuItem_Click);
// //
@ -607,7 +635,7 @@
// //
this.FMODcopyright.AutoSize = true; this.FMODcopyright.AutoSize = true;
this.FMODcopyright.ForeColor = System.Drawing.SystemColors.ControlLight; this.FMODcopyright.ForeColor = System.Drawing.SystemColors.ControlLight;
this.FMODcopyright.Location = new System.Drawing.Point(249, 351); this.FMODcopyright.Location = new System.Drawing.Point(250, 352);
this.FMODcopyright.Name = "FMODcopyright"; this.FMODcopyright.Name = "FMODcopyright";
this.FMODcopyright.Size = new System.Drawing.Size(341, 12); this.FMODcopyright.Size = new System.Drawing.Size(341, 12);
this.FMODcopyright.TabIndex = 9; this.FMODcopyright.TabIndex = 9;
@ -852,43 +880,55 @@
this.contextMenuStrip1.ImageScalingSize = new System.Drawing.Size(20, 20); this.contextMenuStrip1.ImageScalingSize = new System.Drawing.Size(20, 20);
this.contextMenuStrip1.Items.AddRange(new System.Windows.Forms.ToolStripItem[] { this.contextMenuStrip1.Items.AddRange(new System.Windows.Forms.ToolStripItem[] {
this.exportSelectedAssetsToolStripMenuItem, this.exportSelectedAssetsToolStripMenuItem,
this.exportAnimatorwithAnimationClipMenuItem, this.exportAnimatorwithselectedAnimationClipMenuItem,
this.exportObjectswithAnimationClipMenuItem, this.exportobjectswithselectedAnimationClipMenuItem,
this.showOriginalFileToolStripMenuItem}); this.showOriginalFileToolStripMenuItem});
this.contextMenuStrip1.Name = "contextMenuStrip1"; this.contextMenuStrip1.Name = "contextMenuStrip1";
this.contextMenuStrip1.Size = new System.Drawing.Size(283, 92); this.contextMenuStrip1.Size = new System.Drawing.Size(335, 92);
// //
// exportSelectedAssetsToolStripMenuItem // exportSelectedAssetsToolStripMenuItem
// //
this.exportSelectedAssetsToolStripMenuItem.Name = "exportSelectedAssetsToolStripMenuItem"; this.exportSelectedAssetsToolStripMenuItem.Name = "exportSelectedAssetsToolStripMenuItem";
this.exportSelectedAssetsToolStripMenuItem.Size = new System.Drawing.Size(282, 22); this.exportSelectedAssetsToolStripMenuItem.Size = new System.Drawing.Size(334, 22);
this.exportSelectedAssetsToolStripMenuItem.Text = "Export selected assets"; this.exportSelectedAssetsToolStripMenuItem.Text = "Export selected assets";
this.exportSelectedAssetsToolStripMenuItem.Click += new System.EventHandler(this.exportSelectedAssetsToolStripMenuItem_Click); this.exportSelectedAssetsToolStripMenuItem.Click += new System.EventHandler(this.exportSelectedAssetsToolStripMenuItem_Click);
// //
// exportAnimatorwithAnimationClipMenuItem // exportAnimatorwithselectedAnimationClipMenuItem
// //
this.exportAnimatorwithAnimationClipMenuItem.Name = "exportAnimatorwithAnimationClipMenuItem"; this.exportAnimatorwithselectedAnimationClipMenuItem.Name = "exportAnimatorwithselectedAnimationClipMenuItem";
this.exportAnimatorwithAnimationClipMenuItem.Size = new System.Drawing.Size(282, 22); this.exportAnimatorwithselectedAnimationClipMenuItem.Size = new System.Drawing.Size(334, 22);
this.exportAnimatorwithAnimationClipMenuItem.Text = "Export Animator with AnimationClip"; this.exportAnimatorwithselectedAnimationClipMenuItem.Text = "Export Animator with selected AnimationClip";
this.exportAnimatorwithAnimationClipMenuItem.Visible = false; this.exportAnimatorwithselectedAnimationClipMenuItem.Visible = false;
this.exportAnimatorwithAnimationClipMenuItem.Click += new System.EventHandler(this.exportAnimatorwithAnimationClipMenuItem_Click); this.exportAnimatorwithselectedAnimationClipMenuItem.Click += new System.EventHandler(this.exportAnimatorwithAnimationClipMenuItem_Click);
// //
// exportObjectswithAnimationClipMenuItem // exportobjectswithselectedAnimationClipMenuItem
// //
this.exportObjectswithAnimationClipMenuItem.Name = "exportObjectswithAnimationClipMenuItem"; this.exportobjectswithselectedAnimationClipMenuItem.Name = "exportobjectswithselectedAnimationClipMenuItem";
this.exportObjectswithAnimationClipMenuItem.Size = new System.Drawing.Size(282, 22); this.exportobjectswithselectedAnimationClipMenuItem.Size = new System.Drawing.Size(334, 22);
this.exportObjectswithAnimationClipMenuItem.Text = "Export Objects with AnimationClip"; this.exportobjectswithselectedAnimationClipMenuItem.Text = "Export objects with selected AnimationClip";
this.exportObjectswithAnimationClipMenuItem.Visible = false; this.exportobjectswithselectedAnimationClipMenuItem.Visible = false;
this.exportObjectswithAnimationClipMenuItem.Click += new System.EventHandler(this.exportObjectswithAnimationClipMenuItem_Click); this.exportobjectswithselectedAnimationClipMenuItem.Click += new System.EventHandler(this.exportObjectswithAnimationClipMenuItem_Click);
// //
// showOriginalFileToolStripMenuItem // showOriginalFileToolStripMenuItem
// //
this.showOriginalFileToolStripMenuItem.Name = "showOriginalFileToolStripMenuItem"; this.showOriginalFileToolStripMenuItem.Name = "showOriginalFileToolStripMenuItem";
this.showOriginalFileToolStripMenuItem.Size = new System.Drawing.Size(282, 22); this.showOriginalFileToolStripMenuItem.Size = new System.Drawing.Size(334, 22);
this.showOriginalFileToolStripMenuItem.Text = "Show original file"; this.showOriginalFileToolStripMenuItem.Text = "Show original file";
this.showOriginalFileToolStripMenuItem.Visible = false; this.showOriginalFileToolStripMenuItem.Visible = false;
this.showOriginalFileToolStripMenuItem.Click += new System.EventHandler(this.showOriginalFileToolStripMenuItem_Click); this.showOriginalFileToolStripMenuItem.Click += new System.EventHandler(this.showOriginalFileToolStripMenuItem_Click);
// //
// toolStripSeparator3
//
this.toolStripSeparator3.Name = "toolStripSeparator3";
this.toolStripSeparator3.Size = new System.Drawing.Size(331, 6);
//
// exportAnimatorWithSelectedAnimationClipToolStripMenuItem
//
this.exportAnimatorWithSelectedAnimationClipToolStripMenuItem.Name = "exportAnimatorWithSelectedAnimationClipToolStripMenuItem";
this.exportAnimatorWithSelectedAnimationClipToolStripMenuItem.Size = new System.Drawing.Size(334, 22);
this.exportAnimatorWithSelectedAnimationClipToolStripMenuItem.Text = "Export Animator with selected AnimationClip";
this.exportAnimatorWithSelectedAnimationClipToolStripMenuItem.Click += new System.EventHandler(this.exportAnimatorwithAnimationClipMenuItem_Click);
//
// AssetStudioForm // AssetStudioForm
// //
this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 12F); this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 12F);
@ -1009,11 +1049,16 @@
private OpenTK.GLControl glControl1; private OpenTK.GLControl glControl1;
private System.Windows.Forms.ContextMenuStrip contextMenuStrip1; private System.Windows.Forms.ContextMenuStrip contextMenuStrip1;
private System.Windows.Forms.ToolStripMenuItem showOriginalFileToolStripMenuItem; private System.Windows.Forms.ToolStripMenuItem showOriginalFileToolStripMenuItem;
private System.Windows.Forms.ToolStripMenuItem exportAnimatorwithAnimationClipMenuItem; private System.Windows.Forms.ToolStripMenuItem exportAnimatorwithselectedAnimationClipMenuItem;
private System.Windows.Forms.ToolStripMenuItem exportObjectswithAnimationClipMenuItem; private System.Windows.Forms.ToolStripMenuItem exportobjectswithselectedAnimationClipMenuItem;
private System.Windows.Forms.ToolStripMenuItem exportSelectedAssetsToolStripMenuItem; private System.Windows.Forms.ToolStripMenuItem exportSelectedAssetsToolStripMenuItem;
private System.Windows.Forms.ToolStripMenuItem showTypeToolStripMenuItem; private System.Windows.Forms.ToolStripMenuItem showTypeToolStripMenuItem;
private System.Windows.Forms.ToolStripMenuItem allToolStripMenuItem; private System.Windows.Forms.ToolStripMenuItem allToolStripMenuItem;
private System.Windows.Forms.ToolStripSeparator toolStripSeparator1;
private System.Windows.Forms.ToolStripMenuItem exportSelectedObjectsToolStripMenuItem;
private System.Windows.Forms.ToolStripMenuItem exportSelectedObjectsWithAnimationClipToolStripMenuItem;
private System.Windows.Forms.ToolStripSeparator toolStripSeparator3;
private System.Windows.Forms.ToolStripMenuItem exportAnimatorWithSelectedAnimationClipToolStripMenuItem;
} }
} }

View File

@ -72,8 +72,6 @@ namespace AssetStudio
private PrivateFontCollection pfc = new PrivateFontCollection(); private PrivateFontCollection pfc = new PrivateFontCollection();
private List<AssetPreloadData> selectedAssets = new List<AssetPreloadData>();
[DllImport("gdi32.dll")] [DllImport("gdi32.dll")]
private static extern IntPtr AddFontMemResourceEx(IntPtr pbFont, uint cbFont, IntPtr pdv, [In] ref uint pcFonts); private static extern IntPtr AddFontMemResourceEx(IntPtr pbFont, uint cbFont, IntPtr pdv, [In] ref uint pcFonts);
@ -511,20 +509,14 @@ namespace AssetStudio
{ {
case 0: case 0:
treeSearch.Select(); treeSearch.Select();
modelToolStripMenuItem.Visible = true;
exportToolStripMenuItem.Visible = false;
break; break;
case 1: case 1:
modelToolStripMenuItem.Visible = false;
exportToolStripMenuItem.Visible = true;
resizeAssetListColumns(); //required because the ListView is not visible on app launch resizeAssetListColumns(); //required because the ListView is not visible on app launch
classPreviewPanel.Visible = false; classPreviewPanel.Visible = false;
previewPanel.Visible = true; previewPanel.Visible = true;
listSearch.Select(); listSearch.Select();
break; break;
case 2: case 2:
modelToolStripMenuItem.Visible = false;
exportToolStripMenuItem.Visible = false;
previewPanel.Visible = false; previewPanel.Visible = false;
classPreviewPanel.Visible = true; classPreviewPanel.Visible = true;
break; break;
@ -1058,12 +1050,12 @@ namespace AssetStudio
} }
case ClassIDReference.Animator: case ClassIDReference.Animator:
{ {
StatusStripUpdate("Can be exported as a FBX file."); StatusStripUpdate("Can be exported to FBX file.");
break; break;
} }
case ClassIDReference.AnimationClip: case ClassIDReference.AnimationClip:
{ {
StatusStripUpdate("Select AnimationClip with selecting Animator to export"); StatusStripUpdate("Can be exported with Animator or objects");
break; break;
} }
default: default:
@ -1357,13 +1349,6 @@ namespace AssetStudio
if (saveFolderDialog1.ShowDialog(this) == DialogResult.OK) if (saveFolderDialog1.ShowDialog(this) == DialogResult.OK)
{ {
var savePath = saveFolderDialog1.Folder + "\\"; var savePath = saveFolderDialog1.Folder + "\\";
if ((bool)Properties.Settings.Default["showExpOpt"])
{
var exportOpt = new ExportOptions();
exportOpt.ShowDialog();
}
progressBar1.Value = 0; progressBar1.Value = 0;
progressBar1.Maximum = sceneTreeView.Nodes.Count; progressBar1.Maximum = sceneTreeView.Nodes.Count;
@ -1387,12 +1372,6 @@ namespace AssetStudio
if (saveFileDialog1.ShowDialog() == DialogResult.OK) if (saveFileDialog1.ShowDialog() == DialogResult.OK)
{ {
if ((bool)Properties.Settings.Default["showExpOpt"])
{
var exportOpt = new ExportOptions();
exportOpt.ShowDialog();
}
var gameObjects = new List<GameObject>(); var gameObjects = new List<GameObject>();
foreach (var assetsFile in assetsfileList) foreach (var assetsFile in assetsfileList)
{ {
@ -1755,30 +1734,23 @@ namespace AssetStudio
if (e.Button == MouseButtons.Right && assetListView.SelectedIndices.Count > 0) if (e.Button == MouseButtons.Right && assetListView.SelectedIndices.Count > 0)
{ {
showOriginalFileToolStripMenuItem.Visible = false; showOriginalFileToolStripMenuItem.Visible = false;
exportAnimatorwithAnimationClipMenuItem.Visible = false; exportAnimatorwithselectedAnimationClipMenuItem.Visible = false;
exportObjectswithAnimationClipMenuItem.Visible = false; exportobjectswithselectedAnimationClipMenuItem.Visible = false;
if (assetListView.SelectedIndices.Count == 1) if (assetListView.SelectedIndices.Count == 1)
{ {
selectedAssets.Clear();
selectedAssets.Add((AssetPreloadData)assetListView.Items[assetListView.SelectedIndices[0]]);
showOriginalFileToolStripMenuItem.Visible = true; showOriginalFileToolStripMenuItem.Visible = true;
} }
if (assetListView.SelectedIndices.Count >= 1) if (assetListView.SelectedIndices.Count >= 1)
{ {
selectedAssets.Clear(); var selectedAssets = GetSelectedAssets();
foreach (int index in assetListView.SelectedIndices)
{
selectedAssets.Add((AssetPreloadData)assetListView.Items[index]);
}
if (selectedAssets.Any(x => x.Type == ClassIDReference.Animator) && selectedAssets.Any(x => x.Type == ClassIDReference.AnimationClip)) if (selectedAssets.Any(x => x.Type == ClassIDReference.Animator) && selectedAssets.Any(x => x.Type == ClassIDReference.AnimationClip))
{ {
exportAnimatorwithAnimationClipMenuItem.Visible = true; exportAnimatorwithselectedAnimationClipMenuItem.Visible = true;
} }
else if (selectedAssets.All(x => x.Type == ClassIDReference.AnimationClip)) else if (selectedAssets.All(x => x.Type == ClassIDReference.AnimationClip))
{ {
exportObjectswithAnimationClipMenuItem.Visible = true; exportobjectswithselectedAnimationClipMenuItem.Visible = true;
} }
} }
@ -1792,13 +1764,13 @@ namespace AssetStudio
if (saveFolderDialog1.ShowDialog(this) == DialogResult.OK) if (saveFolderDialog1.ShowDialog(this) == DialogResult.OK)
{ {
timer.Stop(); timer.Stop();
ExportAssets(saveFolderDialog1.Folder, selectedAssets, assetGroupOptions.SelectedIndex, openAfterExport.Checked); ExportAssets(saveFolderDialog1.Folder, GetSelectedAssets(), assetGroupOptions.SelectedIndex, openAfterExport.Checked);
} }
} }
private void showOriginalFileToolStripMenuItem_Click(object sender, EventArgs e) private void showOriginalFileToolStripMenuItem_Click(object sender, EventArgs e)
{ {
var selectasset = selectedAssets[0]; var selectasset = (AssetPreloadData)assetListView.Items[assetListView.SelectedIndices[0]];
var args = $"/select, {selectasset.sourceFile.parentPath ?? selectasset.sourceFile.filePath}"; var args = $"/select, {selectasset.sourceFile.parentPath ?? selectasset.sourceFile.filePath}";
var pfi = new ProcessStartInfo("explorer.exe", args); var pfi = new ProcessStartInfo("explorer.exe", args);
Process.Start(pfi); Process.Start(pfi);
@ -1808,6 +1780,7 @@ namespace AssetStudio
{ {
AssetPreloadData animator = null; AssetPreloadData animator = null;
List<AssetPreloadData> animationList = new List<AssetPreloadData>(); List<AssetPreloadData> animationList = new List<AssetPreloadData>();
var selectedAssets = GetSelectedAssets();
foreach (var assetPreloadData in selectedAssets) foreach (var assetPreloadData in selectedAssets)
{ {
if (assetPreloadData.Type == ClassIDReference.Animator) if (assetPreloadData.Type == ClassIDReference.Animator)
@ -1833,29 +1806,36 @@ namespace AssetStudio
} }
} }
private void exportObjectswithAnimationClipMenuItem_Click(object sender, EventArgs e) private void exportSelectedObjectsToolStripMenuItem_Click(object sender, EventArgs e)
{ {
var saveFolderDialog1 = new OpenFolderDialog(); var saveFolderDialog1 = new OpenFolderDialog();
if (saveFolderDialog1.ShowDialog(this) == DialogResult.OK) if (saveFolderDialog1.ShowDialog(this) == DialogResult.OK)
{ {
var exportPath = saveFolderDialog1.Folder + "\\GameObject\\"; var exportPath = saveFolderDialog1.Folder + "\\GameObject\\";
ThreadPool.QueueUserWorkItem(state => ForeachTreeNodes(sceneTreeView.Nodes, exportPath)); ThreadPool.QueueUserWorkItem(state => ForeachTreeNodes(sceneTreeView.Nodes, exportPath, o => { ExportObjectsWithAnimationClip(o, exportPath); }));
} }
} }
private void ForeachTreeNodes(TreeNodeCollection nodes, string exportPath) private void exportObjectswithAnimationClipMenuItem_Click(object sender, EventArgs e)
{ {
foreach (TreeNode i in nodes) var selectedAssets = GetSelectedAssets();
var saveFolderDialog1 = new OpenFolderDialog();
if (saveFolderDialog1.ShowDialog(this) == DialogResult.OK)
{ {
if (i.Checked) var exportPath = saveFolderDialog1.Folder + "\\GameObject\\";
{ ThreadPool.QueueUserWorkItem(state => ForeachTreeNodes(sceneTreeView.Nodes, exportPath, o => { ExportObjectsWithAnimationClip(o, exportPath, selectedAssets); }));
ExportObjectsWithAnimationClip((GameObject)i, selectedAssets, exportPath);
}
else
{
ForeachTreeNodes(i.Nodes, exportPath);
}
} }
} }
private List<AssetPreloadData> GetSelectedAssets()
{
var selectedAssets = new List<AssetPreloadData>();
foreach (int index in assetListView.SelectedIndices)
{
selectedAssets.Add((AssetPreloadData)assetListView.Items[index]);
}
return selectedAssets;
}
} }
} }

View File

@ -28,11 +28,8 @@
/// </summary> /// </summary>
private void InitializeComponent() private void InitializeComponent()
{ {
this.includeBox = new System.Windows.Forms.GroupBox(); this.FbxBox = new System.Windows.Forms.GroupBox();
this.convertDummies = new System.Windows.Forms.CheckBox(); this.convertDummies = new System.Windows.Forms.CheckBox();
this.embedBox = new System.Windows.Forms.CheckBox();
this.lightsBox = new System.Windows.Forms.CheckBox();
this.camerasBox = new System.Windows.Forms.CheckBox();
this.exportDeformers = new System.Windows.Forms.CheckBox(); this.exportDeformers = new System.Windows.Forms.CheckBox();
this.geometryBox = new System.Windows.Forms.GroupBox(); this.geometryBox = new System.Windows.Forms.GroupBox();
this.exportColors = new System.Windows.Forms.CheckBox(); this.exportColors = new System.Windows.Forms.CheckBox();
@ -46,7 +43,6 @@
this.scaleLabel = new System.Windows.Forms.Label(); this.scaleLabel = new System.Windows.Forms.Label();
this.fbxOKbutton = new System.Windows.Forms.Button(); this.fbxOKbutton = new System.Windows.Forms.Button();
this.fbxCancel = new System.Windows.Forms.Button(); this.fbxCancel = new System.Windows.Forms.Button();
this.showExpOpt = new System.Windows.Forms.CheckBox();
this.groupBox1 = new System.Windows.Forms.GroupBox(); this.groupBox1 = new System.Windows.Forms.GroupBox();
this.convertAudio = new System.Windows.Forms.CheckBox(); this.convertAudio = new System.Windows.Forms.CheckBox();
this.panel1 = new System.Windows.Forms.Panel(); this.panel1 = new System.Windows.Forms.Panel();
@ -65,7 +61,7 @@
this.allBones = new System.Windows.Forms.CheckBox(); this.allBones = new System.Windows.Forms.CheckBox();
this.allFrames = new System.Windows.Forms.CheckBox(); this.allFrames = new System.Windows.Forms.CheckBox();
this.EulerFilter = new System.Windows.Forms.CheckBox(); this.EulerFilter = new System.Windows.Forms.CheckBox();
this.includeBox.SuspendLayout(); this.FbxBox.SuspendLayout();
this.geometryBox.SuspendLayout(); this.geometryBox.SuspendLayout();
this.advancedBox.SuspendLayout(); this.advancedBox.SuspendLayout();
((System.ComponentModel.ISupportInitialize)(this.scaleFactor)).BeginInit(); ((System.ComponentModel.ISupportInitialize)(this.scaleFactor)).BeginInit();
@ -76,26 +72,24 @@
((System.ComponentModel.ISupportInitialize)(this.filterPrecision)).BeginInit(); ((System.ComponentModel.ISupportInitialize)(this.filterPrecision)).BeginInit();
this.SuspendLayout(); this.SuspendLayout();
// //
// includeBox // FbxBox
// //
this.includeBox.AutoSize = true; this.FbxBox.AutoSize = true;
this.includeBox.Controls.Add(this.convertDummies); this.FbxBox.Controls.Add(this.convertDummies);
this.includeBox.Controls.Add(this.embedBox); this.FbxBox.Controls.Add(this.exportDeformers);
this.includeBox.Controls.Add(this.lightsBox); this.FbxBox.Controls.Add(this.geometryBox);
this.includeBox.Controls.Add(this.camerasBox); this.FbxBox.Controls.Add(this.advancedBox);
this.includeBox.Controls.Add(this.exportDeformers); this.FbxBox.Location = new System.Drawing.Point(12, 12);
this.includeBox.Controls.Add(this.geometryBox); this.FbxBox.Name = "FbxBox";
this.includeBox.Location = new System.Drawing.Point(12, 12); this.FbxBox.Size = new System.Drawing.Size(247, 317);
this.includeBox.Name = "includeBox"; this.FbxBox.TabIndex = 0;
this.includeBox.Size = new System.Drawing.Size(249, 267); this.FbxBox.TabStop = false;
this.includeBox.TabIndex = 0; this.FbxBox.Text = "Fbx Ascii";
this.includeBox.TabStop = false;
this.includeBox.Text = "Include";
// //
// convertDummies // convertDummies
// //
this.convertDummies.AutoSize = true; this.convertDummies.AutoSize = true;
this.convertDummies.Location = new System.Drawing.Point(14, 164); this.convertDummies.Location = new System.Drawing.Point(6, 170);
this.convertDummies.Name = "convertDummies"; this.convertDummies.Name = "convertDummies";
this.convertDummies.Size = new System.Drawing.Size(228, 16); this.convertDummies.Size = new System.Drawing.Size(228, 16);
this.convertDummies.TabIndex = 5; this.convertDummies.TabIndex = 5;
@ -103,43 +97,10 @@
this.convertDummies.UseVisualStyleBackColor = true; this.convertDummies.UseVisualStyleBackColor = true;
this.convertDummies.CheckedChanged += new System.EventHandler(this.exportOpnions_CheckedChanged); this.convertDummies.CheckedChanged += new System.EventHandler(this.exportOpnions_CheckedChanged);
// //
// embedBox
//
this.embedBox.AutoSize = true;
this.embedBox.Enabled = false;
this.embedBox.Location = new System.Drawing.Point(14, 230);
this.embedBox.Name = "embedBox";
this.embedBox.Size = new System.Drawing.Size(90, 16);
this.embedBox.TabIndex = 4;
this.embedBox.Text = "Embed Media";
this.embedBox.UseVisualStyleBackColor = true;
//
// lightsBox
//
this.lightsBox.AutoSize = true;
this.lightsBox.Enabled = false;
this.lightsBox.Location = new System.Drawing.Point(14, 208);
this.lightsBox.Name = "lightsBox";
this.lightsBox.Size = new System.Drawing.Size(60, 16);
this.lightsBox.TabIndex = 3;
this.lightsBox.Text = "Lights";
this.lightsBox.UseVisualStyleBackColor = true;
//
// camerasBox
//
this.camerasBox.AutoSize = true;
this.camerasBox.Enabled = false;
this.camerasBox.Location = new System.Drawing.Point(14, 186);
this.camerasBox.Name = "camerasBox";
this.camerasBox.Size = new System.Drawing.Size(66, 16);
this.camerasBox.TabIndex = 2;
this.camerasBox.Text = "Cameras";
this.camerasBox.UseVisualStyleBackColor = true;
//
// exportDeformers // exportDeformers
// //
this.exportDeformers.AutoSize = true; this.exportDeformers.AutoSize = true;
this.exportDeformers.Location = new System.Drawing.Point(14, 142); this.exportDeformers.Location = new System.Drawing.Point(6, 148);
this.exportDeformers.Name = "exportDeformers"; this.exportDeformers.Name = "exportDeformers";
this.exportDeformers.Size = new System.Drawing.Size(108, 16); this.exportDeformers.Size = new System.Drawing.Size(108, 16);
this.exportDeformers.TabIndex = 1; this.exportDeformers.TabIndex = 1;
@ -154,7 +115,7 @@
this.geometryBox.Controls.Add(this.exportUVs); this.geometryBox.Controls.Add(this.exportUVs);
this.geometryBox.Controls.Add(this.exportTangents); this.geometryBox.Controls.Add(this.exportTangents);
this.geometryBox.Controls.Add(this.exportNormals); this.geometryBox.Controls.Add(this.exportNormals);
this.geometryBox.Location = new System.Drawing.Point(7, 18); this.geometryBox.Location = new System.Drawing.Point(6, 20);
this.geometryBox.Name = "geometryBox"; this.geometryBox.Name = "geometryBox";
this.geometryBox.Size = new System.Drawing.Size(235, 122); this.geometryBox.Size = new System.Drawing.Size(235, 122);
this.geometryBox.TabIndex = 0; this.geometryBox.TabIndex = 0;
@ -218,9 +179,9 @@
this.advancedBox.Controls.Add(this.upAxis); this.advancedBox.Controls.Add(this.upAxis);
this.advancedBox.Controls.Add(this.scaleFactor); this.advancedBox.Controls.Add(this.scaleFactor);
this.advancedBox.Controls.Add(this.scaleLabel); this.advancedBox.Controls.Add(this.scaleLabel);
this.advancedBox.Location = new System.Drawing.Point(12, 285); this.advancedBox.Location = new System.Drawing.Point(6, 192);
this.advancedBox.Name = "advancedBox"; this.advancedBox.Name = "advancedBox";
this.advancedBox.Size = new System.Drawing.Size(249, 78); this.advancedBox.Size = new System.Drawing.Size(235, 78);
this.advancedBox.TabIndex = 5; this.advancedBox.TabIndex = 5;
this.advancedBox.TabStop = false; this.advancedBox.TabStop = false;
this.advancedBox.Text = "Advanced Options"; this.advancedBox.Text = "Advanced Options";
@ -274,7 +235,7 @@
// //
// fbxOKbutton // fbxOKbutton
// //
this.fbxOKbutton.Location = new System.Drawing.Point(339, 369); this.fbxOKbutton.Location = new System.Drawing.Point(325, 335);
this.fbxOKbutton.Name = "fbxOKbutton"; this.fbxOKbutton.Name = "fbxOKbutton";
this.fbxOKbutton.Size = new System.Drawing.Size(75, 21); this.fbxOKbutton.Size = new System.Drawing.Size(75, 21);
this.fbxOKbutton.TabIndex = 6; this.fbxOKbutton.TabIndex = 6;
@ -285,7 +246,7 @@
// fbxCancel // fbxCancel
// //
this.fbxCancel.DialogResult = System.Windows.Forms.DialogResult.Cancel; this.fbxCancel.DialogResult = System.Windows.Forms.DialogResult.Cancel;
this.fbxCancel.Location = new System.Drawing.Point(420, 369); this.fbxCancel.Location = new System.Drawing.Point(406, 335);
this.fbxCancel.Name = "fbxCancel"; this.fbxCancel.Name = "fbxCancel";
this.fbxCancel.Size = new System.Drawing.Size(75, 21); this.fbxCancel.Size = new System.Drawing.Size(75, 21);
this.fbxCancel.TabIndex = 7; this.fbxCancel.TabIndex = 7;
@ -293,16 +254,6 @@
this.fbxCancel.UseVisualStyleBackColor = true; this.fbxCancel.UseVisualStyleBackColor = true;
this.fbxCancel.Click += new System.EventHandler(this.fbxCancel_Click); this.fbxCancel.Click += new System.EventHandler(this.fbxCancel_Click);
// //
// showExpOpt
//
this.showExpOpt.AutoSize = true;
this.showExpOpt.Location = new System.Drawing.Point(12, 372);
this.showExpOpt.Name = "showExpOpt";
this.showExpOpt.Size = new System.Drawing.Size(222, 16);
this.showExpOpt.TabIndex = 8;
this.showExpOpt.Text = "Show this dialog for every export";
this.showExpOpt.UseVisualStyleBackColor = true;
//
// groupBox1 // groupBox1
// //
this.groupBox1.Controls.Add(this.convertAudio); this.groupBox1.Controls.Add(this.convertAudio);
@ -310,7 +261,7 @@
this.groupBox1.Controls.Add(this.converttexture); this.groupBox1.Controls.Add(this.converttexture);
this.groupBox1.Location = new System.Drawing.Point(267, 12); this.groupBox1.Location = new System.Drawing.Point(267, 12);
this.groupBox1.Name = "groupBox1"; this.groupBox1.Name = "groupBox1";
this.groupBox1.Size = new System.Drawing.Size(228, 140); this.groupBox1.Size = new System.Drawing.Size(214, 106);
this.groupBox1.TabIndex = 9; this.groupBox1.TabIndex = 9;
this.groupBox1.TabStop = false; this.groupBox1.TabStop = false;
this.groupBox1.Text = "Convert"; this.groupBox1.Text = "Convert";
@ -322,9 +273,9 @@
this.convertAudio.CheckState = System.Windows.Forms.CheckState.Checked; this.convertAudio.CheckState = System.Windows.Forms.CheckState.Checked;
this.convertAudio.Location = new System.Drawing.Point(6, 78); this.convertAudio.Location = new System.Drawing.Point(6, 78);
this.convertAudio.Name = "convertAudio"; this.convertAudio.Name = "convertAudio";
this.convertAudio.Size = new System.Drawing.Size(198, 28); this.convertAudio.Size = new System.Drawing.Size(198, 16);
this.convertAudio.TabIndex = 6; this.convertAudio.TabIndex = 6;
this.convertAudio.Text = "Convert AudioClip to WAV(PCM)\r\n(If support)"; this.convertAudio.Text = "Convert AudioClip to WAV(PCM)";
this.convertAudio.UseVisualStyleBackColor = true; this.convertAudio.UseVisualStyleBackColor = true;
// //
// panel1 // panel1
@ -376,9 +327,9 @@
this.converttexture.CheckState = System.Windows.Forms.CheckState.Checked; this.converttexture.CheckState = System.Windows.Forms.CheckState.Checked;
this.converttexture.Location = new System.Drawing.Point(6, 20); this.converttexture.Location = new System.Drawing.Point(6, 20);
this.converttexture.Name = "converttexture"; this.converttexture.Name = "converttexture";
this.converttexture.Size = new System.Drawing.Size(192, 16); this.converttexture.Size = new System.Drawing.Size(114, 16);
this.converttexture.TabIndex = 1; this.converttexture.TabIndex = 1;
this.converttexture.Text = "Convert Texture (If support)"; this.converttexture.Text = "Convert Texture";
this.converttexture.UseVisualStyleBackColor = true; this.converttexture.UseVisualStyleBackColor = true;
// //
// groupBox2 // groupBox2
@ -393,12 +344,12 @@
this.groupBox2.Controls.Add(this.allBones); this.groupBox2.Controls.Add(this.allBones);
this.groupBox2.Controls.Add(this.allFrames); this.groupBox2.Controls.Add(this.allFrames);
this.groupBox2.Controls.Add(this.EulerFilter); this.groupBox2.Controls.Add(this.EulerFilter);
this.groupBox2.Location = new System.Drawing.Point(267, 158); this.groupBox2.Location = new System.Drawing.Point(267, 124);
this.groupBox2.Name = "groupBox2"; this.groupBox2.Name = "groupBox2";
this.groupBox2.Size = new System.Drawing.Size(228, 205); this.groupBox2.Size = new System.Drawing.Size(214, 205);
this.groupBox2.TabIndex = 11; this.groupBox2.TabIndex = 11;
this.groupBox2.TabStop = false; this.groupBox2.TabStop = false;
this.groupBox2.Text = "Animator"; this.groupBox2.Text = "Fbx Binary";
// //
// compatibility // compatibility
// //
@ -518,14 +469,12 @@
this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 12F); this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 12F);
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
this.CancelButton = this.fbxCancel; this.CancelButton = this.fbxCancel;
this.ClientSize = new System.Drawing.Size(508, 398); this.ClientSize = new System.Drawing.Size(495, 369);
this.Controls.Add(this.groupBox2); this.Controls.Add(this.groupBox2);
this.Controls.Add(this.groupBox1); this.Controls.Add(this.groupBox1);
this.Controls.Add(this.showExpOpt);
this.Controls.Add(this.fbxCancel); this.Controls.Add(this.fbxCancel);
this.Controls.Add(this.fbxOKbutton); this.Controls.Add(this.fbxOKbutton);
this.Controls.Add(this.advancedBox); this.Controls.Add(this.FbxBox);
this.Controls.Add(this.includeBox);
this.MaximizeBox = false; this.MaximizeBox = false;
this.MinimizeBox = false; this.MinimizeBox = false;
this.Name = "ExportOptions"; this.Name = "ExportOptions";
@ -534,8 +483,8 @@
this.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen; this.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen;
this.Text = "Export options"; this.Text = "Export options";
this.TopMost = true; this.TopMost = true;
this.includeBox.ResumeLayout(false); this.FbxBox.ResumeLayout(false);
this.includeBox.PerformLayout(); this.FbxBox.PerformLayout();
this.geometryBox.ResumeLayout(false); this.geometryBox.ResumeLayout(false);
this.geometryBox.PerformLayout(); this.geometryBox.PerformLayout();
this.advancedBox.ResumeLayout(false); this.advancedBox.ResumeLayout(false);
@ -556,13 +505,10 @@
#endregion #endregion
private System.Windows.Forms.GroupBox includeBox; private System.Windows.Forms.GroupBox FbxBox;
private System.Windows.Forms.GroupBox advancedBox; private System.Windows.Forms.GroupBox advancedBox;
private System.Windows.Forms.NumericUpDown scaleFactor; private System.Windows.Forms.NumericUpDown scaleFactor;
private System.Windows.Forms.Label scaleLabel; private System.Windows.Forms.Label scaleLabel;
private System.Windows.Forms.CheckBox embedBox;
private System.Windows.Forms.CheckBox lightsBox;
private System.Windows.Forms.CheckBox camerasBox;
private System.Windows.Forms.CheckBox exportDeformers; private System.Windows.Forms.CheckBox exportDeformers;
private System.Windows.Forms.GroupBox geometryBox; private System.Windows.Forms.GroupBox geometryBox;
private System.Windows.Forms.CheckBox exportColors; private System.Windows.Forms.CheckBox exportColors;
@ -573,7 +519,6 @@
private System.Windows.Forms.ComboBox upAxis; private System.Windows.Forms.ComboBox upAxis;
private System.Windows.Forms.Button fbxOKbutton; private System.Windows.Forms.Button fbxOKbutton;
private System.Windows.Forms.Button fbxCancel; private System.Windows.Forms.Button fbxCancel;
private System.Windows.Forms.CheckBox showExpOpt;
private System.Windows.Forms.CheckBox convertDummies; private System.Windows.Forms.CheckBox convertDummies;
private System.Windows.Forms.GroupBox groupBox1; private System.Windows.Forms.GroupBox groupBox1;
private System.Windows.Forms.CheckBox converttexture; private System.Windows.Forms.CheckBox converttexture;

View File

@ -24,7 +24,6 @@ namespace AssetStudio
convertDummies.Enabled = (bool)Properties.Settings.Default["exportDeformers"]; convertDummies.Enabled = (bool)Properties.Settings.Default["exportDeformers"];
scaleFactor.Value = (decimal)Properties.Settings.Default["scaleFactor"]; scaleFactor.Value = (decimal)Properties.Settings.Default["scaleFactor"];
upAxis.SelectedIndex = (int)Properties.Settings.Default["upAxis"]; upAxis.SelectedIndex = (int)Properties.Settings.Default["upAxis"];
showExpOpt.Checked = (bool)Properties.Settings.Default["showExpOpt"];
converttexture.Checked = (bool)Properties.Settings.Default["convertTexture"]; converttexture.Checked = (bool)Properties.Settings.Default["convertTexture"];
convertAudio.Checked = (bool)Properties.Settings.Default["convertAudio"]; convertAudio.Checked = (bool)Properties.Settings.Default["convertAudio"];
var str = (string)Properties.Settings.Default["convertType"]; var str = (string)Properties.Settings.Default["convertType"];

View File

@ -155,18 +155,6 @@ namespace AssetStudio.Properties {
} }
} }
[global::System.Configuration.UserScopedSettingAttribute()]
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
[global::System.Configuration.DefaultSettingValueAttribute("False")]
public bool showExpOpt {
get {
return ((bool)(this["showExpOpt"]));
}
set {
this["showExpOpt"] = value;
}
}
[global::System.Configuration.UserScopedSettingAttribute()] [global::System.Configuration.UserScopedSettingAttribute()]
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()] [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
[global::System.Configuration.DefaultSettingValueAttribute("True")] [global::System.Configuration.DefaultSettingValueAttribute("True")]

View File

@ -35,9 +35,6 @@
<Setting Name="upAxis" Type="System.Int32" Scope="User"> <Setting Name="upAxis" Type="System.Int32" Scope="User">
<Value Profile="(Default)">0</Value> <Value Profile="(Default)">0</Value>
</Setting> </Setting>
<Setting Name="showExpOpt" Type="System.Boolean" Scope="User">
<Value Profile="(Default)">False</Value>
</Setting>
<Setting Name="exportDeformers" Type="System.Boolean" Scope="User"> <Setting Name="exportDeformers" Type="System.Boolean" Scope="User">
<Value Profile="(Default)">True</Value> <Value Profile="(Default)">True</Value>
</Setting> </Setting>

View File

@ -298,7 +298,7 @@ namespace AssetStudio
public static bool ExportRawFile(AssetPreloadData asset, string exportPath) public static bool ExportRawFile(AssetPreloadData asset, string exportPath)
{ {
var exportFullName = exportPath + asset.Text + asset.extension; var exportFullName = exportPath + asset.Text + ".dat";
if (ExportFileExists(exportFullName)) if (ExportFileExists(exportFullName))
return false; return false;
var bytes = asset.InitReader().ReadBytes(asset.Size); var bytes = asset.InitReader().ReadBytes(asset.Size);
@ -316,25 +316,17 @@ namespace AssetStudio
return false; return false;
} }
public static bool ExportAnimator(AssetPreloadData animator, string exportPath) public static bool ExportAnimator(AssetPreloadData animator, string exportPath, List<AssetPreloadData> animationList = null)
{ {
var m_Animator = new Animator(animator); var m_Animator = new Animator(animator);
var convert = new ModelConverter(m_Animator); var convert = animationList != null ? new ModelConverter(m_Animator, animationList) : new ModelConverter(m_Animator);
exportPath = exportPath + Studio.FixFileName(animator.Text) + ".fbx"; exportPath = exportPath + Studio.FixFileName(animator.Text) + ".fbx";
return ModelConverter(convert, exportPath); return ModelConverter(convert, exportPath);
} }
public static bool ExportAnimator(AssetPreloadData animator, List<AssetPreloadData> animationList, string exportPath) public static bool ExportGameObject(GameObject gameObject, string exportPath, List<AssetPreloadData> animationList = null)
{ {
var m_Animator = new Animator(animator); var convert = animationList != null ? new ModelConverter(gameObject, animationList) : new ModelConverter(gameObject);
var convert = new ModelConverter(m_Animator, animationList);
exportPath = exportPath + Studio.FixFileName(animator.Text) + ".fbx";
return ModelConverter(convert, exportPath);
}
public static bool ExportGameObject(GameObject gameObject, List<AssetPreloadData> animationList, string exportPath)
{
var convert = new ModelConverter(gameObject, animationList);
exportPath = exportPath + Studio.FixFileName(gameObject.Text) + ".fbx"; exportPath = exportPath + Studio.FixFileName(gameObject.Text) + ".fbx";
return ModelConverter(convert, exportPath); return ModelConverter(convert, exportPath);
} }

View File

@ -205,9 +205,8 @@ namespace AssetStudio
break; break;
} }
} }
if (!exportable && displayAll) if (displayAll)
{ {
asset.extension = ".dat";
exportable = true; exportable = true;
} }
if (exportable) if (exportable)
@ -556,34 +555,49 @@ namespace AssetStudio
{ {
ThreadPool.QueueUserWorkItem(state => ThreadPool.QueueUserWorkItem(state =>
{ {
bool result; StatusStripUpdate($"Exporting {animator.Text}");
try try
{ {
result = ExportAnimator(animator, animationList, exportPath); ExportAnimator(animator, exportPath, animationList);
StatusStripUpdate($"Finished exporting {animator.Text}");
} }
catch (Exception ex) catch (Exception ex)
{ {
result = false;
MessageBox.Show($"{ex.Message}\r\n{ex.StackTrace}"); MessageBox.Show($"{ex.Message}\r\n{ex.StackTrace}");
StatusStripUpdate("Error in export");
} }
StatusStripUpdate(result ? "Successfully exported" : "Nothing exported.");
ProgressBarPerformStep(); ProgressBarPerformStep();
}); });
} }
public static void ExportObjectsWithAnimationClip(GameObject gameObject, List<AssetPreloadData> animationList, string exportPath) public static void ExportObjectsWithAnimationClip(GameObject gameObject, string exportPath, List<AssetPreloadData> animationList = null)
{ {
bool result; StatusStripUpdate($"Exporting {gameObject.Text}");
try try
{ {
result = ExportGameObject(gameObject, animationList, exportPath); ExportGameObject(gameObject, exportPath, animationList);
StatusStripUpdate($"Finished exporting {gameObject.Text}");
} }
catch (Exception ex) catch (Exception ex)
{ {
result = false;
MessageBox.Show($"{ex.Message}\r\n{ex.StackTrace}"); MessageBox.Show($"{ex.Message}\r\n{ex.StackTrace}");
StatusStripUpdate("Error in export");
}
}
public static void ForeachTreeNodes(TreeNodeCollection nodes, string exportPath, Action<GameObject> action)
{
foreach (TreeNode i in nodes)
{
if (i.Checked)
{
action((GameObject)i);
}
else
{
ForeachTreeNodes(i.Nodes, exportPath, action);
}
} }
StatusStripUpdate(result ? "Successfully exported" : "Nothing exported.");
} }
} }
} }

View File

@ -40,9 +40,6 @@
<setting name="upAxis" serializeAs="String"> <setting name="upAxis" serializeAs="String">
<value>0</value> <value>0</value>
</setting> </setting>
<setting name="showExpOpt" serializeAs="String">
<value>False</value>
</setting>
<setting name="exportDeformers" serializeAs="String"> <setting name="exportDeformers" serializeAs="String">
<value>True</value> <value>True</value>
</setting> </setting>