From b04cdbf12bf6b7623e796d873038d6c3dcbdb7aa Mon Sep 17 00:00:00 2001 From: Perfare Date: Thu, 1 Nov 2018 19:15:15 +0800 Subject: [PATCH] Fixed bug --- AssetStudio/Classes/Mesh.cs | 17 ++++++++++++++--- AssetStudio/StudioClasses/ModelConverter.cs | 2 +- 2 files changed, 15 insertions(+), 4 deletions(-) diff --git a/AssetStudio/Classes/Mesh.cs b/AssetStudio/Classes/Mesh.cs index 548bb3a..27f0899 100644 --- a/AssetStudio/Classes/Mesh.cs +++ b/AssetStudio/Classes/Mesh.cs @@ -571,7 +571,6 @@ namespace AssetStudio #region 2018 and up if (version[0] >= 2018) { - InitMSkin(); foreach (var m_Channel in m_Channels) { if (m_Channel.dimension > 0) @@ -639,8 +638,16 @@ namespace AssetStudio case 7: //kShaderChannelTexCoord3 m_UV4 = componentsFloatArray; break; + //kShaderChannelTexCoord4 8 + //kShaderChannelTexCoord5 9 + //kShaderChannelTexCoord6 10 + //kShaderChannelTexCoord7 11 //2018.2 and up - case 12: + case 12: //kShaderChannelBlendWeight + if (m_Skin == null) + { + InitMSkin(); + } for (int i = 0; i < m_VertexCount; i++) { for (int j = 0; j < 4; j++) @@ -649,7 +656,11 @@ namespace AssetStudio } } break; - case 13: + case 13: //kShaderChannelBlendIndices + if (m_Skin == null) + { + InitMSkin(); + } for (int i = 0; i < m_VertexCount; i++) { for (int j = 0; j < 4; j++) diff --git a/AssetStudio/StudioClasses/ModelConverter.cs b/AssetStudio/StudioClasses/ModelConverter.cs index c397299..3b46ddd 100644 --- a/AssetStudio/StudioClasses/ModelConverter.cs +++ b/AssetStudio/StudioClasses/ModelConverter.cs @@ -353,7 +353,7 @@ namespace AssetStudio iVertex.Tangent = new Vector4(-mesh.m_Tangents[j * 4], mesh.m_Tangents[j * 4 + 1], mesh.m_Tangents[j * 4 + 2], mesh.m_Tangents[j * 4 + 3]); } //BoneInfluence - if (mesh.m_Skin.Length > 0) + if (mesh.m_Skin?.Length > 0) { var inf = mesh.m_Skin[j]; iVertex.BoneIndices = new byte[inf.Count];