You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

141 lines
2.2 KiB
Python

#List of bone ids. Should be kept strictly ordered.
BONES_LIST = [
"Hips",
"Waist",
"Chest",
"Neck",
"Head",
"Col_R",
"Col_L",
"UarmR",
"UarmL",
"LarmR",
"LarmL",
"HandR",
"HandL",
"F1_R",
"F1_L",
"F2_R",
"F2_L",
"T1_R",
"T1_L",
"T2_R",
"T2_L",
"T3_R",
"T3_L",
"UlegR",
"UlegL",
"LlegR",
"LlegL",
"FootR",
"FootL",
"ToeR",
"ToeL",
"Face",
"Dummy",
"Breast",
"Belt",
"GloveL",
"GloveR",
"BootL",
"BootR",
"RingL",
"RingR",
"WepL",
"WepR",
"Hair",
"Eyes",
"Emblem",
"SpadL",
"SpadR",
"Back",
"Neckline",
"ClawL",
"ClawR",
"Gun",
"RWing1",
"RWing2",
"RWing3",
"RWing4",
"LWing1",
"LWing2",
"LWing3",
"LWing4",
"Mystic",
"SleeveL",
"SleeveR",
"Robe",
"BendMystic",
"Collar",
"Broach",
"BosomR",
"BosomL",
"Top",
"Skirt",
"Sleeves",
"Brow",
"Cheeks",
"Chin",
"Cranium",
"Jaw",
"Nose",
"Hind_UlegL",
"Hind_LlegL",
"Hind_FootL",
"Hind_ToeL",
"Hind_UlegR",
"Hind_LlegR",
"Hind_FootR",
"Hind_ToeR",
"Fore_UlegL",
"Fore_LlegL",
"Fore_FootL",
"Fore_ToeL",
"Fore_UlegR",
"Fore_LlegR",
"Fore_FootR",
"Fore_ToeR",
"Leg_L_Jet1",
"Leg_L_Jet2",
"Leg_R_Jet1",
"Leg_R_Jet2",
]
BONES_LEFT = []
BONES_RIGHT = []
BONES_SWAP = []
BONES_LOOKUP = {}
for i in range(len(BONES_LIST)):
BONES_LOOKUP[BONES_LIST[i]] = i
BONES_LOOKUP[BONES_LIST[i].upper()] = i
BONES_LOOKUP[BONES_LIST[i].lower()] = i
if BONES_LIST[i][-1] == "L" or BONES_LIST[i].startswith("LWing"):
BONES_LEFT.append(BONES_LIST[i])
if BONES_LIST[i][-1] == "R" or BONES_LIST[i].startswith("RWing"):
BONES_RIGHT.append(BONES_LIST[i])
for i in range(len(BONES_LIST)):
j = i
n = BONES_LIST[i]
if n in BONES_LEFT:
n = BONES_RIGHT[BONES_LEFT.index(n)]
j = BONES_LOOKUP[n]
elif n in BONES_RIGHT:
n = BONES_LEFT[BONES_RIGHT.index(n)]
j = BONES_LOOKUP[n]
BONES_SWAP.append(j)