diff --git a/Anamnesis/Actor/Posing/Views/PoseBodyGUIView.xaml b/Anamnesis/Actor/Posing/Views/PoseBodyGUIView.xaml
index 9e65b02e..2bab7308 100644
--- a/Anamnesis/Actor/Posing/Views/PoseBodyGUIView.xaml
+++ b/Anamnesis/Actor/Posing/Views/PoseBodyGUIView.xaml
@@ -398,10 +398,10 @@
-
-
-
-
+
+
+
+
diff --git a/Anamnesis/Actor/Posing/Views/PoseFaceGUIView.xaml b/Anamnesis/Actor/Posing/Views/PoseFaceGUIView.xaml
index bcffa89d..17836e14 100644
--- a/Anamnesis/Actor/Posing/Views/PoseFaceGUIView.xaml
+++ b/Anamnesis/Actor/Posing/Views/PoseFaceGUIView.xaml
@@ -96,8 +96,8 @@
-
-
+
+
@@ -184,8 +184,8 @@
-
-
+
+
@@ -277,8 +277,8 @@
-
-
+
+
@@ -381,8 +381,8 @@
-
-
+
+
@@ -505,8 +505,8 @@
-
-
+
+
diff --git a/Anamnesis/Actor/Posing/Visuals/SkeletonVisual3d.cs b/Anamnesis/Actor/Posing/Visuals/SkeletonVisual3d.cs
index c5b807fe..628e5719 100644
--- a/Anamnesis/Actor/Posing/Visuals/SkeletonVisual3d.cs
+++ b/Anamnesis/Actor/Posing/Visuals/SkeletonVisual3d.cs
@@ -36,13 +36,13 @@ public class SkeletonVisual3d : ModelVisual3D, INotifyPropertyChanged
private readonly List mainHandBones = new List();
private readonly List offHandBones = new List();
- private readonly Dictionary hairNameToSuffixMap = new()
+ private readonly Dictionary> hairNameToSuffixMap = new()
{
- { "j_kami_f_l", "l" }, // Hair, Front Left
- { "j_kami_f_r", "r" }, // Hair, Front Right
- { "j_kami_a", "a" }, // Hair, Back Up
- { "j_kami_b", "b" }, // Hair, Back Down
- { "HairFront", "f" }, // Hair, Front (Custom Bone Name)
+ { "HairAutoFrontLeft", new("l", "j_kami_f_l") }, // Hair, Front Left
+ { "HairAutoFrontRight", new("r", "j_kami_f_r") }, // Hair, Front Right
+ { "HairAutoA", new("a", "j_kami_a") }, // Hair, Back Up
+ { "HairAutoB", new("b", "j_kami_b") }, // Hair, Back Down
+ { "HairFront", new("f", string.Empty) }, // Hair, Front (Custom Bone Name)
};
public SkeletonVisual3d()
@@ -365,11 +365,13 @@ public bool GetIsBoneParentsHovered(BoneVisual3d? bone)
BoneVisual3d? bone;
// Attempt to find hairstyle-specific bones. If not found, default to the standard hair bones.
- if (this.hairNameToSuffixMap.TryGetValue(name, out string? suffix))
+ if (this.hairNameToSuffixMap.TryGetValue(name, out Tuple? suffixAndDefault))
{
- bone = this.FindHairBoneByPattern(suffix);
+ bone = this.FindHairBoneByPattern(suffixAndDefault.Item1);
if (bone != null)
return bone;
+ else
+ name = suffixAndDefault.Item2; // If not found, default to the standard hair bones.
}
this.Bones.TryGetValue(name, out bone);