diff --git a/Packages/nadena.dev.modular-avatar/Editor/HeuristicBoneMapper.cs b/Packages/nadena.dev.modular-avatar/Editor/HeuristicBoneMapper.cs index 81ab6fd5..3e821039 100644 --- a/Packages/nadena.dev.modular-avatar/Editor/HeuristicBoneMapper.cs +++ b/Packages/nadena.dev.modular-avatar/Editor/HeuristicBoneMapper.cs @@ -10,62 +10,65 @@ namespace nadena.dev.modular_avatar.core.editor // This list is originally from https://github.com/HhotateA/AvatarModifyTools/blob/d8ae75fed8577707253d6b63a64d6053eebbe78b/Assets/HhotateA/AvatarModifyTool/Editor/EnvironmentVariable.cs#L81-L139 // Copyright (c) 2021 @HhotateA_xR // Licensed under the MIT License + // In addition, some part is copied from from https://github.com/Azukimochi/BoneRenamer/blob/e9f68acd631d2a0fc3d8b382d361649ac971e988/BoneRenamer/Editor/BoneNames.xml + // Copyright (c) 2023 Azukimochi + // Licensed under the MIT License private static string[][] boneNamePatterns = new[] { new[] {"Hips", "Hip"}, - new[] {"LeftUpperLeg", "UpperLeg_Left", "UpperLeg_L", "Leg_Left", "Leg_L", "ULeg_L"}, - new[] {"RightUpperLeg", "UpperLeg_Right", "UpperLeg_R", "Leg_Right", "Leg_R", "ULeg_R"}, - new[] {"LeftLowerLeg", "LowerLeg_Left", "LowerLeg_L", "Knee_Left", "Knee_L", "LLeg_L"}, - new[] {"RightLowerLeg", "LowerLeg_Right", "LowerLeg_R", "Knee_Right", "Knee_R", "LLeg_R"}, - new[] {"LeftFoot", "Foot_Left", "Foot_L"}, - new[] {"RightFoot", "Foot_Right", "Foot_R"}, + new[] {"LeftUpperLeg", "UpperLeg_Left", "UpperLeg_L", "Leg_Left", "Leg_L", "ULeg_L", "Left leg", "LeftUpLeg"}, + new[] {"RightUpperLeg", "UpperLeg_Right", "UpperLeg_R", "Leg_Right", "Leg_R", "ULeg_R", "Right leg", "RightUpLeg"}, + new[] {"LeftLowerLeg", "LowerLeg_Left", "LowerLeg_L", "Knee_Left", "Knee_L", "LLeg_L", "Left knee", "LeftLeg"}, + new[] {"RightLowerLeg", "LowerLeg_Right", "LowerLeg_R", "Knee_Right", "Knee_R", "LLeg_R", "Right knee", "RightLeg"}, + new[] {"LeftFoot", "Foot_Left", "Foot_L", "Foot.L.001", "Left ankle"}, + new[] {"RightFoot", "Foot_Right", "Foot_R", "Foot.R.001", "Right ankle"}, new[] {"Spine"}, new[] {"Chest", "Bust"}, new[] {"Neck"}, new[] {"Head"}, new[] {"LeftShoulder", "Shoulder_Left", "Shoulder_L"}, new[] {"RightShoulder", "Shoulder_Right", "Shoulder_R"}, - new[] {"LeftUpperArm", "UpperArm_Left", "UpperArm_L", "Arm_Left", "Arm_L", "UArm_L"}, - new[] {"RightUpperArm", "UpperArm_Right", "UpperArm_R", "Arm_Right", "Arm_R", "UArm_R"}, - new[] {"LeftLowerArm", "LowerArm_Left", "LowerArm_L", "LArm_L"}, - new[] {"RightLowerArm", "LowerArm_Right", "LowerArm_R", "LArm_R"}, - new[] {"LeftHand", "Hand_Left", "Hand_L"}, - new[] {"RightHand", "Hand_Right", "Hand_R"}, - new[] {"LeftToes", "Toes_Left", "Toe_Left", "ToeIK_L", "Toes_L", "Toe_L"}, - new[] {"RightToes", "Toes_Right", "Toe_Right", "ToeIK_R", "Toes_R", "Toe_R"}, + new[] {"LeftUpperArm", "UpperArm_Left", "UpperArm_L", "Arm_Left", "Arm_L", "UArm_L", "Left arm", "UpperLeftArm"}, + new[] {"RightUpperArm", "UpperArm_Right", "UpperArm_R", "Arm_Right", "Arm_R", "UArm_R", "Right arm", "UpperRightArm"}, + new[] {"LeftLowerArm", "LowerArm_Left", "LowerArm_L", "LArm_L", "Left elbow", "LeftForeArm"}, + new[] {"RightLowerArm", "LowerArm_Right", "LowerArm_R", "LArm_R", "Right elbow", "RightForeArm"}, + new[] {"LeftHand", "Hand_Left", "Hand_L", "Left wrist", "Wrist_L"}, + new[] {"RightHand", "Hand_Right", "Hand_R", "Right wrist", "Wrist_R"}, + new[] {"LeftToes", "Toes_Left", "Toe_Left", "ToeIK_L", "Toes_L", "Toe_L", "Foot.L.002", "Left Toe", "LeftToeBase"}, + new[] {"RightToes", "Toes_Right", "Toe_Right", "ToeIK_R", "Toes_R", "Toe_R", "Foot.R.002", "Right Toe", "RightToeBase"}, new[] {"LeftEye", "Eye_Left", "Eye_L"}, new[] {"RightEye", "Eye_Right", "Eye_R"}, new[] {"Jaw"}, - new[] {"LeftThumbProximal", "ProximalThumb_Left", "ProximalThumb_L", "Thumb1_L"}, - new[] {"LeftThumbIntermediate", "IntermediateThumb_Left", "IntermediateThumb_L", "Thumb2_L"}, - new[] {"LeftThumbDistal", "DistalThumb_Left", "DistalThumb_L", "Thumb3_L"}, - new[] {"LeftIndexProximal", "ProximalIndex_Left", "ProximalIndex_L", "Index1_L"}, - new[] {"LeftIndexIntermediate", "IntermediateIndex_Left", "IntermediateIndex_L", "Index2_L"}, - new[] {"LeftIndexDistal", "DistalIndex_Left", "DistalIndex_L", "Index3_L"}, - new[] {"LeftMiddleProximal", "ProximalMiddle_Left", "ProximalMiddle_L", "Middle1_L"}, - new[] {"LeftMiddleIntermediate", "IntermediateMiddle_Left", "IntermediateMiddle_L", "Middle2_L"}, - new[] {"LeftMiddleDistal", "DistalMiddle_Left", "DistalMiddle_L", "Middle3_L"}, - new[] {"LeftRingProximal", "ProximalRing_Left", "ProximalRing_L", "Ring1_L"}, - new[] {"LeftRingIntermediate", "IntermediateRing_Left", "IntermediateRing_L", "Ring2_L"}, - new[] {"LeftRingDistal", "DistalRing_Left", "DistalRing_L", "Ring3_L"}, - new[] {"LeftLittleProximal", "ProximalLittle_Left", "ProximalLittle_L", "Little1_L"}, - new[] {"LeftLittleIntermediate", "IntermediateLittle_Left", "IntermediateLittle_L", "Little2_L"}, - new[] {"LeftLittleDistal", "DistalLittle_Left", "DistalLittle_L", "Little3_L"}, - new[] {"RightThumbProximal", "ProximalThumb_Right", "ProximalThumb_R", "Thumb1_R"}, - new[] {"RightThumbIntermediate", "IntermediateThumb_Right", "IntermediateThumb_R", "Thumb2_R"}, - new[] {"RightThumbDistal", "DistalThumb_Right", "DistalThumb_R", "Thumb3_R"}, - new[] {"RightIndexProximal", "ProximalIndex_Right", "ProximalIndex_R", "Index1_R"}, - new[] {"RightIndexIntermediate", "IntermediateIndex_Right", "IntermediateIndex_R", "Index2_R"}, - new[] {"RightIndexDistal", "DistalIndex_Right", "DistalIndex_R", "Index3_R"}, - new[] {"RightMiddleProximal", "ProximalMiddle_Right", "ProximalMiddle_R", "Middle1_R"}, - new[] {"RightMiddleIntermediate", "IntermediateMiddle_Right", "IntermediateMiddle_R", "Middle2_R"}, - new[] {"RightMiddleDistal", "DistalMiddle_Right", "DistalMiddle_R", "Middle3_R"}, - new[] {"RightRingProximal", "ProximalRing_Right", "ProximalRing_R", "Ring1_R"}, - new[] {"RightRingIntermediate", "IntermediateRing_Right", "IntermediateRing_R", "Ring2_R"}, - new[] {"RightRingDistal", "DistalRing_Right", "DistalRing_R", "Ring3_R"}, - new[] {"RightLittleProximal", "ProximalLittle_Right", "ProximalLittle_R", "Little1_R"}, - new[] {"RightLittleIntermediate", "IntermediateLittle_Right", "IntermediateLittle_R", "Little2_R"}, - new[] {"RightLittleDistal", "DistalLittle_Right", "DistalLittle_R", "Little3_R"}, + new[] {"LeftThumbProximal", "ProximalThumb_Left", "ProximalThumb_L", "Thumb1_L", "RightHandThumb1", "Thumb Proximal.R", "Thunb1_R"}, + new[] {"LeftThumbIntermediate", "IntermediateThumb_Left", "IntermediateThumb_L", "Thumb2_L", "RightHandThumb2", "Thumb Intermediate.R", "Thunb2_R"}, + new[] {"LeftThumbDistal", "DistalThumb_Left", "DistalThumb_L", "Thumb3_L", "RightHandThumb3", "Thumb Distal.R", "Thunb3_R"}, + new[] {"LeftIndexProximal", "ProximalIndex_Left", "ProximalIndex_L", "Index1_L", "RightHandIndex1", "Index Proximal.R"}, + new[] {"LeftIndexIntermediate", "IntermediateIndex_Left", "IntermediateIndex_L", "Index2_L", "RightHandIndex2", "Index Intermediate.R"}, + new[] {"LeftIndexDistal", "DistalIndex_Left", "DistalIndex_L", "Index3_L", "RightHandIndex3", "Index Distal.R"}, + new[] {"LeftMiddleProximal", "ProximalMiddle_Left", "ProximalMiddle_L", "Middle1_L", "RightHandMiddle1", "Middle Proximal.R"}, + new[] {"LeftMiddleIntermediate", "IntermediateMiddle_Left", "IntermediateMiddle_L", "Middle2_L", "RightHandMiddle2", "Middle Intermediate.R"}, + new[] {"LeftMiddleDistal", "DistalMiddle_Left", "DistalMiddle_L", "Middle3_L", "RightHandMiddle3", "Middle Distal.R"}, + new[] {"LeftRingProximal", "ProximalRing_Left", "ProximalRing_L", "Ring1_L", "RightHandRing1", "Ring Proximal.R"}, + new[] {"LeftRingIntermediate", "IntermediateRing_Left", "IntermediateRing_L", "Ring2_L", "RightHandRing2", "Ring Intermediate.R"}, + new[] {"LeftRingDistal", "DistalRing_Left", "DistalRing_L", "Ring3_L", "RightHandRing3", "Ring Distal.R"}, + new[] {"LeftLittleProximal", "ProximalLittle_Left", "ProximalLittle_L", "Little1_L", "RightHandPinky1", "Little Proximal.R"}, + new[] {"LeftLittleIntermediate", "IntermediateLittle_Left", "IntermediateLittle_L", "Little2_L", "RightHandPinky2", "Little Intermediate.R"}, + new[] {"LeftLittleDistal", "DistalLittle_Left", "DistalLittle_L", "Little3_L", "RightHandPinky3", "Little Distal.R"}, + new[] {"RightThumbProximal", "ProximalThumb_Right", "ProximalThumb_R", "Thumb1_R", "LeftHandThumb1", "Thumb Proximal.L", "Thunb1_L"}, + new[] {"RightThumbIntermediate", "IntermediateThumb_Right", "IntermediateThumb_R", "Thumb2_R", "LeftHandThumb2", "Thumb Intermediate.L", "Thunb2_L"}, + new[] {"RightThumbDistal", "DistalThumb_Right", "DistalThumb_R", "Thumb3_R", "LeftHandThumb3", "Thumb Distal.L", "Thunb3_L"}, + new[] {"RightIndexProximal", "ProximalIndex_Right", "ProximalIndex_R", "Index1_R", "LeftHandIndex1", "Index Proximal.L"}, + new[] {"RightIndexIntermediate", "IntermediateIndex_Right", "IntermediateIndex_R", "Index2_R", "LeftHandIndex2", "Index Intermediate.L"}, + new[] {"RightIndexDistal", "DistalIndex_Right", "DistalIndex_R", "Index3_R", "LeftHandIndex3", "Index Distal.L"}, + new[] {"RightMiddleProximal", "ProximalMiddle_Right", "ProximalMiddle_R", "Middle1_R", "LeftHandMiddle1", "Middle Proximal.L"}, + new[] {"RightMiddleIntermediate", "IntermediateMiddle_Right", "IntermediateMiddle_R", "Middle2_R", "LeftHandMiddle2", "Middle Intermediate.L"}, + new[] {"RightMiddleDistal", "DistalMiddle_Right", "DistalMiddle_R", "Middle3_R", "LeftHandMiddle3", "Middle Distal.L"}, + new[] {"RightRingProximal", "ProximalRing_Right", "ProximalRing_R", "Ring1_R", "LeftHandRing1", "Ring Proximal.L"}, + new[] {"RightRingIntermediate", "IntermediateRing_Right", "IntermediateRing_R", "Ring2_R", "LeftHandRing2", "Ring Intermediate.L"}, + new[] {"RightRingDistal", "DistalRing_Right", "DistalRing_R", "Ring3_R", "LeftHandRing3", "Ring Distal.L"}, + new[] {"RightLittleProximal", "ProximalLittle_Right", "ProximalLittle_R", "Little1_R", "LeftHandPinky1", "Little Proximal.L"}, + new[] {"RightLittleIntermediate", "IntermediateLittle_Right", "IntermediateLittle_R", "Little2_R", "LeftHandPinky2", "Little Intermediate.L"}, + new[] {"RightLittleDistal", "DistalLittle_Right", "DistalLittle_R", "Little3_R", "LeftHandPinky3", "Little Distal.L"}, new[] {"UpperChest", "UChest"}, }; @@ -216,4 +219,4 @@ namespace nadena.dev.modular_avatar.core.editor } } } -} \ No newline at end of file +}