diff --git a/CUE4Parse b/CUE4Parse index 071e4589..ced99f10 160000 --- a/CUE4Parse +++ b/CUE4Parse @@ -1 +1 @@ -Subproject commit 071e458907750c5af253079e2e91ddf54b824220 +Subproject commit ced99f105fedb66084c4d9689110ea92a66c7751 diff --git a/FModel/Creator/Bases/FN/BaseMaterialInstance.cs b/FModel/Creator/Bases/FN/BaseMaterialInstance.cs index 31f211ae..37cfd489 100644 --- a/FModel/Creator/Bases/FN/BaseMaterialInstance.cs +++ b/FModel/Creator/Bases/FN/BaseMaterialInstance.cs @@ -22,7 +22,7 @@ namespace FModel.Creator.Bases.FN texture_finding: foreach (var textureParameter in material.TextureParameterValues) // get texture from base material { - if (textureParameter.ParameterValue is not UTexture2D texture || Preview != null) continue; + if (!textureParameter.ParameterValue.TryLoad(out var texture) || Preview != null) continue; switch (textureParameter.ParameterInfo.Name.Text) { case "SeriesTexture": diff --git a/FModel/Creator/Utils.cs b/FModel/Creator/Utils.cs index d93a7ece..42b071c2 100644 --- a/FModel/Creator/Utils.cs +++ b/FModel/Creator/Utils.cs @@ -85,7 +85,7 @@ namespace FModel.Creator if (material == null) return null; foreach (var textureParameter in material.TextureParameterValues) { - if (textureParameter.ParameterValue is not UTexture2D texture) continue; + if (!textureParameter.ParameterValue.TryLoad(out var texture)) continue; switch (textureParameter.ParameterInfo.Name.Text) { case "MainTex": diff --git a/FModel/ViewModels/ModelViewerViewModel.cs b/FModel/ViewModels/ModelViewerViewModel.cs index 60e69467..14af0bc0 100644 --- a/FModel/ViewModels/ModelViewerViewModel.cs +++ b/FModel/ViewModels/ModelViewerViewModel.cs @@ -183,13 +183,13 @@ namespace FModel.ViewModels { for (var j = 0; j < sections.Length; j++) { - if (sections[j].Material?.Value is not { } unrealMaterial) + if (sections[j].Material == null || !sections[j].Material.TryLoad(out var unrealMaterial)) continue; var parameters = new CMaterialParams(); unrealMaterial.GetParams(parameters); if (parameters.Diffuse is not UTexture2D diffuse) continue; - MeshMat = new DiffuseMaterial {DiffuseMap = new TextureModel(diffuse.Decode().Encode().AsStream())}; + MeshMat = new DiffuseMaterial {DiffuseMap = new TextureModel(diffuse.Decode()?.Encode().AsStream())}; break; } }