From bae72a9feeb6636339752fc5fd19c48202372b7e Mon Sep 17 00:00:00 2001
From: OrangeSpork <57274555+OrangeSpork@users.noreply.github.com>
Date: Sat, 12 Feb 2022 16:39:09 -0700
Subject: [PATCH] Fix neck motion in KK/KKS. Retuned default neck motion in
HS2/AI.
---
AI_AdvIKPlugin/AI_AdvIKPlugin.csproj | 4 ++--
AdvIKPlugin/AdvIKGUI.cs | 8 ++++++++
AdvIKPlugin/AdvIKHooks.cs | 7 ++++++-
AdvIKPlugin/AdvIKPlugin.cs | 2 +-
AdvIKPlugin/Algos/BreathingBoneEffect.cs | 7 ++++++-
HS2_AdvIKPlugin/HS2_AdvIKPlugin.csproj | 5 +++--
6 files changed, 26 insertions(+), 7 deletions(-)
diff --git a/AI_AdvIKPlugin/AI_AdvIKPlugin.csproj b/AI_AdvIKPlugin/AI_AdvIKPlugin.csproj
index 11df981..5dc7f43 100644
--- a/AI_AdvIKPlugin/AI_AdvIKPlugin.csproj
+++ b/AI_AdvIKPlugin/AI_AdvIKPlugin.csproj
@@ -20,7 +20,7 @@
full
false
..\bin\
- DEBUG;TRACE
+ TRACE;DEBUG;AI
prompt
4
true
@@ -29,7 +29,7 @@
none
true
..\bin\
- TRACE
+ TRACE;AI
prompt
4
true
diff --git a/AdvIKPlugin/AdvIKGUI.cs b/AdvIKPlugin/AdvIKGUI.cs
index 9db1495..833e543 100644
--- a/AdvIKPlugin/AdvIKGUI.cs
+++ b/AdvIKPlugin/AdvIKGUI.cs
@@ -699,6 +699,14 @@ public static void SetupBreathShapeControls()
}
});
+#if KOIKATSU || KKS
+// KK Skeleton does not require neck adjustments for upper chest movement as the upper chest has a different scaling center system.
+
+ neckMotionSliderText.gameObject.SetActive(false);
+ NeckMotionSlider.gameObject.SetActive(false);
+
+#endif
+
// Clear controls
foreach (Transform child in BreathShapePanel.transform)
{
diff --git a/AdvIKPlugin/AdvIKHooks.cs b/AdvIKPlugin/AdvIKHooks.cs
index f4b5d2b..aa52a45 100644
--- a/AdvIKPlugin/AdvIKHooks.cs
+++ b/AdvIKPlugin/AdvIKHooks.cs
@@ -1,8 +1,13 @@
-using HarmonyLib;
+#if !KKS && !KOIKATSU
+using AIChara;
+#endif
+using HarmonyLib;
+using IllusionUtility.GetUtility;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
+using UnityEngine;
namespace AdvIKPlugin
{
diff --git a/AdvIKPlugin/AdvIKPlugin.cs b/AdvIKPlugin/AdvIKPlugin.cs
index f962d35..035b142 100644
--- a/AdvIKPlugin/AdvIKPlugin.cs
+++ b/AdvIKPlugin/AdvIKPlugin.cs
@@ -26,7 +26,7 @@ public partial class AdvIKPlugin : BaseUnityPlugin
{
public const string GUID = "orange.spork.advikplugin";
public const string PluginName = "AdvIKPlugin";
- public const string Version = "1.7.0";
+ public const string Version = "1.7.1";
public static AdvIKPlugin Instance { get; set; }
diff --git a/AdvIKPlugin/Algos/BreathingBoneEffect.cs b/AdvIKPlugin/Algos/BreathingBoneEffect.cs
index 9999186..13cb37e 100644
--- a/AdvIKPlugin/Algos/BreathingBoneEffect.cs
+++ b/AdvIKPlugin/Algos/BreathingBoneEffect.cs
@@ -177,7 +177,7 @@ public override BoneModifierData GetEffect(string bone, BoneController origin, C
newUpperChestPos.z = ((1 + newUpperChestPos.z) * appliedUpperBreathScale.z) - ((1 + newUpperChestPos.z));
newUpperChestPos.y = ((1 + newUpperChestPos.y) * appliedUpperBreathScale.y) - ((1 + newUpperChestPos.y));
- Vector3 newNeckPos = new Vector3(0, newUpperChestPos.y + (newUpperChestPos.y * NeckMotionDampeningFactor), 0);
+ Vector3 newNeckPos = new Vector3(0, (newUpperChestPos.y * NeckMotionDampeningFactor), 0);
// Same with lower chest
Vector3 newLowerChestPos = new Vector3(0, 0, 0);
@@ -285,12 +285,17 @@ public override BoneModifierData GetEffect(string bone, BoneController origin, C
}
else if (bone.Equals(Neck))
{
+#if KOIKATSU || KKS
+// Upper Chest doesn't move in KK so this isn't needed/useful.
+ return null;
+#else
// Looks like applying a 0 position offset to a bone with a length adjustment causes ABMX to incorrectly revert the length adjustment
// Work around by supplying a very small position offset instead
if (FrameEffects.NeckAdj.y == 0)
return UpdateBoneModifier(bone, Vector3.one, new Vector3(0f, 0.001f, 0f));
else
return UpdateBoneModifier(bone, Vector3.one, FrameEffects.NeckAdj);
+#endif
}
else
{
diff --git a/HS2_AdvIKPlugin/HS2_AdvIKPlugin.csproj b/HS2_AdvIKPlugin/HS2_AdvIKPlugin.csproj
index 89bf4b7..26eb82a 100644
--- a/HS2_AdvIKPlugin/HS2_AdvIKPlugin.csproj
+++ b/HS2_AdvIKPlugin/HS2_AdvIKPlugin.csproj
@@ -20,7 +20,7 @@
full
false
..\bin\
- DEBUG;TRACE
+ TRACE;DEBUG;HS2
prompt
4
@@ -28,9 +28,10 @@
none
true
..\bin\
- TRACE
+ TRACE;HS2
prompt
4
+ true