summaryrefslogtreecommitdiff
path: root/Assets/ThirdParty/VRM/VRM/UniHumanoid/PoseModifier/HandPose.cs
diff options
context:
space:
mode:
Diffstat (limited to 'Assets/ThirdParty/VRM/VRM/UniHumanoid/PoseModifier/HandPose.cs')
-rw-r--r--Assets/ThirdParty/VRM/VRM/UniHumanoid/PoseModifier/HandPose.cs185
1 files changed, 185 insertions, 0 deletions
diff --git a/Assets/ThirdParty/VRM/VRM/UniHumanoid/PoseModifier/HandPose.cs b/Assets/ThirdParty/VRM/VRM/UniHumanoid/PoseModifier/HandPose.cs
new file mode 100644
index 00000000..5c94664e
--- /dev/null
+++ b/Assets/ThirdParty/VRM/VRM/UniHumanoid/PoseModifier/HandPose.cs
@@ -0,0 +1,185 @@
+using System;
+using UnityEngine;
+
+
+namespace UniHumanoid
+{
+ public class HandPoseModifier : IPoseModifier
+ {
+ public class HandPose
+ {
+ [Obsolete("Use ThumbStretch")]
+ public float ThumbStrech { get { return ThumbStretch; } set { ThumbStretch = value; } }
+ public float ThumbStretch;
+ public float ThumbSpread;
+
+ [Obsolete("Use IndexStretch")]
+ public float IndexStrech { get { return IndexStretch; } set { IndexStretch = value; } }
+ public float IndexStretch;
+ public float IndexSpread;
+
+ [Obsolete("Use MiddleStretch")]
+ public float MiddleStrech { get { return MiddleStretch; } set { MiddleStretch = value; } }
+ public float MiddleStretch;
+ public float MiddleSpread;
+
+ [Obsolete("Use RingStretch")]
+ public float RingStrech { get { return RingStretch; } set { RingStretch = value; } }
+ public float RingStretch;
+ public float RingSpread;
+
+ [Obsolete("Use LittleStretch")]
+ public float LittleStrech { get { return LittleStretch; } set { LittleStretch = value; } }
+ public float LittleStretch;
+ public float LittleSpread;
+ }
+ public HandPose LeftHandPose
+ {
+ get;
+ set;
+ }
+ public HandPose RightHandPose
+ {
+ get;
+ set;
+ }
+
+ int LeftThumb1Stretched;
+ int LeftThumb2Stretched;
+ int LeftThumb3Stretched;
+ int LeftIndex1Stretched;
+ int LeftIndex2Stretched;
+ int LeftIndex3Stretched;
+ int LeftMiddle1Stretched;
+ int LeftMiddle2Stretched;
+ int LeftMiddle3Stretched;
+ int LeftRing1Stretched;
+ int LeftRing2Stretched;
+ int LeftRing3Stretched;
+ int LeftLittle1Stretched;
+ int LeftLittle2Stretched;
+ int LeftLittle3Stretched;
+ int LeftThumbSpread;
+ int LeftIndexSpread;
+ int LeftMiddleSpread;
+ int LeftRingSpread;
+ int LeftLittleSpread;
+
+ int RightThumb1Stretched;
+ int RightThumb2Stretched;
+ int RightThumb3Stretched;
+ int RightIndex1Stretched;
+ int RightIndex2Stretched;
+ int RightIndex3Stretched;
+ int RightMiddle1Stretched;
+ int RightMiddle2Stretched;
+ int RightMiddle3Stretched;
+ int RightRing1Stretched;
+ int RightRing2Stretched;
+ int RightRing3Stretched;
+ int RightLittle1Stretched;
+ int RightLittle2Stretched;
+ int RightLittle3Stretched;
+ int RightThumbSpread;
+ int RightIndexSpread;
+ int RightMiddleSpread;
+ int RightRingSpread;
+ int RightLittleSpread;
+
+ public HandPoseModifier()
+ {
+ LeftThumb1Stretched = Array.IndexOf(HumanTrait.MuscleName, "Left Thumb 1 Stretched");
+ LeftThumb2Stretched = Array.IndexOf(HumanTrait.MuscleName, "Left Thumb 2 Stretched");
+ LeftThumb3Stretched = Array.IndexOf(HumanTrait.MuscleName, "Left Thumb 3 Stretched");
+ LeftIndex1Stretched = Array.IndexOf(HumanTrait.MuscleName, "Left Index 1 Stretched");
+ LeftIndex2Stretched = Array.IndexOf(HumanTrait.MuscleName, "Left Index 2 Stretched");
+ LeftIndex3Stretched = Array.IndexOf(HumanTrait.MuscleName, "Left Index 3 Stretched");
+ LeftMiddle1Stretched = Array.IndexOf(HumanTrait.MuscleName, "Left Middle 1 Stretched");
+ LeftMiddle2Stretched = Array.IndexOf(HumanTrait.MuscleName, "Left Middle 2 Stretched");
+ LeftMiddle3Stretched = Array.IndexOf(HumanTrait.MuscleName, "Left Middle 3 Stretched");
+ LeftRing1Stretched = Array.IndexOf(HumanTrait.MuscleName, "Left Ring 1 Stretched");
+ LeftRing2Stretched = Array.IndexOf(HumanTrait.MuscleName, "Left Ring 2 Stretched");
+ LeftRing3Stretched = Array.IndexOf(HumanTrait.MuscleName, "Left Ring 3 Stretched");
+ LeftLittle1Stretched = Array.IndexOf(HumanTrait.MuscleName, "Left Little 1 Stretched");
+ LeftLittle2Stretched = Array.IndexOf(HumanTrait.MuscleName, "Left Little 2 Stretched");
+ LeftLittle3Stretched = Array.IndexOf(HumanTrait.MuscleName, "Left Little 3 Stretched");
+ LeftThumbSpread = Array.IndexOf(HumanTrait.MuscleName, "Left Thumb Spread");
+ LeftIndexSpread = Array.IndexOf(HumanTrait.MuscleName, "Left Index Spread");
+ LeftMiddleSpread = Array.IndexOf(HumanTrait.MuscleName, "Left Middle Spread");
+ LeftRingSpread = Array.IndexOf(HumanTrait.MuscleName, "Left Ring Spread");
+ LeftLittleSpread = Array.IndexOf(HumanTrait.MuscleName, "Left Little Spread");
+
+ RightThumb1Stretched = Array.IndexOf(HumanTrait.MuscleName, "Right Thumb 1 Stretched");
+ RightThumb2Stretched = Array.IndexOf(HumanTrait.MuscleName, "Right Thumb 2 Stretched");
+ RightThumb3Stretched = Array.IndexOf(HumanTrait.MuscleName, "Right Thumb 3 Stretched");
+ RightIndex1Stretched = Array.IndexOf(HumanTrait.MuscleName, "Right Index 1 Stretched");
+ RightIndex2Stretched = Array.IndexOf(HumanTrait.MuscleName, "Right Index 2 Stretched");
+ RightIndex3Stretched = Array.IndexOf(HumanTrait.MuscleName, "Right Index 3 Stretched");
+ RightMiddle1Stretched = Array.IndexOf(HumanTrait.MuscleName, "Right Middle 1 Stretched");
+ RightMiddle2Stretched = Array.IndexOf(HumanTrait.MuscleName, "Right Middle 2 Stretched");
+ RightMiddle3Stretched = Array.IndexOf(HumanTrait.MuscleName, "Right Middle 3 Stretched");
+ RightRing1Stretched = Array.IndexOf(HumanTrait.MuscleName, "Right Ring 1 Stretched");
+ RightRing2Stretched = Array.IndexOf(HumanTrait.MuscleName, "Right Ring 2 Stretched");
+ RightRing3Stretched = Array.IndexOf(HumanTrait.MuscleName, "Right Ring 3 Stretched");
+ RightLittle1Stretched = Array.IndexOf(HumanTrait.MuscleName, "Right Little 1 Stretched");
+ RightLittle2Stretched = Array.IndexOf(HumanTrait.MuscleName, "Right Little 2 Stretched");
+ RightLittle3Stretched = Array.IndexOf(HumanTrait.MuscleName, "Right Little 3 Stretched");
+ RightThumbSpread = Array.IndexOf(HumanTrait.MuscleName, "Right Thumb Spread");
+ RightIndexSpread = Array.IndexOf(HumanTrait.MuscleName, "Right Index Spread");
+ RightMiddleSpread = Array.IndexOf(HumanTrait.MuscleName, "Right Middle Spread");
+ RightRingSpread = Array.IndexOf(HumanTrait.MuscleName, "Right Ring Spread");
+ RightLittleSpread = Array.IndexOf(HumanTrait.MuscleName, "Right Little Spread");
+ }
+
+ public void Modify(ref HumanPose pose)
+ {
+ if (LeftHandPose != null)
+ {
+ pose.muscles[this.LeftThumb1Stretched] = LeftHandPose.ThumbStretch;
+ pose.muscles[this.LeftThumb2Stretched] = LeftHandPose.ThumbStretch;
+ pose.muscles[this.LeftThumb3Stretched] = LeftHandPose.ThumbStretch;
+ pose.muscles[this.LeftIndex1Stretched] = LeftHandPose.IndexStretch;
+ pose.muscles[this.LeftIndex2Stretched] = LeftHandPose.IndexStretch;
+ pose.muscles[this.LeftIndex3Stretched] = LeftHandPose.IndexStretch;
+ pose.muscles[this.LeftMiddle1Stretched] = LeftHandPose.MiddleStretch;
+ pose.muscles[this.LeftMiddle2Stretched] = LeftHandPose.MiddleStretch;
+ pose.muscles[this.LeftMiddle3Stretched] = LeftHandPose.MiddleStretch;
+ pose.muscles[this.LeftRing1Stretched] = LeftHandPose.RingStretch;
+ pose.muscles[this.LeftRing2Stretched] = LeftHandPose.RingStretch;
+ pose.muscles[this.LeftRing3Stretched] = LeftHandPose.RingStretch;
+ pose.muscles[this.LeftLittle1Stretched] = LeftHandPose.LittleStretch;
+ pose.muscles[this.LeftLittle2Stretched] = LeftHandPose.LittleStretch;
+ pose.muscles[this.LeftLittle3Stretched] = LeftHandPose.LittleStretch;
+ pose.muscles[this.LeftThumbSpread] = LeftHandPose.ThumbSpread;
+ pose.muscles[this.LeftIndexSpread] = LeftHandPose.IndexSpread;
+ pose.muscles[this.LeftMiddleSpread] = LeftHandPose.MiddleSpread;
+ pose.muscles[this.LeftRingSpread] = LeftHandPose.RingSpread;
+ pose.muscles[this.LeftLittleSpread] = LeftHandPose.LittleSpread;
+ }
+
+ if (RightHandPose != null)
+ {
+ pose.muscles[this.RightThumb1Stretched] = RightHandPose.ThumbStretch;
+ pose.muscles[this.RightThumb2Stretched] = RightHandPose.ThumbStretch;
+ pose.muscles[this.RightThumb3Stretched] = RightHandPose.ThumbStretch;
+ pose.muscles[this.RightIndex1Stretched] = RightHandPose.IndexStretch;
+ pose.muscles[this.RightIndex2Stretched] = RightHandPose.IndexStretch;
+ pose.muscles[this.RightIndex3Stretched] = RightHandPose.IndexStretch;
+ pose.muscles[this.RightMiddle1Stretched] = RightHandPose.MiddleStretch;
+ pose.muscles[this.RightMiddle2Stretched] = RightHandPose.MiddleStretch;
+ pose.muscles[this.RightMiddle3Stretched] = RightHandPose.MiddleStretch;
+ pose.muscles[this.RightRing1Stretched] = RightHandPose.RingStretch;
+ pose.muscles[this.RightRing2Stretched] = RightHandPose.RingStretch;
+ pose.muscles[this.RightRing3Stretched] = RightHandPose.RingStretch;
+ pose.muscles[this.RightLittle1Stretched] = RightHandPose.LittleStretch;
+ pose.muscles[this.RightLittle2Stretched] = RightHandPose.LittleStretch;
+ pose.muscles[this.RightLittle3Stretched] = RightHandPose.LittleStretch;
+ pose.muscles[this.RightThumbSpread] = RightHandPose.ThumbSpread;
+ pose.muscles[this.RightIndexSpread] = RightHandPose.IndexSpread;
+ pose.muscles[this.RightMiddleSpread] = RightHandPose.MiddleSpread;
+ pose.muscles[this.RightRingSpread] = RightHandPose.RingSpread;
+ pose.muscles[this.RightLittleSpread] = RightHandPose.LittleSpread;
+ }
+ }
+ }
+}