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);