diff --git a/DesktopVRIK/DesktopVRIK.cs b/DesktopVRIK/DesktopVRIK.cs index 783e8db..7e28795 100644 --- a/DesktopVRIK/DesktopVRIK.cs +++ b/DesktopVRIK/DesktopVRIK.cs @@ -17,8 +17,6 @@ public class DesktopVRIK : MonoBehaviour public bool Setting_EmulateVRChatHipMovement; public bool Setting_EmoteVRIK; public bool Setting_EmoteLookAtIK; - //fuck - public bool Setting_CompatibilityMode; void Start() { diff --git a/DesktopVRIK/HarmonyPatches.cs b/DesktopVRIK/HarmonyPatches.cs index 49940eb..49844f8 100644 --- a/DesktopVRIK/HarmonyPatches.cs +++ b/DesktopVRIK/HarmonyPatches.cs @@ -15,12 +15,15 @@ internal class HarmonyPatches [HarmonyPostfix] [HarmonyPatch(typeof(PlayerSetup), "SetupAvatarGeneral")] - private static void SetupDesktopIKSystem(ref CVRAvatar ____avatarDescriptor) + private static void SetupDesktopIKSystem(ref CVRAvatar ____avatarDescriptor, ref Animator ____animator) { if (!MetaPort.Instance.isUsingVr && DesktopVRIK.Instance.Setting_Enabled) { - //this will stop at the useless isVr return (the function is only ever called by vr anyways...) - IKSystem.Instance.InitializeAvatar(____avatarDescriptor); + if (____avatarDescriptor != null && ____animator != null && ____animator.isHuman) + { + //this will stop at the useless isVr return (the function is only ever called by vr anyways...) + IKSystem.Instance.InitializeAvatar(____avatarDescriptor); + } } } @@ -30,40 +33,25 @@ internal class HarmonyPatches { if (!MetaPort.Instance.isUsingVr && DesktopVRIK.Instance.Setting_Enabled) { - //need IKSystem to see VRIK component for setup - if (____vrik == null) + if (IKSystem.Instance.animator != null && IKSystem.Instance.animator.avatar != null && IKSystem.Instance.animator.avatar.isHuman) { - ____vrik = avatar.gameObject.AddComponent(); - } + //need IKSystem to see VRIK component for setup + if (____vrik == null) + { + ____vrik = avatar.gameObject.AddComponent(); + } - //ChilloutVR stuffs that makes sure garbage armatures are supported - //this places heels in the ground... can i just use my own tpose animation - if (DesktopVRIK.Instance.Setting_CompatibilityMode) - { + //why the fuck does this fix bad armatures and heels in ground ??? if (____poseHandler == null) { ____poseHandler = new HumanPoseHandler(IKSystem.Instance.animator.avatar, IKSystem.Instance.animator.transform); } ____poseHandler.GetHumanPose(ref ___humanPose); - ____referenceRootPosition = IKSystem.Instance.animator.GetBoneTransform(HumanBodyBones.Hips).position; - ____referenceRootRotation = IKSystem.Instance.animator.GetBoneTransform(HumanBodyBones.Hips).rotation; - for (int i = 0; i < ___HandCalibrationPoseMuscles.Length; i++) - { - IKSystem.Instance.ApplyMuscleValue((MuscleIndex)i, ___HandCalibrationPoseMuscles[i], ref ___humanPose.muscles); - } ____poseHandler.SetHumanPose(ref ___humanPose); - if (IKSystem.Instance.applyOriginalHipPosition) - { - IKSystem.Instance.animator.GetBoneTransform(HumanBodyBones.Hips).position = ____referenceRootPosition; - } - if (IKSystem.Instance.applyOriginalHipRotation) - { - IKSystem.Instance.animator.GetBoneTransform(HumanBodyBones.Hips).rotation = ____referenceRootRotation; - } - } - //now I calibrate DesktopVRIK - DesktopVRIK.Instance.CalibrateDesktopVRIK(avatar); + //now I calibrate DesktopVRIK + DesktopVRIK.Instance.CalibrateDesktopVRIK(avatar); + } } } diff --git a/DesktopVRIK/Main.cs b/DesktopVRIK/Main.cs index 14119ad..7bcff02 100644 --- a/DesktopVRIK/Main.cs +++ b/DesktopVRIK/Main.cs @@ -15,7 +15,6 @@ public class DesktopVRIKMod : MelonMod m_entryEmulateHipMovement = m_categoryDesktopVRIK.CreateEntry("Emulate Hip Movement", true, description: "Emulates VRChat-like hip movement when moving head up/down on desktop."); m_entryEmoteVRIK = m_categoryDesktopVRIK.CreateEntry("Disable Emote VRIK", true, description: "Disable VRIK while emoting. Only disable if you are ok with looking dumb."); m_entryEmoteLookAtIK = m_categoryDesktopVRIK.CreateEntry("Disable Emote LookAtIK", true, description: "Disable LookAtIK while emoting. This setting doesn't really matter, as LookAtIK isn't networked while doing an emote."); - m_entryCompatibilityMode = m_categoryDesktopVRIK.CreateEntry("Compatibility Mode", false, description: "Runs finger muscle calibration- which somehow makes bad armatures work better but also pushes heels into the ground."); ; m_categoryDesktopVRIK.SaveToFile(false); foreach (var setting in m_categoryDesktopVRIK.Entries) @@ -43,7 +42,6 @@ public class DesktopVRIKMod : MelonMod DesktopVRIK.Instance.Setting_EmulateVRChatHipMovement = m_entryEmulateHipMovement.Value; DesktopVRIK.Instance.Setting_EmoteVRIK = m_entryEmoteVRIK.Value; DesktopVRIK.Instance.Setting_EmoteLookAtIK = m_entryEmoteLookAtIK.Value; - DesktopVRIK.Instance.Setting_CompatibilityMode = m_entryCompatibilityMode.Value; } private void OnUpdateSettings(object arg1, object arg2) => UpdateAllSettings(); diff --git a/DesktopVRIK/Properties/AssemblyInfo.cs b/DesktopVRIK/Properties/AssemblyInfo.cs index fc089f3..8590777 100644 --- a/DesktopVRIK/Properties/AssemblyInfo.cs +++ b/DesktopVRIK/Properties/AssemblyInfo.cs @@ -25,6 +25,6 @@ using DesktopVRIK.Properties; namespace DesktopVRIK.Properties; internal static class AssemblyInfoParams { - public const string Version = "1.0.0"; + public const string Version = "1.0.2"; public const string Author = "NotAKidoS"; } \ No newline at end of file diff --git a/DesktopVRIK/format.json b/DesktopVRIK/format.json index 8f81334..0caa9b1 100644 --- a/DesktopVRIK/format.json +++ b/DesktopVRIK/format.json @@ -1,7 +1,7 @@ { - "_id": -1, + "_id": 117, "name": "DesktopVRIK", - "modversion": "1.0.0", + "modversion": "1.0.2", "gameversion": "2022r170", "loaderversion": "0.5.7", "modtype": "Mod", @@ -16,8 +16,8 @@ "requirements": [ "None" ], - "downloadlink": "https://github.com/NotAKidOnSteam/DesktopVRIK/releases/download/v1.0.0/DesktopVRIK.dll", + "downloadlink": "https://github.com/NotAKidOnSteam/DesktopVRIK/releases/download/v1.0.2/DesktopVRIK.dll", "sourcelink": "https://github.com/NotAKidOnSteam/DesktopVRIK/", - "changelog": "Simplified VRIK calibration to avoid low heel issue.", + "changelog": "Simplified VRIK calibration to avoid low heel issue.\nRemoved rushed compatibility mode & implemented integrity checks for valid Humanoid rigs.", "embedcolor": "9b59b6" } \ No newline at end of file