From 0ae8386316f5c76725bca3c9a60a85be57abe118 Mon Sep 17 00:00:00 2001 From: LongerWarrior Date: Fri, 30 Aug 2024 18:48:01 +0300 Subject: [PATCH] Updating MorphTarget --- CUE4Parse | 2 +- .../Creator/Bases/FN/BaseMaterialInstance.cs | 3 ++- FModel/Views/Snooper/Models/Morph.cs | 8 +++---- FModel/Views/Snooper/Models/SkeletalModel.cs | 22 +++++++++++-------- 4 files changed, 20 insertions(+), 15 deletions(-) diff --git a/CUE4Parse b/CUE4Parse index 2249deef..33ba4d68 160000 --- a/CUE4Parse +++ b/CUE4Parse @@ -1 +1 @@ -Subproject commit 2249deefcbe5e5858229db2f8694623c69009036 +Subproject commit 33ba4d6886212e244ec0a32bfc8183db85f2a398 diff --git a/FModel/Creator/Bases/FN/BaseMaterialInstance.cs b/FModel/Creator/Bases/FN/BaseMaterialInstance.cs index c9776b8b..e761fff9 100644 --- a/FModel/Creator/Bases/FN/BaseMaterialInstance.cs +++ b/FModel/Creator/Bases/FN/BaseMaterialInstance.cs @@ -31,6 +31,7 @@ public class BaseMaterialInstance : BaseIcon case "TextureA": case "TextureB": case "OfferImage": + case "CarTexture": Preview = Utils.GetBitmap(texture); break; } @@ -88,4 +89,4 @@ public class BaseMaterialInstance : BaseIcon return new[] { ret }; } -} \ No newline at end of file +} diff --git a/FModel/Views/Snooper/Models/Morph.cs b/FModel/Views/Snooper/Models/Morph.cs index 628680fd..5c3689b6 100644 --- a/FModel/Views/Snooper/Models/Morph.cs +++ b/FModel/Views/Snooper/Models/Morph.cs @@ -1,4 +1,4 @@ -using System; +using System; using CUE4Parse.UE4.Assets.Exports.Animation; using CUE4Parse.UE4.Objects.Core.Math; using OpenTK.Graphics.OpenGL4; @@ -44,9 +44,9 @@ public class Morph : IDisposable Vertices[baseIndex + count++] = vertices[i + 1] + positionDelta.X * Constants.SCALE_DOWN_RATIO; Vertices[baseIndex + count++] = vertices[i + 2] + positionDelta.Z * Constants.SCALE_DOWN_RATIO; Vertices[baseIndex + count++] = vertices[i + 3] + positionDelta.Y * Constants.SCALE_DOWN_RATIO; - Vertices[baseIndex + count++] = vertices[i + 7] + tangentDelta.X * Constants.SCALE_DOWN_RATIO; - Vertices[baseIndex + count++] = vertices[i + 8] + tangentDelta.Z * Constants.SCALE_DOWN_RATIO; - Vertices[baseIndex + count++] = vertices[i + 9] + tangentDelta.Y * Constants.SCALE_DOWN_RATIO; + Vertices[baseIndex + count++] = vertices[i + 7] + tangentDelta.X; + Vertices[baseIndex + count++] = vertices[i + 8] + tangentDelta.Z; + Vertices[baseIndex + count++] = vertices[i + 9] + tangentDelta.Y; } else { diff --git a/FModel/Views/Snooper/Models/SkeletalModel.cs b/FModel/Views/Snooper/Models/SkeletalModel.cs index 92411f18..9db3a952 100644 --- a/FModel/Views/Snooper/Models/SkeletalModel.cs +++ b/FModel/Views/Snooper/Models/SkeletalModel.cs @@ -1,4 +1,4 @@ -using System; +using System; using System.Collections.Generic; using System.Numerics; using CUE4Parse_Conversion.Meshes.PSK; @@ -74,11 +74,15 @@ public class SkeletalModel : UModel } } - Morphs = new List(); - for (var i = 0; i < export.MorphTargets.Length; i++) + Morphs = []; + if (export.MorphTargets.Length == 0) return; + + export.PopulateMorphTargetVerticesData(); + + foreach (var morph in export.MorphTargets) { - if (!export.MorphTargets[i].TryLoad(out UMorphTarget morphTarget) || - morphTarget.MorphLODModels.Length < 1 || morphTarget.MorphLODModels[0].Vertices.Length < 1) + if (!morph.TryLoad(out UMorphTarget morphTarget) || morphTarget.MorphLODModels.Length < 1 || + morphTarget.MorphLODModels[0].Vertices.Length < 1) continue; Morphs.Add(new Morph(Vertices, VertexSize, morphTarget)); @@ -87,10 +91,10 @@ public class SkeletalModel : UModel public SkeletalModel(USkeleton export, FBox box) : base(export) { - Indices = Array.Empty(); - Materials = Array.Empty(); - Vertices = Array.Empty(); - Sections = Array.Empty
(); + Indices = []; + Materials = []; + Vertices = []; + Sections = []; AddInstance(Transform.Identity); Box = box * Constants.SCALE_DOWN_RATIO;