# GPL Licence # Bone names from https://github.com/triazo/immersive_scaler/ # Note from @989onan: Please make sure to make your names are lowercase in this array, or it will never find a match. I banged my head metaphorically till I figured that out... # Note2: Remove all "_", ".", and " " (space) from your values array or it will also not ever find a match!!!! # Taken from Tuxedo/Cats bone_names = { # Right side bones "right_shoulder": [ "rightshoulder", "shoulderr", "rshoulder", "valvebipedbip01rclavicle", "右肩", "肩.r", "肩+.r", "右肩+", "右肩", "右肩+", "肩+r", "肩+右", "ik_肩.r" ], "right_arm": [ "rightarm", "armr", "rarm", "upperarmr", "rupperarm", "rightupperarm", "uparmr", "ruparm", "valvebipedbip01rupperarm", "右腕", "腕.r", "右腕", "ik_腕.r" ], "right_elbow": [ "rightelbow", "elbowr", "relbow", "lowerarmr", "rightlowerarm", "rlowerarm", "lowarmr", "rlowarm", "forearmr", "rforearm", "valvebipedbip01rforearm", "右ひじ", "ひじ.r", "ik_ひじ.r" ], "right_wrist": [ "rightwrist", "wristr", "rwrist", "handr", "righthand", "rhand", "valvebipedbip01rhand", "右手首", "手首.r", "ik_手首.r" ], "pinkie_0_r": [ "littlefinger0r", "pinkie0r", "rpinkie0", "pinkiemetacarpalr", "右小指0" ], "pinkie_1_r": [ "littlefinger1r", "pinkie1r", "rpinkie1", "pinkieproximalr", "valvebipedbip01rfinger4", "右小指1" ], "pinkie_2_r": [ "littlefinger2r", "pinkie2r", "rpinkie2", "pinkieintermediater", "valvebipedbip01rfinger41", "右小指2" ], "pinkie_3_r": [ "littlefinger3r", "pinkie3r", "rpinkie3", "pinkiedistalr", "valvebipedbip01rfinger42", "右小指3" ], "ring_0_r": [ "ringfinger0r", "ring0r", "rring0", "ringmetacarpalr", "右薬指0" ], "ring_1_r": [ "ringfinger1r", "ring1r", "rring1", "ringproximalr", "valvebipedbip01rfinger3", "右薬指1" ], "ring_2_r": [ "ringfinger2r", "ring2r", "rring2", "ringintermediater", "valvebipedbip01rfinger31", "右薬指2" ], "ring_3_r": [ "ringfinger3r", "ring3r", "rring3", "ringdistalr", "valvebipedbip01rfinger32", "右薬指3" ], "middle_0_r": [ "middlefinger0r", "middle0r", "rmiddle0", "middlemetacarpalr", "右中指0" ], "middle_1_r": [ "middlefinger1r", "middle1r", "rmiddle1", "middleproximalr", "valvebipedbip01rfinger2", "右中指1" ], "middle_2_r": [ "middlefinger2r", "middle2r", "rmiddle2", "middleintermediater", "valvebipedbip01rfinger21", "右中指2" ], "middle_3_r": [ "middlefinger3r", "middle3r", "rmiddle3", "middledistalr", "valvebipedbip01rfinger22", "右中指3" ], "index_0_r": [ "indexfinger0r", "index0r", "rindex0", "indexmetacarpalr", "右人差指0" ], "index_1_r": [ "indexfinger1r", "index1r", "rindex1", "indexproximalr", "valvebipedbip01rfinger1", "右人差指1" ], "index_2_r": [ "indexfinger2r", "index2r", "rindex2", "indexintermediater", "valvebipedbip01rfinger11", "右人差指2" ], "index_3_r": [ "indexfinger3r", "index3r", "rindex3", "indexdistalr", "valvebipedbip01rfinger12", "右人差指3" ], "thumb_0_r": [ "thumb0r", "rthumb0", "thumbmetacarpalr", "右親指0" ], "thumb_1_r": [ "thumb1r", "rthumb1", "thumbproximalr", "valvebipedbip01rfinger0", "右親指1" ], "thumb_2_r": [ "thumb2r", "rthumb2", "thumbintermediater", "valvebipedbip01rfinger01", "右親指2" ], "thumb_3_r": [ "thumb3r", "rthumb3", "thumbdistalr", "valvebipedbip01rfinger02", "右親指3" ], "right_leg": [ "rightleg", "legr", "rleg", "upperlegr", "rupperleg", "thighr", "rightupperleg", "uplegr", "rupleg", "valvebipedbip01rthigh", "右足", "足.r", "ik_足.r" ], "right_knee": [ "rightknee", "kneer", "rknee", "lowerlegr", "rightlowerleg", "rlowerleg", "lowlegr", "rlowleg", "calfr", "rcalf", "valvebipedbip01rcalf", "右ひざ", "ひざ.r", "すね.r", "ik_ひざ.r" ], "right_ankle": [ "rightankle", "ankler", "rankle", "rightfoot", "footr", "rfoot", "rightfeet", "feetright", "rfeet", "feetr", "valvebipedbip01rfoot", "右足首", "足首.r", "ik_足首.r" ], "right_toe": [ "righttoe", "toeright", "toer", "rtoe", "toesr", "rtoes", "valvebipedbip01rtoe0", "右つま先", "つま先.r", "ik_つま先.r" ], # Left side bones "left_shoulder": [ "leftshoulder", "shoulderl", "lshoulder", "valvebipedbip01lclavicle", "左肩", "肩.l", "肩+.l", "左肩+", "左肩", "左肩+", "肩+l", "肩+左", "ik_肩.l" ], "left_arm": [ "leftarm", "arml", "larm", "upperarml", "lupperarm", "leftupperarm", "uparml", "luparm", "valvebipedbip01lupperarm", "左腕", "腕.l", "左腕", "ik_腕.l" ], "left_elbow": [ "leftelbow", "elbowl", "lelbow", "lowerarml", "leftlowerarm", "llowerarm", "lowarml", "llowarm", "forearml", "lforearm", "valvebipedbip01lforearm", "左ひじ", "ひじ.l", "すね.l", "ik_ひじ.l" ], "left_wrist": [ "leftwrist", "wristl", "lwrist", "handl", "lefthand", "lhand", "valvebipedbip01lhand", "左手首", "手首.l", "ik_手首.l" ], "pinkie_0_l": [ "pinkiefinger0l", "pinkie0l", "lpinkie0", "pinkiemetacarpall", "左小指0" ], "pinkie_1_l": [ "littlefinger1l", "pinkie1l", "lpinkie1", "pinkieproximall", "valvebipedbip01lfinger4", "左小指1" ], "pinkie_2_l": [ "littlefinger2l", "pinkie2l", "lpinkie2", "pinkieintermediatel", "valvebipedbip01lfinger41", "左小指2" ], "pinkie_3_l": [ "littlefinger3l", "pinkie3l", "lpinkie3", "pinkiedistall", "valvebipedbip01lfinger42", "左小指3" ], "ring_0_l": [ "ringfinger0l", "ring0l", "lring0", "ringmetacarpall", "左薬指0" ], "ring_1_l": [ "ringfinger1l", "ring1l", "lring1", "ringproximall", "valvebipedbip01lfinger3", "左薬指1" ], "ring_2_l": [ "ringfinger2l", "ring2l", "lring2", "ringintermediatel", "valvebipedbip01lfinger31", "左薬指2" ], "ring_3_l": [ "ringfinger3l", "ring3l", "lring3", "ringdistall", "valvebipedbip01lfinger32", "左薬指3" ], "middle_0_l": [ "middlefinger0l", "middle_0l", "lmiddle0", "middlemetacarpall", "左中指0" ], "middle_1_l": [ "middlefinger1l", "middle_1l", "lmiddle1", "middleproximall", "valvebipedbip01lfinger2", "左中指1" ], "middle_2_l": [ "middlefinger2l", "middle_2l", "lmiddle2", "middleintermediatel", "valvebipedbip01lfinger21", "左中指2" ], "middle_3_l": [ "middlefinger3l", "middle_3l", "lmiddle3", "middledistall", "valvebipedbip01lfinger22", "左中指3" ], "index_0_l": [ "indexfinger0l", "index0l", "lindex0", "indexmetacarpall", "左人差指0" ], "index_1_l": [ "indexfinger1l", "index1l", "lindex1", "indexproximall", "valvebipedbip01lfinger1", "左人差指1" ], "index_2_l": [ "indexfinger2l", "index2l", "lindex2", "indexintermediatel", "valvebipedbip01lfinger11", "左人差指2" ], "index_3_l": [ "indexfinger3l", "index3l", "lindex3", "indexdistall", "valvebipedbip01lfinger12", "左人差指3" ], "thumb_0_l": [ "thumb0l", "lthumb0", "thumbmetacarpall", "左親指0" ], "thumb_1_l": [ "thumb1l", "lthumb1", "thumbproximall", "valvebipedbip01lfinger0", "左親指1" ], "thumb_2_l": [ "thumb2l", "lthumb2", "thumbintermediatel", "valvebipedbip01lfinger01", "左親指2" ], "thumb_3_l": [ "thumb3l", "lthumb3", "thumbdistall", "valvebipedbip01lfinger02", "左親指3" ], "left_leg": [ "leftleg", "legl", "lleg", "upperlegl", "lupperleg", "thighl", "leftupperleg", "uplegl", "lupleg", "valvebipedbip01lthigh", "左足", "足.l", "ik_足.l" ], "left_knee": [ "leftknee", "kneel", "lknee", "lowerlegl", "leftlowerleg", "llowerleg", "lowlegl", "llowleg", "calfl", "lcalf", "valvebipedbip01lcalf", "左ひざ", "ひざ.l", "すね.l", "ik_ひざ.l" ], "left_ankle": [ "leftankle", "anklel", "lankle", "leftfoot", "footl", "lfoot", "leftfeet", "feetleft", "lfeet", "feetl", "valvebipedbip01lfoot", "左足首", "足首.l", "ik_足首.l" ], "left_toe": [ "lefttoe", "toeleft", "toel", "ltoe", "toesl", "ltoes", "valvebipedbip01ltoe0", "左つま先", "つま先.l", "ik_つま先.l" ], # Central bones "hips": [ "pelvis", "hips", "hip", "valvebipedbip01pelvis", "腰", "ik_腰" ], "spine": [ "torso", "spine", "valvebipedbip01spine", "脊椎", "ik_脊椎" ], "chest": [ "chest", "valvebipedbip01spine1", "胸", "ik_胸" ], "upper_chest": [ "upperchest", "valvebipedbip01spine4", "上胸", "ik_上胸" ], "neck": [ "neck", "valvebipedbip01neck1", "首", "ik_首" ], "head": [ "head", "valvebipedbip01head1", "頭", "ik_頭" ], "left_eye": [ "eyeleft", "lefteye", "eyel", "leye", "左目", "ik_左目" ], "right_eye": [ "eyeright", "righteye", "eyer", "reye", "右目", "ik_右目" ], } # Add VRM bone name variations bone_names.update({ 'hips': bone_names['hips'] + ['jbipchips', 'jhips', 'vrmhips'], 'spine': bone_names['spine'] + ['jbipcspine', 'jspine', 'vrmspine'], 'chest': bone_names['chest'] + ['jbipcchest', 'jchest', 'vrmchest'], 'upper_chest': bone_names['upperchest'] + ['jbipcupperchest', 'jupperchest', 'vrmupperchest'], 'neck': bone_names['neck'] + ['jbipcneck', 'jneck', 'vrmneck'], 'head': bone_names['head'] + ['jbipchead', 'jhead', 'vrmhead'], # VRM specific finger naming 'thumb_0_l': bone_names['thumb_0_l'] + ['thumbmetacarpall', 'jthumb1l'], 'index_0_l': bone_names['index_0_l'] + ['indexmetacarpall', 'jindex1l'], 'middle_0_l': bone_names['middle_0_l'] + ['middlemetacarpall', 'jmiddle1l'], 'ring_0_l': bone_names['ring_0_l'] + ['ringmetacarpall', 'jring1l'], 'pinkie_0_l': bone_names['pinkie_0_l'] + ['littlemetacarpall', 'jlittle1l'], # Mirror for right side 'thumb_0_r': bone_names['thumb_0_r'] + ['thumbmetacarpalr', 'jthumb1r'], 'index_0_r': bone_names['index_0_r'] + ['indexmetacarpalr', 'jindex1r'], 'middle_0_r': bone_names['middle_0_r'] + ['middlemetacarpalr', 'jmiddle1r'], 'ring_0_r': bone_names['ring_0_r'] + ['ringmetacarpalr', 'jring1r'], 'pinkie_0_r': bone_names['pinkie_0_r'] + ['littlemetacarpalr', 'jlittle1r'] }) # array taken from cats dont_delete_these_main_bones = [ 'Hips', 'Spine', 'Chest', 'Upper Chest', 'Neck', 'Head', 'Left leg', 'Left knee', 'Left ankle', 'Left toe', 'Right leg', 'Right knee', 'Right ankle', 'Right toe', 'Left shoulder', 'Left arm', 'Left elbow', 'Left wrist', 'Right shoulder', 'Right arm', 'Right elbow', 'Right wrist', 'LeftEye', 'RightEye', 'Eye_L', 'Eye_R', 'Left leg 2', 'Right leg 2', 'Thumb0_L', 'Thumb1_L', 'Thumb2_L', 'IndexFinger1_L', 'IndexFinger2_L', 'IndexFinger3_L', 'MiddleFinger1_L', 'MiddleFinger2_L', 'MiddleFinger3_L', 'RingFinger1_L', 'RingFinger2_L', 'RingFinger3_L', 'LittleFinger1_L', 'LittleFinger2_L', 'LittleFinger3_L', 'Thumb0_R', 'Thumb1_R', 'Thumb2_R', 'IndexFinger1_R', 'IndexFinger2_R', 'IndexFinger3_R', 'MiddleFinger1_R', 'MiddleFinger2_R', 'MiddleFinger3_R', 'RingFinger1_R', 'RingFinger2_R', 'RingFinger3_R', 'LittleFinger1_R', 'LittleFinger2_R', 'LittleFinger3_R', ] resonite_translations = { 'hips': "Hips", 'spine': "Spine", 'chest': "Chest", 'neck': "Neck", 'head': "Head", 'left_eye': "Eye.L", 'right_eye': "Eye.R", 'right_leg': "UpperLeg.R", 'right_knee': "Calf.R", 'right_ankle': "Foot.R", 'right_toe': 'Toes.R', 'right_shoulder': "Shoulder.R", 'right_arm': "UpperArm.R", 'right_elbow': "ForeArm.R", 'right_wrist': "Hand.R", 'left_leg': "UpperLeg.L", 'left_knee': "Calf.L", 'left_ankle': "Foot.L", 'left_toe': "Toes.L", 'left_shoulder': "Shoulder.L", 'left_arm': "UpperArm.L", 'left_elbow': "ForeArm.L", 'left_wrist': "Hand.L", 'pinkie_1_l': "pinkie1.L", 'pinkie_2_l': "pinkie2.L", 'pinkie_3_l': "pinkie3.L", 'ring_1_l': "ring1.L", 'ring_2_l': "ring2.L", 'ring_3_l': "ring3.L", 'middle_1_l': "middle1.L", 'middle_2_l': "middle2.L", 'middle_3_l': "middle3.L", 'index_1_l': "index1.L", 'index_2_l': "index2.L", 'index_3_l': "index3.L", 'thumb_1_l': "thumb1.L", 'thumb_2_l': "thumb2.L", 'thumb_3_l': "thumb3.L", 'pinkie_1_r': "pinkie1.R", 'pinkie_2_r': "pinkie2.R", 'pinkie_3_r': "pinkie3.R", 'ring_1_r': "ring1.R", 'ring_2_r': "ring2.R", 'ring_3_r': "ring3.R", 'middle_1_r': "middle1.R", 'middle_2_r': "middle2.R", 'middle_3_r': "middle3.R", 'index_1_r': "index1.R", 'index_2_r': "index2.R", 'index_3_r': "index3.R", 'thumb_1_r': "thumb1.R", 'thumb_2_r': "thumb2.R", 'thumb_3_r': "thumb3.R" } # Create reverse lookup dictionary (conversion/translation) reverse_bone_lookup = {} for preferred_name, name_list in bone_names.items(): for name in name_list: reverse_bone_lookup[name] = preferred_name