From c215022153c6c02c7f7eb77f237413a2912c11fe Mon Sep 17 00:00:00 2001 From: notargs Date: Fri, 22 Oct 2021 15:24:34 +0900 Subject: [PATCH 1/3] Unuse mathf in burst --- .../FastSpringBone/System/UpdateFastSpringBoneJob.cs | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/Assets/VRM10/Runtime/FastSpringBone/System/UpdateFastSpringBoneJob.cs b/Assets/VRM10/Runtime/FastSpringBone/System/UpdateFastSpringBoneJob.cs index 3ea06e72d..e713ddcd0 100644 --- a/Assets/VRM10/Runtime/FastSpringBone/System/UpdateFastSpringBoneJob.cs +++ b/Assets/VRM10/Runtime/FastSpringBone/System/UpdateFastSpringBoneJob.cs @@ -1,3 +1,4 @@ +using System; using Unity.Collections; using Unity.Jobs; using UnityEngine; @@ -106,7 +107,7 @@ namespace UniVRM10.FastSpringBones.System if (parentTransform.HasValue) { var parentLocalToWorldMatrix = parentTransform.Value.localToWorldMatrix; - headTransform.localRotation = (Quaternion.Inverse(parentTransform.Value.rotation) * headTransform.rotation).normalized; + headTransform.localRotation = Normalize(Quaternion.Inverse(parentTransform.Value.rotation) * headTransform.rotation); headTransform.localToWorldMatrix = parentLocalToWorldMatrix * Matrix4x4.TRS( @@ -134,6 +135,15 @@ namespace UniVRM10.FastSpringBones.System } } + /// + /// BurstではMathがエラーを吐くため、内部でMathを呼ばないNormalizeを自前実装 + /// + private static Quaternion Normalize(Quaternion q) + { + var num = (float)Math.Sqrt((float)Quaternion.Dot(q, q)); + return num < float.Epsilon ? Quaternion.identity : new Quaternion(q.x / num, q.y / num, q.z / num, q.w / num); + } + private static void ResolveCapsuleCollision( Vector3 worldTail, Vector3 worldPosition, From c68be7c59f27dfd4bdc826731ee7e210ecfab2d7 Mon Sep 17 00:00:00 2001 From: notargs Date: Fri, 22 Oct 2021 15:25:19 +0900 Subject: [PATCH 2/3] Fix comment --- .../Runtime/FastSpringBone/System/UpdateFastSpringBoneJob.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Assets/VRM10/Runtime/FastSpringBone/System/UpdateFastSpringBoneJob.cs b/Assets/VRM10/Runtime/FastSpringBone/System/UpdateFastSpringBoneJob.cs index e713ddcd0..7c5610a9b 100644 --- a/Assets/VRM10/Runtime/FastSpringBone/System/UpdateFastSpringBoneJob.cs +++ b/Assets/VRM10/Runtime/FastSpringBone/System/UpdateFastSpringBoneJob.cs @@ -136,7 +136,7 @@ namespace UniVRM10.FastSpringBones.System } /// - /// BurstではMathがエラーを吐くため、内部でMathを呼ばないNormalizeを自前実装 + /// BurstではMathfがエラーを吐くため、内部でMathfを呼ばないNormalizeを自前実装 /// private static Quaternion Normalize(Quaternion q) { From 698e7c0f158ca19959939ef14e3c4ee44e4bfb91 Mon Sep 17 00:00:00 2001 From: notargs Date: Fri, 22 Oct 2021 15:30:26 +0900 Subject: [PATCH 3/3] =?UTF-8?q?=E4=B8=8D=E8=A6=81=E3=81=AA=E3=82=AD?= =?UTF-8?q?=E3=83=A3=E3=82=B9=E3=83=88=E3=82=92=E5=89=8A=E9=99=A4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Runtime/FastSpringBone/System/UpdateFastSpringBoneJob.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Assets/VRM10/Runtime/FastSpringBone/System/UpdateFastSpringBoneJob.cs b/Assets/VRM10/Runtime/FastSpringBone/System/UpdateFastSpringBoneJob.cs index 7c5610a9b..28bee0632 100644 --- a/Assets/VRM10/Runtime/FastSpringBone/System/UpdateFastSpringBoneJob.cs +++ b/Assets/VRM10/Runtime/FastSpringBone/System/UpdateFastSpringBoneJob.cs @@ -140,7 +140,7 @@ namespace UniVRM10.FastSpringBones.System /// private static Quaternion Normalize(Quaternion q) { - var num = (float)Math.Sqrt((float)Quaternion.Dot(q, q)); + var num = (float)Math.Sqrt(Quaternion.Dot(q, q)); return num < float.Epsilon ? Quaternion.identity : new Quaternion(q.x / num, q.y / num, q.z / num, q.w / num); }