From 63048bd4c417f8f67007278826d44b22ad16f806 Mon Sep 17 00:00:00 2001 From: NotAKidoS <37721153+NotAKidOnSteam@users.noreply.github.com> Date: Tue, 25 Apr 2023 21:06:01 -0500 Subject: [PATCH] fix issue with initialheadheight --- DesktopVRIK/DesktopVRIKSystem.cs | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/DesktopVRIK/DesktopVRIKSystem.cs b/DesktopVRIK/DesktopVRIKSystem.cs index 8d561c5..ebdae76 100644 --- a/DesktopVRIK/DesktopVRIKSystem.cs +++ b/DesktopVRIK/DesktopVRIKSystem.cs @@ -167,6 +167,7 @@ internal class DesktopVRIKSystem : MonoBehaviour Vector3 _vrikInitialFootPosRight; Quaternion _vrikInitialFootRotLeft; Quaternion _vrikInitialFootRotRight; + float _vrikInitialHeadHeight; float _vrikInitialFootDistance; float _vrikInitialStepThreshold; float _vrikInitialStepHeight; @@ -245,7 +246,7 @@ internal class DesktopVRIKSystem : MonoBehaviour // Get Upright value Vector3 delta = avatarIKSolver.spine.headPosition - avatarTransform.position; Vector3 deltaRotated = Quaternion.Euler(0, avatarTransform.rotation.eulerAngles.y, 0) * delta; - float upright = Mathf.InverseLerp(0f, avatarIKSolver.spine.headHeight * _scaleDifference, deltaRotated.y); + float upright = Mathf.InverseLerp(0f, _vrikInitialHeadHeight * _scaleDifference, deltaRotated.y); return upright > 0.85f; } @@ -579,6 +580,8 @@ internal class DesktopVRIKSystem : MonoBehaviour SetAvatarPose(AvatarPose.IKPose); + _vrikInitialHeadHeight = Mathf.Abs(avatarVRIK.references.head.position.y - avatarVRIK.references.rightFoot.position.y); + // Calculate initial IK scaling values with IKPose VRIKUtils.CalculateInitialIKScaling(avatarVRIK, out _vrikInitialFootDistance, out _vrikInitialStepThreshold, out _vrikInitialStepHeight);