1
0
mirror of synced 2024-09-24 03:28:21 +02: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];
currentModel.Text = text;
currentModel.Text = $"{currentModel.Text} [{text}]";
}
}
break;

View File

@ -455,7 +455,14 @@ namespace Toolbox.Library
if (DaeHelper.IDMapToName.ContainsKey(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[Name] == "JOINT")
IsBone = true;

View File

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