Skip to content

Commit ad4a1df

Browse files
committed
Normalize weights before running transforms for incoming models.
1 parent 903d33b commit ad4a1df

File tree

1 file changed

+11
-0
lines changed

1 file changed

+11
-0
lines changed

xivModdingFramework/Models/Helpers/ModelModifiers.cs

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1338,6 +1338,8 @@ public static async Task ApplyRacialDeform(TTModel model, XivRace targetRace, bo
13381338

13391339
// Now we're ready to animate...
13401340

1341+
var usageInfo = model.GetUsageInfo();
1342+
13411343
// For each mesh
13421344
foreach (var m in model.MeshGroups)
13431345
{
@@ -1347,6 +1349,15 @@ public static async Task ApplyRacialDeform(TTModel model, XivRace targetRace, bo
13471349
// And each vertex in that part...
13481350
foreach (var v in p.Vertices)
13491351
{
1352+
// Normalize weights before transforming to ensure consistent results.
1353+
if (usageInfo.NeedsEightWeights)
1354+
{
1355+
ModelModifiers.CleanWeight(v, 8, loggingFunction);
1356+
} else
1357+
{
1358+
ModelModifiers.CleanWeight(v, 4, loggingFunction);
1359+
}
1360+
13501361
Vector3 position = Vector3.Zero;
13511362
Vector3 normal = Vector3.Zero;
13521363
Vector3 binormal = Vector3.Zero;

0 commit comments

Comments
 (0)