Skip to content

Commit db8e10b

Browse files
committed
Unknown changes
It's been six months since I touched this, but I forgot to commit and I have no idea what these un-committed changes I made are for. My bad.
1 parent f5eb476 commit db8e10b

8 files changed

Lines changed: 239 additions & 53 deletions

File tree

ButtJiggle/ButtJiggle.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -55,7 +55,7 @@ public static class PluginInfo
5555
// The name of this plugin.
5656
public const string PLUGIN_NAME = "Butt Jiggle";
5757
// The version of this plugin.
58-
public const string PLUGIN_VERSION = "0.6";
58+
public const string PLUGIN_VERSION = "0.7";
5959
}
6060
}
6161

ButtJiggle/ButtJiggle.csproj

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -86,8 +86,12 @@
8686
<Compile Include="JiggleBoneOverride.cs" />
8787
<Compile Include="Properties\AssemblyInfo.cs" />
8888
<Compile Include="ButtJiggle.cs" />
89+
<Compile Include="SphereRenderer.cs" />
8990
<Compile Include="TBodyPatch.cs" />
9091
</ItemGroup>
92+
<ItemGroup>
93+
<Service Include="{508349B6-6B84-4DF5-91F0-309BEEBAD82D}" />
94+
</ItemGroup>
9195
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
9296
<PropertyGroup>
9397
<PostBuildEvent>

ButtJiggle/ButtJiggleUI.cs

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -106,8 +106,8 @@ internal class PluginPanel : PanelBase
106106
public PluginPanel(UIBase owner) : base(owner) { }
107107

108108
public override string Name => PluginInfo.PLUGIN_NAME;
109-
public override int MinWidth => 100;
110-
public override int MinHeight => 200;
109+
public override int MinWidth => 400;
110+
public override int MinHeight => 500;
111111
public override Vector2 DefaultAnchorMin => new(0.25f, 0.25f);
112112
public override Vector2 DefaultAnchorMax => DefaultAnchorMin;
113113
public override bool CanDragAndResize => true;
@@ -125,7 +125,7 @@ protected override void ConstructPanelContent()
125125
CreateControl(ContentRoot, "Debug Mode", get: () => JiggleBoneHelper.DebugMode, set: (value) => JiggleBoneHelper.DebugMode = value);
126126

127127
var overrideColumn = UIFactory.CreateVerticalGroup(ContentRoot, "overrides", false, false, true, true, childAlignment: TextAnchor.UpperLeft);
128-
UIFactory.SetLayoutElement(overrideColumn, minWidth: 200, minHeight: 25);
128+
UIFactory.SetLayoutElement(overrideColumn, minWidth: 300, minHeight: 300);
129129
{
130130
CreateControl(overrideColumn, "Use Global Override",
131131
get: () => JiggleBoneHelper.UseGlobalOverride,
@@ -145,7 +145,6 @@ protected override void ConstructPanelContent()
145145
CreateControl(overrideColumn, "Enable Scale X" , get: () => JiggleBoneHelper.GlobalOverride.EnableScaleX , set: (value) => JiggleBoneHelper.GlobalOverride.EnableScaleX = value);
146146
CreateControl(overrideColumn, "Limit Rotation" , get: () => JiggleBoneHelper.GlobalOverride.LimitRotation , set: (value) => JiggleBoneHelper.GlobalOverride.LimitRotation = value);
147147
CreateControl(overrideColumn, "Limit Rot Decay" , get: () => JiggleBoneHelper.GlobalOverride.LimitRotDecay , set: (value) => JiggleBoneHelper.GlobalOverride.LimitRotDecay = value);
148-
CreateControl(overrideColumn, "Test Control" , get: () => JiggleBoneHelper.GlobalOverride.ClothedStiffness.Value, set: (value) => JiggleBoneHelper.GlobalOverride.ClothedStiffness.Value = value);
149148
}
150149
}
151150

ButtJiggle/JiggleBoneHelper.cs

Lines changed: 119 additions & 36 deletions
Original file line numberDiff line numberDiff line change
@@ -1,30 +1,44 @@
11
using Mono.Cecil;
2+
using RenderHeads.Media.AVProVideo;
23
using System;
34
using System.Collections.Generic;
45
using System.Linq;
56
using System.Text;
67
using TriLib;
78
using UnityEngine;
89
using UnityEngine.SocialPlatforms;
10+
using static MathCM;
911
using static RootMotion.FinalIK.IKSolver;
1012

1113
namespace COM3D2.ButtJiggle
1214
{
1315
public class JiggleBoneHelper : MonoBehaviour
1416
{
15-
public Transform TargetBone;
16-
public Transform OutputBone;
17-
public jiggleBone JiggleBone;
1817
public bool IsChangeCheck = false;
19-
18+
19+
[SerializeField] private TBody m_TBody;
20+
21+
public Transform TargetBone;
22+
public jiggleBone Jiggle;
23+
24+
public Transform JiggleBone => Jiggle.transform;
25+
[SerializeField] private Transform m_JiggleSubBone;
26+
[SerializeField] private Transform m_JiggleOutputBone;
27+
28+
[SerializeField] private Transform m_HitParent;
29+
[SerializeField] private Transform m_HitChild;
30+
[SerializeField] private SphereCollider m_HitChildCollider;
31+
32+
2033
public static bool UseGlobalOverride = false;
2134
public static JiggleBoneOverride GlobalOverride = JiggleBoneOverride.None;
2235

2336
public static bool DebugMode = false;
24-
private LineRenderer[] m_LineRenderers = new LineRenderer[5];
37+
[SerializeField] private LineRenderer[] m_LineRenderers = new LineRenderer[5];
38+
[SerializeField] private SphereRenderer m_SphereRenderer;
2539
private static Material m_DebugMaterial;
2640

27-
public static JiggleBoneHelper CreateFromBone(Transform targetBone)
41+
public static JiggleBoneHelper CreateFromBone(Transform targetBone, TBody tbody)
2842
{
2943

3044
var helperBone = CopyBone(targetBone, targetBone.name + "_helper");
@@ -47,10 +61,34 @@ public static JiggleBoneHelper CreateFromBone(Transform targetBone)
4761
jb.MuneYori = 0;
4862
jb.m_fMuneYawaraka = ButtJiggle.ButtJiggle_DefaultSoftness.Value;
4963

64+
5065
var helper = helperBone.gameObject.AddComponent<JiggleBoneHelper>();
5166
helper.TargetBone = targetBone;
52-
helper.OutputBone = outputBone;
53-
helper.JiggleBone = jb;
67+
helper.Jiggle = jb;
68+
helper.m_JiggleSubBone = subBone;
69+
helper.m_JiggleOutputBone = outputBone;
70+
helper.m_TBody = tbody;
71+
72+
if (GameMain.Instance.VRMode || true)
73+
{
74+
Transform hitParent = GameObject.Instantiate<GameObject>(Resources.Load<GameObject>("OVR/SphereParent"))?.transform;
75+
Transform hitChild = GameObject.Instantiate<GameObject>(Resources.Load<GameObject>("OVR/SphereChild" ))?.transform;
76+
hitChild.GetComponent<SpringJoint>().connectedBody = hitParent.GetComponent<Rigidbody>();
77+
hitParent.parent = helper.JiggleBone;
78+
hitChild .parent = helper.JiggleBone;
79+
hitParent.localPosition = helper.m_JiggleSubBone.localPosition;
80+
hitChild .localPosition = helper.m_JiggleSubBone.localPosition;
81+
82+
helper.m_HitParent = hitParent;
83+
helper.m_HitChild = hitChild ;
84+
helper.m_HitChildCollider = hitChild.GetComponent<SphereCollider>();
85+
var center = new Vector3(0.3f, 0.1f, -0.7f);
86+
if (targetBone.name.Contains("_R"))
87+
{
88+
center.x *= -1;
89+
}
90+
helper.m_HitChildCollider.center = center;
91+
}
5492

5593
return helper;
5694
}
@@ -61,6 +99,30 @@ void Start()
6199
{
62100
m_LineRenderers[i] = CreateLineRenderer();
63101
}
102+
103+
if (m_HitChild != null)
104+
{
105+
m_SphereRenderer = m_HitChild.gameObject.AddComponent<SphereRenderer>();
106+
m_SphereRenderer.Material = m_DebugMaterial;
107+
}
108+
}
109+
110+
public void Update()
111+
{
112+
float limitDistance = m_TBody.m_fHitLimitDistanceMin + (m_TBody.m_fHitLimitDistanceMax - m_TBody.m_fHitLimitDistanceMin) * (Jiggle.BlendValue / 1.3f);
113+
if (m_JiggleSubBone != null && m_HitChild != null)
114+
{
115+
Vector3 hitChildLocalPos = JiggleBone.InverseTransformPoint(m_HitChild.position);
116+
if ((hitChildLocalPos - m_HitParent.localPosition).magnitude < limitDistance)
117+
{
118+
m_JiggleSubBone.localPosition = hitChildLocalPos;
119+
}
120+
else
121+
{
122+
m_JiggleSubBone.localPosition = m_HitParent.localPosition + (hitChildLocalPos - m_HitParent.localPosition).normalized * limitDistance;
123+
m_HitChild.position = m_JiggleSubBone.position;
124+
}
125+
}
64126
}
65127

66128
public void LateUpdateSelf()
@@ -69,27 +131,29 @@ public void LateUpdateSelf()
69131

70132
if (IsChangeCheck) ApplyChanges();
71133

72-
CopyLocalTransform(this.transform, JiggleBone.transform);
73-
JiggleBone.defQtn = this.transform.localRotation;
134+
CopyLocalTransform(this.transform, Jiggle.transform);
135+
Jiggle.defQtn = this.transform.localRotation;
74136

75137
if (UseGlobalOverride)
76138
{
77139
//ButtJiggle.Logger.LogInfo("Use Global Override!");
78-
var origValues = JiggleBoneOverride.From(JiggleBone);
79-
GlobalOverride.ApplyTo(JiggleBone);
80-
JiggleBone.LateUpdateSelf();
81-
origValues.ApplyTo(JiggleBone);
140+
var origValues = JiggleBoneOverride.From(Jiggle);
141+
GlobalOverride.ApplyTo(Jiggle);
142+
Jiggle.LateUpdateSelf();
143+
origValues.ApplyTo(Jiggle);
82144
}
83145
else
84146
{
85-
JiggleBone.LateUpdateSelf();
147+
Jiggle.LateUpdateSelf();
86148
}
87-
CopyTransform(OutputBone.transform, TargetBone);
88-
TargetBone.localScale = Vector3.Scale(JiggleBone.transform.localScale, this.transform.localScale);
149+
CopyTransform(m_JiggleOutputBone.transform, TargetBone);
150+
TargetBone.localScale = Vector3.Scale(Jiggle.transform.localScale, this.transform.localScale);
89151

90152
DebugDraw();
91153
}
92154

155+
156+
93157
private static Transform CopyBone(Transform bone, string name)
94158
{
95159
Transform newBone = new GameObject(name).transform;
@@ -142,31 +206,40 @@ public void CopyLocalTransformFromBone()
142206

143207
private void DebugDraw()
144208
{
145-
if (!DebugMode && !JiggleBone.debugMode)
209+
if (!DebugMode && !Jiggle.debugMode)
146210
{
147211
foreach (var lineRenderer in m_LineRenderers)
148212
{
149213
lineRenderer.enabled = false;
150214
}
215+
if (m_SphereRenderer != null)
216+
{
217+
m_SphereRenderer.enabled = false;
218+
}
151219
return;
152220
}
153221

154-
Quaternion origRotation = JiggleBone.transform.localRotation;
155-
JiggleBone.transform.localRotation = JiggleBone.defQtn;
222+
Quaternion origRotation = Jiggle.transform.localRotation;
223+
Jiggle.transform.localRotation = Jiggle.defQtn;
156224

157-
Vector3 localForward = JiggleBone.boneAxis * JiggleBone.targetDistance;
158-
Vector3 boneForward = JiggleBone.transform.TransformDirection(localForward);
159-
Vector3 boneUp = JiggleBone.transform.TransformDirection(Vector3.up);
160-
Vector3 lookTarget = JiggleBone.transform.position + boneForward;
225+
Vector3 localForward = Jiggle.boneAxis * Jiggle.targetDistance;
226+
Vector3 boneForward = Jiggle.transform.TransformDirection(localForward);
227+
Vector3 boneUp = Jiggle.transform.TransformDirection(Vector3.up);
228+
Vector3 lookTarget = Jiggle.transform.position + boneForward;
161229

162-
JiggleBone.transform.localRotation = origRotation;
230+
Jiggle.transform.localRotation = origRotation;
163231

164-
DrawRay(0, JiggleBone.transform.position, boneForward, Color.blue);
165-
DrawRay(1, JiggleBone.transform.position, boneUp * 0.2f, Color.green);
232+
DrawRay(0, Jiggle.transform.position, boneForward, Color.blue);
233+
DrawRay(1, Jiggle.transform.position, boneUp * 0.2f, Color.green);
166234
DrawRay(2, lookTarget, Vector3.up * 0.2f, Color.yellow);
167-
DrawRay(3, JiggleBone.dynamicPos, Vector3.up * 0.2f, Color.red);
235+
DrawRay(3, Jiggle.dynamicPos, Vector3.up * 0.2f, Color.red);
168236

169237
DrawBone(4, TargetBone, Color.white);
238+
239+
if (m_HitChildCollider != null)
240+
{
241+
DrawSphereCollider(m_HitChildCollider, Color.green);
242+
}
170243
}
171244

172245
private LineRenderer CreateLineRenderer()
@@ -197,19 +270,15 @@ private static Material CreateMaterial()
197270
{
198271
Shader shader = Shader.Find("Hidden/Internal-Colored");
199272

200-
201-
var lineTexture = Resources.Load<Texture>("SteamVR/ArcTeleport");
202-
//var grayTexture = Resources.Load<Shader>("SteamVR/ArcTeleport_Gray");
203-
204273
Material material = new Material(shader)
205274
{
206275
hideFlags = HideFlags.HideAndDontSave
207276
};
208-
material.SetInt("_ZTest", 0);
209-
material.SetInt("_SrcBlend", 5);
277+
material.SetInt("_ZTest" , 0);
278+
material.SetInt("_SrcBlend", 5);
210279
material.SetInt("_DstBlend", 10);
211-
material.SetInt("_Cull", 0);
212-
material.SetInt("_ZWrite", 0);
280+
material.SetInt("_Cull" , 0);
281+
material.SetInt("_ZWrite" , 0);
213282
material.renderQueue = 5000;
214283
//material.color = this.lineColor;
215284
return material;
@@ -238,5 +307,19 @@ private void DrawRay(int lineIndex, Vector3 start, Vector3 dir, Color color)
238307

239308
line.SetPositions(new Vector3[] { start, start + dir });
240309
}
310+
311+
private void DrawSphereCollider(SphereCollider sphereCollider, Color color)
312+
{
313+
if (m_SphereRenderer == null)
314+
{
315+
ButtJiggle.Logger.LogError($"{this}.m_SphereRenderer == null");
316+
return;
317+
}
318+
319+
m_SphereRenderer.enabled = true;
320+
m_SphereRenderer.Radius = sphereCollider.radius;
321+
m_SphereRenderer.Center = sphereCollider.center;
322+
m_SphereRenderer.Color = color;
323+
}
241324
}
242325
}

ButtJiggle/JiggleBoneOverride.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22

33
namespace COM3D2.ButtJiggle
44
{
5-
public struct JiggleBoneOverride
5+
public struct JiggleBoneOverride
66
{
77
public Override<float > BlendValue ;
88
public Override<float > BlendValue2 ;

ButtJiggle/Properties/AssemblyInfo.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -32,4 +32,4 @@
3232
// You can specify all the values or you can default the Build and Revision Numbers
3333
// by using the '*' as shown below:
3434
// [assembly: AssemblyVersion("1.0.*")]
35-
[assembly: AssemblyFileVersion("1.0.0.0")]
35+
//[assembly: AssemblyFileVersion("1.0.0.0")]

0 commit comments

Comments
 (0)