Merge pull request #2609 from ousttrue/fix/init_tailpos_center

[SpringBone] CurrentTails の初期値。CurrentTails は center local
This commit is contained in:
ousttrue 2025-03-14 16:33:31 +09:00 committed by GitHub
commit d8a2933524
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194

View File

@ -300,6 +300,7 @@ namespace UniGLTF.SpringBoneJobs
public void Execute(int springIndex)
{
var spring = Springs[springIndex];
var center = spring.centerTransformIndex >= 0 ? Transforms[spring.centerTransformIndex] : (BlittableTransform?)null;
for (int jointIndex = spring.logicSpan.startIndex; jointIndex < spring.logicSpan.EndIndex; ++jointIndex)
{
if (float.IsNaN(CurrentTails[jointIndex].x))
@ -317,9 +318,10 @@ namespace UniGLTF.SpringBoneJobs
}
var tail = Transforms[tailIndex];
CurrentTails[jointIndex] = tail.position;
PrevTails[jointIndex] = tail.position;
NextTails[jointIndex] = tail.position;
var tailPos = center.HasValue ? center.Value.worldToLocalMatrix.MultiplyPoint3x4(tail.position) : tail.position;
CurrentTails[jointIndex] = tailPos;
PrevTails[jointIndex] = tailPos;
NextTails[jointIndex] = tailPos;
}
}
}