1
0
mirror of synced 2025-02-21 21:10:27 +01:00

Some fixes.

Fix DAE exporting if textures fail to export.
Fix bone detection for FBX
Add model index for LM3 models.
This commit is contained in:
KillzXGaming 2019-11-17 08:59:11 -05:00
parent 9c5185bbde
commit 39d2307cd3
3 changed files with 37 additions and 18 deletions

View File

@ -327,7 +327,7 @@ namespace FirstPlugin.LuigisMansion3
text = NLG_Common.HashNames[hashID]; text = NLG_Common.HashNames[hashID];
currentModel.Text = text; currentModel.Text = $"{currentModel.Text} [{text}]";
} }
} }
break; break;

View File

@ -455,7 +455,14 @@ namespace Toolbox.Library
if (DaeHelper.IDMapToName.ContainsKey(node.Name)) if (DaeHelper.IDMapToName.ContainsKey(node.Name))
Name = DaeHelper.IDMapToName[node.Name]; Name = DaeHelper.IDMapToName[node.Name];
bool IsBone = false; string ParentArmatureName = node.Parent != null ? node.Parent.Name : "";
if (ParentArmatureName != string.Empty && DaeHelper.IDMapToName.ContainsKey(ParentArmatureName))
ParentArmatureName = DaeHelper.IDMapToName[ParentArmatureName];
bool IsBone = boneNames.Contains(Name) && !boneNames.Contains(ParentArmatureName) ||
Name.Contains("Skl_Root") || Name.Contains("nw4f_root") ||
Name.Contains("skl_root") || Name == "Root";
if (DaeHelper.VisualSceneNodeTypes.ContainsKey(Name)) { if (DaeHelper.VisualSceneNodeTypes.ContainsKey(Name)) {
if (DaeHelper.VisualSceneNodeTypes[Name] == "JOINT") if (DaeHelper.VisualSceneNodeTypes[Name] == "JOINT")
IsBone = true; IsBone = true;

View File

@ -62,6 +62,8 @@ namespace Toolbox.Library
if (Materials == null) if (Materials == null)
Materials = new List<STGenericMaterial>(); Materials = new List<STGenericMaterial>();
List<string> failedTextureExport = new List<string>();
STProgressBar progressBar = new STProgressBar(); STProgressBar progressBar = new STProgressBar();
progressBar.Task = "Exporting Model..."; progressBar.Task = "Exporting Model...";
progressBar.Value = 0; progressBar.Value = 0;
@ -98,26 +100,36 @@ namespace Toolbox.Library
progressBar.Value = ((i * 100) / Textures.Count); progressBar.Value = ((i * 100) / Textures.Count);
progressBar.Refresh(); progressBar.Refresh();
var bitmap = Textures[i].GetBitmap(); try
string textureName = Textures[i].Text;
if (textureName.RemoveIllegaleFileNameCharacters() != textureName)
{ {
string properName = textureName.RemoveIllegaleFileNameCharacters(); var bitmap = Textures[i].GetBitmap();
for (int m = 0; m < Materials?.Count; m++) { if (bitmap != null)
foreach (var tex in Materials[m].TextureMaps) { {
if (tex.Name == textureName) string textureName = Textures[i].Text;
tex.Name = properName; if (textureName.RemoveIllegaleFileNameCharacters() != textureName)
{
string properName = textureName.RemoveIllegaleFileNameCharacters();
for (int m = 0; m < Materials?.Count; m++)
{
foreach (var tex in Materials[m].TextureMaps)
{
if (tex.Name == textureName)
tex.Name = properName;
}
}
textureName = properName;
} }
bitmap.Save($"{TexturePath}/{textureName}.png");
bitmap.Dispose();
GC.Collect();
} }
textureName = properName;
} }
catch (Exception ex) {
bitmap.Save($"{TexturePath}/{textureName}.png"); failedTextureExport.Add(Textures[i].Text);
bitmap.Dispose(); }
GC.Collect();
} }
} }