Imam python skriptu za Blender pomoću koje treba da odradim re-targeting kostiju eng. bones mog charcter-a na drugi UE4 Mannequin charcter u Blenderu.
Skripta već ima 3 različite vrste preseta za MakeHuman charactera, za UE4 Mannequin i za Epic Skeleton, moj character je varijacija UE4 Mannequin-a ali bez root kosti i bez IK kositiju kao i bez gun kosti
Code:
import bpy
import math
import mathutils
from math import degrees
from bpy.props import *
DeformLayers = [
False, False, False, False, False, False, False, False,
False, False, False, False, False, False, False, False,
False, False, False, False, False, False, False, False,
True, False, False, False, False, False, False, False
]
FaceLayers = [
False, False, False, False, False, False, False, False,
False, False, False, False, False, False, False, False,
False, False, False, False, False, False, False, False,
False, True, False, False, False, False, False, False
]
IKLayers = [
False, False, False, False, False, False, False, False,
False, False, False, False, False, False, False, False,
False, False, False, False, False, False, False, False,
False, False, True, False, False, False, False, False
]
TweakArmLeftLayers = [
False, False, False, False, False, False, False, False,
False, True, False, False, False, False, False, False,
False, False, False, False, False, False, False, False,
False, False, False, False, False, False, False, False
]
TweakArmRightLayers = [
False, False, False, False, False, False, False, False,
False, False, False, False, True, False, False, False,
False, False, False, False, False, False, False, False,
False, False, False, False, False, False, False, False
]
TweakLegLeftLayers = [
False, False, False, False, False, False, False, False,
False, False, False, False, False, False, False, True,
False, False, False, False, False, False, False, False,
False, False, False, False, False, False, False, False
]
TweakLegRightLayers = [
False, False, False, False, False, False, False, False,
False, False, False, False, False, False, False, False,
False, False, True, False, False, False, False, False,
False, False, False, False, False, False, False, False
]
BoneLookup = {
"DEF-spine" : "pelvis",
"DEF-spine.001" : "spine_01",
"DEF-spine.002" : "spine_02",
"DEF-spine.003" : "spine_03",
"DEF-shoulder.L" : "clavicle_l",
"DEF-upper_arm.L" : "upperarm_l",
"DEF-forearm.L" : "lowerarm_l",
"DEF-hand.L" : "hand_l",
"DEF-f_index.01.L" : "index_01_l",
"DEF-f_index.02.L" : "index_02_l",
"DEF-f_index.03.L" : "index_03_l",
"DEF-f_middle.01.L" : "middle_01_l",
"DEF-f_middle.02.L" : "middle_02_l",
"DEF-f_middle.03.L" : "middle_03_l",
"DEF-f_pinky.01.L" : "pinky_01_l",
"DEF-f_pinky.02.L" : "pinky_02_l",
"DEF-f_pinky.03.L" : "pinky_03_l",
"DEF-f_ring.01.L" : "ring_01_l",
"DEF-f_ring.02.L" : "ring_02_l",
"DEF-f_ring.03.L" : "ring_03_l",
"DEF-thumb.01.L" : "thumb_01_l",
"DEF-thumb.02.L" : "thumb_02_l",
"DEF-thumb.03.L" : "thumb_03_l",
"DEF-shoulder.R" : "clavicle_r",
"DEF-upper_arm.R" : "upperarm_r",
"DEF-forearm.R" : "lowerarm_r",
"DEF-hand.R" : "hand_r",
"DEF-f_index.01.R" : "index_01_r",
"DEF-f_index.02.R" : "index_02_r",
"DEF-f_index.03.R" : "index_03_r",
"DEF-f_middle.01.R" : "middle_01_r",
"DEF-f_middle.02.R" : "middle_02_r",
"DEF-f_middle.03.R" : "middle_03_r",
"DEF-f_pinky.01.R" : "pinky_01_r",
"DEF-f_pinky.02.R" : "pinky_02_r",
"DEF-f_pinky.03.R" : "pinky_03_r",
"DEF-f_ring.01.R" : "ring_01_r",
"DEF-f_ring.02.R" : "ring_02_r",
"DEF-f_ring.03.R" : "ring_03_r",
"DEF-thumb.01.R" : "thumb_01_r",
"DEF-thumb.02.R" : "thumb_02_r",
"DEF-thumb.03.R" : "thumb_03_r",
"DEF-spine.004" : "neck_01",
"DEF-spine.006" : "head_01",
"DEF-thigh.L" : "thigh_l",
"DEF-shin.L" : "calf_l",
"DEF-foot.L" : "foot_l",
"DEF-toe.L" : "ball_l",
"DEF-thigh.R" : "thigh_r",
"DEF-shin.R" : "calf_r",
"DEF-foot.R" : "foot_r",
"DEF-toe.R" : "ball_r"
}
RenameMapping = {
"mixamorig:Hips" : "ORG-hips",
"mixamorig:Spine" : "ORG-spine1",
"mixamorig:Spine1" : "ORG-spine2",
"mixamorig:Spine2" : "ORG-spine3",
"mixamorig:LeftShoulder" : "ORG-shoulder.L",
"mixamorig:LeftArm" : "ORG-upper_arm.L",
"mixamorig:LeftForeArm" : "ORG-forearm.L",
"mixamorig:LeftHand" : "ORG-hand.L",
"mixamorig:LeftHandIndex1" : "ORG-f_index.01.L",
"mixamorig:LeftHandIndex2" : "ORG-f_index.02.L",
"mixamorig:LeftHandIndex3" : "ORG-f_index.03.L",
"mixamorig:LeftHandMiddle1" : "ORG-f_middle.01.L",
"mixamorig:LeftHandMiddle2" : "ORG-f_middle.02.L",
"mixamorig:LeftHandMiddle3" : "ORG-f_middle.03.L",
"mixamorig:LeftHandPinky1" : "ORG-f_pinky.01.L",
"mixamorig:LeftHandPinky2" : "ORG-f_pinky.02.L",
"mixamorig:LeftHandPinky3" : "ORG-f_pinky.03.L",
"mixamorig:LeftHandRing1" : "ORG-f_ring.01.L",
"mixamorig:LeftHandRing2" : "ORG-f_ring.02.L",
"mixamorig:LeftHandRing3" : "ORG-f_ring.03.L",
"mixamorig:LeftHandThumb1" : "ORG-thumb.01.L",
"mixamorig:LeftHandThumb2" : "ORG-thumb.02.L",
"mixamorig:LeftHandThumb3" : "ORG-thumb.03.L",
"mixamorig:RightShoulder" : "ORG-shoulder.R",
"mixamorig:RightArm" : "ORG-upper_arm.R",
"mixamorig:RightForeArm" : "ORG-forearm.R",
"mixamorig:RightHand" : "ORG-hand.R",
"mixamorig:RightHandIndex1" : "ORG-f_index.01.R",
"mixamorig:RightHandIndex2" : "ORG-f_index.02.R",
"mixamorig:RightHandIndex3" : "ORG-f_index.03.R",
"mixamorig:RightHandMiddle1" : "ORG-f_middle.01.R",
"mixamorig:RightHandMiddle2" : "ORG-f_middle.02.R",
"mixamorig:RightHandMiddle3" : "ORG-f_middle.03.R",
"mixamorig:RightHandPinky1" : "ORG-f_pinky.01.R",
"mixamorig:RightHandPinky2" : "ORG-f_pinky.02.R",
"mixamorig:RightHandPinky3" : "ORG-f_pinky.03.R",
"mixamorig:RightHandRing1" : "ORG-f_ring.01.R",
"mixamorig:RightHandRing2" : "ORG-f_ring.02.R",
"mixamorig:RightHandRing3" : "ORG-f_ring.03.R",
"mixamorig:RightHandThumb1" : "ORG-thumb.01.R",
"mixamorig:RightHandThumb2" : "ORG-thumb.02.R",
"mixamorig:RightHandThumb3" : "ORG-thumb.03.R",
"mixamorig:Neck" : "ORG-neck",
"mixamorig:Head" : "ORG-head",
"mixamorig:LeftUpLeg" : "ORG-thigh.L",
"mixamorig:LeftLeg" : "ORG-shin.L",
"mixamorig:LeftFoot" : "ORG-foot.L",
"mixamorig:LeftToeBase" : "ORG-toe.L",
"mixamorig:RightUpLeg" : "ORG-thigh.R",
"mixamorig:RightLeg" : "ORG-shin.R",
"mixamorig:RightFoot" : "ORG-foot.R",
"mixamorig:RightToeBase" : "ORG-toe.R"
}
RenameMappingUE = {
"pelvis" : "ORG-hips",
"spine_01" : "ORG-spine1",
"spine_02" : "ORG-spine2",
"spine_03" : "ORG-spine3",
"clavicle_l" : "ORG-shoulder.L",
"upperarm_l" : "ORG-upper_arm.L",
"lowerarm_l" : "ORG-forearm.L",
"hand_l" : "ORG-hand.L",
"index_01_l" : "ORG-f_index.01.L",
"index_02_l" : "ORG-f_index.02.L",
"index_03_l" : "ORG-f_index.03.L",
"middle_01_l" : "ORG-f_middle.01.L",
"middle_02_l" : "ORG-f_middle.02.L",
"middle_03_l" : "ORG-f_middle.03.L",
"pinky_01_l" : "ORG-f_pinky.01.L",
"pinky_02_l" : "ORG-f_pinky.02.L",
"pinky_03_l" : "ORG-f_pinky.03.L",
"ring_01_l" : "ORG-f_ring.01.L",
"ring_02_l" : "ORG-f_ring.02.L",
"ring_03_l" : "ORG-f_ring.03.L",
"thumb_01_l" : "ORG-thumb.01.L",
"thumb_02_l" : "ORG-thumb.02.L",
"thumb_03_l" : "ORG-thumb.03.L",
"clavicle_r" : "ORG-shoulder.R",
"upperarm_r" : "ORG-upper_arm.R",
"lowerarm_r" : "ORG-forearm.R",
"hand_r" : "ORG-hand.R",
"index_01_r" : "ORG-f_index.01.R",
"index_02_r" : "ORG-f_index.02.R",
"index_03_r" : "ORG-f_index.03.R",
"middle_01_r" : "ORG-f_middle.01.R",
"middle_02_r" : "ORG-f_middle.02.R",
"middle_03_r" : "ORG-f_middle.03.R",
"pinky_01_r" : "ORG-f_pinky.01.R",
"pinky_02_r" : "ORG-f_pinky.02.R",
"pinky_03_r" : "ORG-f_pinky.03.R",
"ring_01_r" : "ORG-f_ring.01.R",
"ring_02_r" : "ORG-f_ring.02.R",
"ring_03_r" : "ORG-f_ring.03.R",
"thumb_01_r" : "ORG-thumb.01.R",
"thumb_02_r" : "ORG-thumb.02.R",
"thumb_03_r" : "ORG-thumb.03.R",
"neck_01" : "ORG-neck",
"head" : "ORG-head",
"thigh_l" : "ORG-thigh.L",
"calf_l" : "ORG-shin.L",
"foot_l" : "ORG-foot.L",
"ball_l" : "ORG-toe.L",
"thigh_r" : "ORG-thigh.R",
"calf_r" : "ORG-shin.R",
"foot_r" : "ORG-foot.R",
"ball_r" : "ORG-toe.R"
}
metarig_head_name = 'spine.006'
metarig_neckextra_name = 'spine.005'
metarig_neck_name = 'spine.004'
custom_bone_prefix = 'u_'
epic_rolls = {
'shoulder.L' : 0,
'upper_arm.L' : -90.0,
'forearm.L' : -90.0,
'hand.L' : 0,
'thumb.01.L' : 90.0,
'thumb.02.L' : 90.0,
'thumb.03.L' : 90.0,
'f_index.01.L' : 90.0,
'f_index.02.L' : 90.0,
'f_index.03.L' : 90.0,
'f_middle.01.L' : 90.0,
'f_middle.02.L' : 90.0,
'f_middle.03.L' : 90.0,
'f_ring.01.L' : 90.0,
'f_ring.02.L' : 90.0,
'f_ring.03.L' : 90.0,
'f_pinky.01.L' : 90.0,
'f_pinky.02.L' : 90.0,
'f_pinky.03.L' : 90.0,
'thigh.L' : 90.0,
'shin.L' : 90.0,
'foot.L' : 0,
'toe.L' : 90.0,
}
custom_rolls = {
'shoulder.L' : 0,
'upper_arm.L' : -90.0,
'forearm.L' : -90.0,
'hand.L' : -90.0,
'thumb.01.L' : 90.0,
'thumb.02.L' : 90.0,
'thumb.03.L' : 90.0,
'f_index.01.L' : 0,
'f_index.02.L' : 0,
'f_index.03.L' : 0,
'f_middle.01.L' : 0,
'f_middle.02.L' : 0,
'f_middle.03.L' : 0,
'f_ring.01.L' : 0,
'f_ring.02.L' : 0,
'f_ring.03.L' : 0,
'f_pinky.01.L' : 0,
'f_pinky.02.L' : 0,
'f_pinky.03.L' : 0,
'thigh.L' : 180,
'shin.L' : 180,
'foot.L' : 180,
'toe.L' : 0,
}
custom_mk_rolls = {
'shoulder.L' : 0,
'upper_arm.L' : 0,
'forearm.L' : 0,
'hand.L' : -45.0,
'thumb.01.L' : 0,
'thumb.02.L' : 0,
'thumb.03.L' : 0,
'f_index.01.L' : 0,
'f_index.02.L' : 0,
'f_index.03.L' : 0,
'f_middle.01.L' : 0,
'f_middle.02.L' : 0,
'f_middle.03.L' : 0,
'f_ring.01.L' : 0,
'f_ring.02.L' : 0,
'f_ring.03.L' : 0,
'f_pinky.01.L' : 0,
'f_pinky.02.L' : 0,
'f_pinky.03.L' : 0,
'thigh.L' : 0,
'shin.L' : 0,
'foot.L' : 0,
'toe.L' : 180.0,
}
mk_cpose_rolls = {
'shoulder.L' : -90.0,
'upper_arm.L' : -90.0,
'forearm.L' : -90.0,
'hand.L' : 45.0,
'thumb.01.L' : 90.0,
'thumb.02.L' : 90.0,
'thumb.03.L' : 90.0,
'f_index.01.L' : 90,
'f_index.02.L' : 90,
'f_index.03.L' : 90,
'f_middle.01.L' : 90,
'f_middle.02.L' : 90,
'f_middle.03.L' : 90,
'f_ring.01.L' : 90,
'f_ring.02.L' : 90,
'f_ring.03.L' : 90,
'f_pinky.01.L' : 90,
'f_pinky.02.L' : 90,
'f_pinky.03.L' : 90,
'thigh.L' : 90.0,
'shin.L' : 90.0,
#'foot.L' : 180,
#'toe.L' : 0,
}
epic_cpose_rolls = {
'shoulder.L' : 0,
'upper_arm.L' : 0,
'forearm.L' : 0,
'hand.L' : 0,
'thumb.01.L' : 0,
'thumb.02.L' : 0,
'thumb.03.L' : 0,
'f_index.01.L' : 0,
'f_index.02.L' : 0,
'f_index.03.L' : 0,
'f_middle.01.L' : 0,
'f_middle.02.L' : 0,
'f_middle.03.L' : 0,
'f_ring.01.L' : 0,
'f_ring.02.L' : 0,
'f_ring.03.L' : 0,
'f_pinky.01.L' : 0,
'f_pinky.02.L' : 0,
'f_pinky.03.L' : 0,
'thigh.L' : 0,
'shin.L' : 0,
#'foot.L' : 180,
#'toe.L' : 0,
}
custom_cpose_rolls = {
'shoulder.L' : 0,
'upper_arm.L' : 0,
'forearm.L' : 0,
'hand.L' : 90.0,
'thumb.01.L' : 0,
'thumb.02.L' : 0,
'thumb.03.L' : 0,
'f_index.01.L' : 90.0,
'f_index.02.L' : 90.0,
'f_index.03.L' : 90.0,
'f_middle.01.L' : 90.0,
'f_middle.02.L' : 90.0,
'f_middle.03.L' : 90.0,
'f_ring.01.L' : 90.0,
'f_ring.02.L' : 90.0,
'f_ring.03.L' : 90.0,
'f_pinky.01.L' : 90.0,
'f_pinky.02.L' : 90.0,
'f_pinky.03.L' : 90.0,
'thigh.L' : -90,
'shin.L' : -90,
#'foot.L' : 180,
#'toe.L' : 0,
}
MetaRigMapping = {
# "ORG-hips" : "spine",
# "ORG-spine1" : "spine.001",
# "ORG-spine2" : "spine.002",
# "ORG-spine3" : "spine.003",
"ORG-shoulder.L" : "shoulder.L",
"ORG-upper_arm.L" : "upper_arm.L",
"ORG-forearm.L" : "forearm.L",
"ORG-hand.L" : "hand.L",
"ORG-f_index.01.L" : "f_index.01.L",
"ORG-f_index.02.L" : "f_index.02.L",
"ORG-f_index.03.L" : "f_index.03.L",
"ORG-f_middle.01.L" : "f_middle.01.L",
"ORG-f_middle.02.L" : "f_middle.02.L",
"ORG-f_middle.03.L" : "f_middle.03.L",
"ORG-f_pinky.01.L" : "f_pinky.01.L",
"ORG-f_pinky.02.L" : "f_pinky.02.L",
"ORG-f_pinky.03.L" : "f_pinky.03.L",
"ORG-f_ring.01.L" : "f_ring.01.L",
"ORG-f_ring.02.L" : "f_ring.02.L",
"ORG-f_ring.03.L" : "f_ring.03.L",
"ORG-thumb.01.L" : "thumb.01.L",
"ORG-thumb.02.L" : "thumb.02.L",
"ORG-thumb.03.L" : "thumb.03.L",
"ORG-shoulder.R" : "shoulder.R",
"ORG-upper_arm.R" : "upper_arm.R",
"ORG-forearm.R" : "forearm.R",
"ORG-hand.R" : "hand.R",
"ORG-f_index.01.R" : "f_index.01.R",
"ORG-f_index.02.R" : "f_index.02.R",
"ORG-f_index.03.R" : "f_index.03.R",
"ORG-f_middle.01.R" : "f_middle.01.R",
"ORG-f_middle.02.R" : "f_middle.02.R",
"ORG-f_middle.03.R" : "f_middle.03.R",
"ORG-f_pinky.01.R" : "f_pinky.01.R",
"ORG-f_pinky.02.R" : "f_pinky.02.R",
"ORG-f_pinky.03.R" : "f_pinky.03.R",
"ORG-f_ring.01.R" : "f_ring.01.R",
"ORG-f_ring.02.R" : "f_ring.02.R",
"ORG-f_ring.03.R" : "f_ring.03.R",
"ORG-thumb.01.R" : "thumb.01.R",
"ORG-thumb.02.R" : "thumb.02.R",
"ORG-thumb.03.R" : "thumb.03.R",
# "ORG-neck" : "spine.004",
# "ORG-head" : "spine.006",
"ORG-thigh.L" : "thigh.L",
"ORG-shin.L" : "shin.L",
"ORG-foot.L" : "foot.L",
"ORG-toe.L" : "toe.L",
"ORG-thigh.R" : "thigh.R",
"ORG-shin.R" : "shin.R",
"ORG-foot.R" : "foot.R",
"ORG-toe.R" : "toe.R"
}
VertexGroupLookup = {
"ORG-hips" : "pelvis",
"ORG-spine1" : "spine_01",
"ORG-spine2" : "spine_02",
"ORG-spine3" : "spine_03",
"ORG-shoulder.L" : "clavicle_l",
"ORG-upper_arm.L" : "upperarm_l",
"ORG-forearm.L" : "lowerarm_l",
"ORG-hand.L" : "hand_l",
"ORG-f_index.01.L" : "index_01_l",
"ORG-f_index.02.L" : "index_02_l",
"ORG-f_index.03.L" : "index_03_l",
"ORG-f_middle.01.L" : "middle_01_l",
"ORG-f_middle.02.L" : "middle_02_l",
"ORG-f_middle.03.L" : "middle_03_l",
"ORG-f_pinky.01.L" : "pinky_01_l",
"ORG-f_pinky.02.L" : "pinky_02_l",
"ORG-f_pinky.03.L" : "pinky_03_l",
"ORG-f_ring.01.L" : "ring_01_l",
"ORG-f_ring.02.L" : "ring_02_l",
"ORG-f_ring.03.L" : "ring_03_l",
"ORG-thumb.01.L" : "thumb_01_l",
"ORG-thumb.02.L" : "thumb_02_l",
"ORG-thumb.03.L" : "thumb_03_l",
"ORG-shoulder.R" : "clavicle_r",
"ORG-upper_arm.R" : "upperarm_r",
"ORG-forearm.R" : "lowerarm_r",
"ORG-hand.R" : "hand_r",
"ORG-f_index.01.R" : "index_01_r",
"ORG-f_index.02.R" : "index_02_r",
"ORG-f_index.03.R" : "index_03_r",
"ORG-f_middle.01.R" : "middle_01_r",
"ORG-f_middle.02.R" : "middle_02_r",
"ORG-f_middle.03.R" : "middle_03_r",
"ORG-f_pinky.01.R" : "pinky_01_r",
"ORG-f_pinky.02.R" : "pinky_02_r",
"ORG-f_pinky.03.R" : "pinky_03_r",
"ORG-f_ring.01.R" : "ring_01_r",
"ORG-f_ring.02.R" : "ring_02_r",
"ORG-f_ring.03.R" : "ring_03_r",
"ORG-thumb.01.R" : "thumb_01_r",
"ORG-thumb.02.R" : "thumb_02_r",
"ORG-thumb.03.R" : "thumb_03_r",
"ORG-neck" : "neck_01",
"ORG-head" : "head",
"ORG-thigh.L" : "thigh_l",
"ORG-shin.L" : "calf_l",
"ORG-foot.L" : "foot_l",
"ORG-toe.L" : "ball_l",
"ORG-thigh.R" : "thigh_r",
"ORG-shin.R" : "calf_r",
"ORG-foot.R" : "foot_r",
"ORG-toe.R" : "ball_r"
}
UEBoneAlignMapping = {
"pelvis" : ('z', -1.0, 1.0),
"spine_01" : ('z', -1.0, 1.0),
"spine_02" : ('z', -1.0, 1.0),
"spine_03" : ('z', -1.0, 1.0),
"clavicle_l" : ('x', -1.0, 1.0),
"upperarm_l" : ('z', -1.0, 1.0),
"lowerarm_l" : ('z', -1.0, 1.0),
"hand_l" : ('x', 1.0, 1.0),
"index_01_l" : ('z', 1.0, 1.0),
"index_02_l" : ('z', 1.0, 1.0),
"index_03_l" : ('z', 1.0, 1.0),
"middle_01_l" : ('z', 1.0, 1.0),
"middle_02_l" : ('z', 1.0, 1.0),
"middle_03_l" : ('z', 1.0, 1.0),
"pinky_01_l" : ('z', 1.0, 1.0),
"pinky_02_l" : ('z', 1.0, 1.0),
"pinky_03_l" : ('z', 1.0, 1.0),
"ring_01_l" : ('z', 1.0, 1.0),
"ring_02_l" : ('z', 1.0, 1.0),
"ring_03_l" : ('z', 1.0, 1.0),
"thumb_01_l" : ('z', 1.0, 1.0),
"thumb_02_l" : ('z', 1.0, 1.0),
"thumb_03_l" : ('z', 1.0, 1.0),
"clavicle_r" : ('x', -1.0, -1.0),
"upperarm_r" : ('z', 1.0, -1.0),
"lowerarm_r" : ('z', 1.0, -1.0),
"hand_r" : ('x', 1.0, -1.0),
"index_01_r" : ('z', -1.0, -1.0),
"index_02_r" : ('z', -1.0, -1.0),
"index_03_r" : ('z', -1.0, -1.0),
"middle_01_r" : ('z', -1.0, -1.0),
"middle_02_r" : ('z', -1.0, -1.0),
"middle_03_r" : ('z', -1.0, -1.0),
"pinky_01_r" : ('z', -1.0, -1.0),
"pinky_02_r" : ('z', -1.0, -1.0),
"pinky_03_r" : ('z', -1.0, -1.0),
"ring_01_r" : ('z', -1.0, -1.0),
"ring_02_r" : ('z', -1.0, -1.0),
"ring_03_r" : ('z', -1.0, -1.0),
"thumb_01_r" : ('z', -1.0, -1.0),
"thumb_02_r" : ('z', -1.0, -1.0),
"thumb_03_r" : ('z', -1.0, -1.0),
"neck_01" : ('z', -1.0, 1.0),
"head" : ('z', -1.0, 1.0),
"thigh_l" : ('z', 1.0, -1.0),
"calf_l" : ('z', 1.0, -1.0),
#"foot_l" : ('z', 1.0, -1.0),
"ball_l" : ('z', 1.0, 1.0),
"thigh_r" : ('z', -1.0, 1.0),
"calf_r" : ('z', -1.0, 1.0),
#"foot_r" : ('z', -1.0, 1.0),
"ball_r" : ('z', -1.0, -1.0),
"upperarm_twist_01_l" : ('z', -1.0, 1.0),
"upperarm_twist_02_l" : ('z', -1.0, 1.0),
"lowerarm_twist_01_l" : ('z', -1.0, 1.0),
"lowerarm_twist_02_l" : ('z', -1.0, 1.0),
"thigh_twist_01_l" : ('z', 1.0, -1.0),
"thigh_twist_02_l" : ('z', 1.0, -1.0),
"calf_twist_01_l" : ('z', 1.0, -1.0),
"calf_twist_02_l" : ('z', 1.0, -1.0),
"upperarm_twist_01_r" : ('z', 1.0, -1.0),
"upperarm_twist_02_r" : ('z', 1.0, -1.0),
"lowerarm_twist_01_r" : ('z', 1.0, -1.0),
"lowerarm_twist_02_r" : ('z', 1.0, -1.0),
"thigh_twist_01_r" : ('z', -1.0, 1.0),
"thigh_twist_02_r" : ('z', -1.0, 1.0),
"calf_twist_01_r" : ('z', -1.0, 1.0),
"calf_twist_02_r" : ('z', -1.0, 1.0)
}
character_types = [
('2', 'Custom Mapping - MakeHuman', 'Character based on custom mapping for MakeHuman'),
('1', 'Custom Mapping - Fuse Character', 'Character based on custom mapping for Fuse'),
('0', 'Epic Skeleton', 'Default skeleton of UE4 mann.')]
axis_types = [
('0', '+ x-axis', 'Align to positive X-Axis'),
('1', '- x-axis', 'Align to negative X-Axis'),
('2', '+ z-axis', 'Align to positive Z-Axis'),
('3', '- z-axis', 'Align to negative Z-Axis')]
import bpy
import math
import mathutils
from math import degrees
from bpy.props import *
DeformLayers = [
False, False, False, False, False, False, False, False,
False, False, False, False, False, False, False, False,
False, False, False, False, False, False, False, False,
True, False, False, False, False, False, False, False
]
FaceLayers = [
False, False, False, False, False, False, False, False,
False, False, False, False, False, False, False, False,
False, False, False, False, False, False, False, False,
False, True, False, False, False, False, False, False
]
IKLayers = [
False, False, False, False, False, False, False, False,
False, False, False, False, False, False, False, False,
False, False, False, False, False, False, False, False,
False, False, True, False, False, False, False, False
]
TweakArmLeftLayers = [
False, False, False, False, False, False, False, False,
False, True, False, False, False, False, False, False,
False, False, False, False, False, False, False, False,
False, False, False, False, False, False, False, False
]
TweakArmRightLayers = [
False, False, False, False, False, False, False, False,
False, False, False, False, True, False, False, False,
False, False, False, False, False, False, False, False,
False, False, False, False, False, False, False, False
]
TweakLegLeftLayers = [
False, False, False, False, False, False, False, False,
False, False, False, False, False, False, False, True,
False, False, False, False, False, False, False, False,
False, False, False, False, False, False, False, False
]
TweakLegRightLayers = [
False, False, False, False, False, False, False, False,
False, False, False, False, False, False, False, False,
False, False, True, False, False, False, False, False,
False, False, False, False, False, False, False, False
]
BoneLookup = {
"DEF-spine" : "pelvis",
"DEF-spine.001" : "spine_01",
"DEF-spine.002" : "spine_02",
"DEF-spine.003" : "spine_03",
"DEF-shoulder.L" : "clavicle_l",
"DEF-upper_arm.L" : "upperarm_l",
"DEF-forearm.L" : "lowerarm_l",
"DEF-hand.L" : "hand_l",
"DEF-f_index.01.L" : "index_01_l",
"DEF-f_index.02.L" : "index_02_l",
"DEF-f_index.03.L" : "index_03_l",
"DEF-f_middle.01.L" : "middle_01_l",
"DEF-f_middle.02.L" : "middle_02_l",
"DEF-f_middle.03.L" : "middle_03_l",
"DEF-f_pinky.01.L" : "pinky_01_l",
"DEF-f_pinky.02.L" : "pinky_02_l",
"DEF-f_pinky.03.L" : "pinky_03_l",
"DEF-f_ring.01.L" : "ring_01_l",
"DEF-f_ring.02.L" : "ring_02_l",
"DEF-f_ring.03.L" : "ring_03_l",
"DEF-thumb.01.L" : "thumb_01_l",
"DEF-thumb.02.L" : "thumb_02_l",
"DEF-thumb.03.L" : "thumb_03_l",
"DEF-shoulder.R" : "clavicle_r",
"DEF-upper_arm.R" : "upperarm_r",
"DEF-forearm.R" : "lowerarm_r",
"DEF-hand.R" : "hand_r",
"DEF-f_index.01.R" : "index_01_r",
"DEF-f_index.02.R" : "index_02_r",
"DEF-f_index.03.R" : "index_03_r",
"DEF-f_middle.01.R" : "middle_01_r",
"DEF-f_middle.02.R" : "middle_02_r",
"DEF-f_middle.03.R" : "middle_03_r",
"DEF-f_pinky.01.R" : "pinky_01_r",
"DEF-f_pinky.02.R" : "pinky_02_r",
"DEF-f_pinky.03.R" : "pinky_03_r",
"DEF-f_ring.01.R" : "ring_01_r",
"DEF-f_ring.02.R" : "ring_02_r",
"DEF-f_ring.03.R" : "ring_03_r",
"DEF-thumb.01.R" : "thumb_01_r",
"DEF-thumb.02.R" : "thumb_02_r",
"DEF-thumb.03.R" : "thumb_03_r",
"DEF-spine.004" : "neck_01",
"DEF-spine.006" : "head_01",
"DEF-thigh.L" : "thigh_l",
"DEF-shin.L" : "calf_l",
"DEF-foot.L" : "foot_l",
"DEF-toe.L" : "ball_l",
"DEF-thigh.R" : "thigh_r",
"DEF-shin.R" : "calf_r",
"DEF-foot.R" : "foot_r",
"DEF-toe.R" : "ball_r"
}
RenameMapping = {
"mixamorig:Hips" : "ORG-hips",
"mixamorig:Spine" : "ORG-spine1",
"mixamorig:Spine1" : "ORG-spine2",
"mixamorig:Spine2" : "ORG-spine3",
"mixamorig:LeftShoulder" : "ORG-shoulder.L",
"mixamorig:LeftArm" : "ORG-upper_arm.L",
"mixamorig:LeftForeArm" : "ORG-forearm.L",
"mixamorig:LeftHand" : "ORG-hand.L",
"mixamorig:LeftHandIndex1" : "ORG-f_index.01.L",
"mixamorig:LeftHandIndex2" : "ORG-f_index.02.L",
"mixamorig:LeftHandIndex3" : "ORG-f_index.03.L",
"mixamorig:LeftHandMiddle1" : "ORG-f_middle.01.L",
"mixamorig:LeftHandMiddle2" : "ORG-f_middle.02.L",
"mixamorig:LeftHandMiddle3" : "ORG-f_middle.03.L",
"mixamorig:LeftHandPinky1" : "ORG-f_pinky.01.L",
"mixamorig:LeftHandPinky2" : "ORG-f_pinky.02.L",
"mixamorig:LeftHandPinky3" : "ORG-f_pinky.03.L",
"mixamorig:LeftHandRing1" : "ORG-f_ring.01.L",
"mixamorig:LeftHandRing2" : "ORG-f_ring.02.L",
"mixamorig:LeftHandRing3" : "ORG-f_ring.03.L",
"mixamorig:LeftHandThumb1" : "ORG-thumb.01.L",
"mixamorig:LeftHandThumb2" : "ORG-thumb.02.L",
"mixamorig:LeftHandThumb3" : "ORG-thumb.03.L",
"mixamorig:RightShoulder" : "ORG-shoulder.R",
"mixamorig:RightArm" : "ORG-upper_arm.R",
"mixamorig:RightForeArm" : "ORG-forearm.R",
"mixamorig:RightHand" : "ORG-hand.R",
"mixamorig:RightHandIndex1" : "ORG-f_index.01.R",
"mixamorig:RightHandIndex2" : "ORG-f_index.02.R",
"mixamorig:RightHandIndex3" : "ORG-f_index.03.R",
"mixamorig:RightHandMiddle1" : "ORG-f_middle.01.R",
"mixamorig:RightHandMiddle2" : "ORG-f_middle.02.R",
"mixamorig:RightHandMiddle3" : "ORG-f_middle.03.R",
"mixamorig:RightHandPinky1" : "ORG-f_pinky.01.R",
"mixamorig:RightHandPinky2" : "ORG-f_pinky.02.R",
"mixamorig:RightHandPinky3" : "ORG-f_pinky.03.R",
"mixamorig:RightHandRing1" : "ORG-f_ring.01.R",
"mixamorig:RightHandRing2" : "ORG-f_ring.02.R",
"mixamorig:RightHandRing3" : "ORG-f_ring.03.R",
"mixamorig:RightHandThumb1" : "ORG-thumb.01.R",
"mixamorig:RightHandThumb2" : "ORG-thumb.02.R",
"mixamorig:RightHandThumb3" : "ORG-thumb.03.R",
"mixamorig:Neck" : "ORG-neck",
"mixamorig:Head" : "ORG-head",
"mixamorig:LeftUpLeg" : "ORG-thigh.L",
"mixamorig:LeftLeg" : "ORG-shin.L",
"mixamorig:LeftFoot" : "ORG-foot.L",
"mixamorig:LeftToeBase" : "ORG-toe.L",
"mixamorig:RightUpLeg" : "ORG-thigh.R",
"mixamorig:RightLeg" : "ORG-shin.R",
"mixamorig:RightFoot" : "ORG-foot.R",
"mixamorig:RightToeBase" : "ORG-toe.R"
}
RenameMappingUE = {
"pelvis" : "ORG-hips",
"spine_01" : "ORG-spine1",
"spine_02" : "ORG-spine2",
"spine_03" : "ORG-spine3",
"clavicle_l" : "ORG-shoulder.L",
"upperarm_l" : "ORG-upper_arm.L",
"lowerarm_l" : "ORG-forearm.L",
"hand_l" : "ORG-hand.L",
"index_01_l" : "ORG-f_index.01.L",
"index_02_l" : "ORG-f_index.02.L",
"index_03_l" : "ORG-f_index.03.L",
"middle_01_l" : "ORG-f_middle.01.L",
"middle_02_l" : "ORG-f_middle.02.L",
"middle_03_l" : "ORG-f_middle.03.L",
"pinky_01_l" : "ORG-f_pinky.01.L",
"pinky_02_l" : "ORG-f_pinky.02.L",
"pinky_03_l" : "ORG-f_pinky.03.L",
"ring_01_l" : "ORG-f_ring.01.L",
"ring_02_l" : "ORG-f_ring.02.L",
"ring_03_l" : "ORG-f_ring.03.L",
"thumb_01_l" : "ORG-thumb.01.L",
"thumb_02_l" : "ORG-thumb.02.L",
"thumb_03_l" : "ORG-thumb.03.L",
"clavicle_r" : "ORG-shoulder.R",
"upperarm_r" : "ORG-upper_arm.R",
"lowerarm_r" : "ORG-forearm.R",
"hand_r" : "ORG-hand.R",
"index_01_r" : "ORG-f_index.01.R",
"index_02_r" : "ORG-f_index.02.R",
"index_03_r" : "ORG-f_index.03.R",
"middle_01_r" : "ORG-f_middle.01.R",
"middle_02_r" : "ORG-f_middle.02.R",
"middle_03_r" : "ORG-f_middle.03.R",
"pinky_01_r" : "ORG-f_pinky.01.R",
"pinky_02_r" : "ORG-f_pinky.02.R",
"pinky_03_r" : "ORG-f_pinky.03.R",
"ring_01_r" : "ORG-f_ring.01.R",
"ring_02_r" : "ORG-f_ring.02.R",
"ring_03_r" : "ORG-f_ring.03.R",
"thumb_01_r" : "ORG-thumb.01.R",
"thumb_02_r" : "ORG-thumb.02.R",
"thumb_03_r" : "ORG-thumb.03.R",
"neck_01" : "ORG-neck",
"head" : "ORG-head",
"thigh_l" : "ORG-thigh.L",
"calf_l" : "ORG-shin.L",
"foot_l" : "ORG-foot.L",
"ball_l" : "ORG-toe.L",
"thigh_r" : "ORG-thigh.R",
"calf_r" : "ORG-shin.R",
"foot_r" : "ORG-foot.R",
"ball_r" : "ORG-toe.R"
}
metarig_head_name = 'spine.006'
metarig_neckextra_name = 'spine.005'
metarig_neck_name = 'spine.004'
custom_bone_prefix = 'u_'
epic_rolls = {
'shoulder.L' : 0,
'upper_arm.L' : -90.0,
'forearm.L' : -90.0,
'hand.L' : 0,
'thumb.01.L' : 90.0,
'thumb.02.L' : 90.0,
'thumb.03.L' : 90.0,
'f_index.01.L' : 90.0,
'f_index.02.L' : 90.0,
'f_index.03.L' : 90.0,
'f_middle.01.L' : 90.0,
'f_middle.02.L' : 90.0,
'f_middle.03.L' : 90.0,
'f_ring.01.L' : 90.0,
'f_ring.02.L' : 90.0,
'f_ring.03.L' : 90.0,
'f_pinky.01.L' : 90.0,
'f_pinky.02.L' : 90.0,
'f_pinky.03.L' : 90.0,
'thigh.L' : 90.0,
'shin.L' : 90.0,
'foot.L' : 0,
'toe.L' : 90.0,
}
custom_rolls = {
'shoulder.L' : 0,
'upper_arm.L' : -90.0,
'forearm.L' : -90.0,
'hand.L' : -90.0,
'thumb.01.L' : 90.0,
'thumb.02.L' : 90.0,
'thumb.03.L' : 90.0,
'f_index.01.L' : 0,
'f_index.02.L' : 0,
'f_index.03.L' : 0,
'f_middle.01.L' : 0,
'f_middle.02.L' : 0,
'f_middle.03.L' : 0,
'f_ring.01.L' : 0,
'f_ring.02.L' : 0,
'f_ring.03.L' : 0,
'f_pinky.01.L' : 0,
'f_pinky.02.L' : 0,
'f_pinky.03.L' : 0,
'thigh.L' : 180,
'shin.L' : 180,
'foot.L' : 180,
'toe.L' : 0,
}
custom_mk_rolls = {
'shoulder.L' : 0,
'upper_arm.L' : 0,
'forearm.L' : 0,
'hand.L' : -45.0,
'thumb.01.L' : 0,
'thumb.02.L' : 0,
'thumb.03.L' : 0,
'f_index.01.L' : 0,
'f_index.02.L' : 0,
'f_index.03.L' : 0,
'f_middle.01.L' : 0,
'f_middle.02.L' : 0,
'f_middle.03.L' : 0,
'f_ring.01.L' : 0,
'f_ring.02.L' : 0,
'f_ring.03.L' : 0,
'f_pinky.01.L' : 0,
'f_pinky.02.L' : 0,
'f_pinky.03.L' : 0,
'thigh.L' : 0,
'shin.L' : 0,
'foot.L' : 0,
'toe.L' : 180.0,
}
mk_cpose_rolls = {
'shoulder.L' : -90.0,
'upper_arm.L' : -90.0,
'forearm.L' : -90.0,
'hand.L' : 45.0,
'thumb.01.L' : 90.0,
'thumb.02.L' : 90.0,
'thumb.03.L' : 90.0,
'f_index.01.L' : 90,
'f_index.02.L' : 90,
'f_index.03.L' : 90,
'f_middle.01.L' : 90,
'f_middle.02.L' : 90,
'f_middle.03.L' : 90,
'f_ring.01.L' : 90,
'f_ring.02.L' : 90,
'f_ring.03.L' : 90,
'f_pinky.01.L' : 90,
'f_pinky.02.L' : 90,
'f_pinky.03.L' : 90,
'thigh.L' : 90.0,
'shin.L' : 90.0,
#'foot.L' : 180,
#'toe.L' : 0,
}
epic_cpose_rolls = {
'shoulder.L' : 0,
'upper_arm.L' : 0,
'forearm.L' : 0,
'hand.L' : 0,
'thumb.01.L' : 0,
'thumb.02.L' : 0,
'thumb.03.L' : 0,
'f_index.01.L' : 0,
'f_index.02.L' : 0,
'f_index.03.L' : 0,
'f_middle.01.L' : 0,
'f_middle.02.L' : 0,
'f_middle.03.L' : 0,
'f_ring.01.L' : 0,
'f_ring.02.L' : 0,
'f_ring.03.L' : 0,
'f_pinky.01.L' : 0,
'f_pinky.02.L' : 0,
'f_pinky.03.L' : 0,
'thigh.L' : 0,
'shin.L' : 0,
#'foot.L' : 180,
#'toe.L' : 0,
}
custom_cpose_rolls = {
'shoulder.L' : 0,
'upper_arm.L' : 0,
'forearm.L' : 0,
'hand.L' : 90.0,
'thumb.01.L' : 0,
'thumb.02.L' : 0,
'thumb.03.L' : 0,
'f_index.01.L' : 90.0,
'f_index.02.L' : 90.0,
'f_index.03.L' : 90.0,
'f_middle.01.L' : 90.0,
'f_middle.02.L' : 90.0,
'f_middle.03.L' : 90.0,
'f_ring.01.L' : 90.0,
'f_ring.02.L' : 90.0,
'f_ring.03.L' : 90.0,
'f_pinky.01.L' : 90.0,
'f_pinky.02.L' : 90.0,
'f_pinky.03.L' : 90.0,
'thigh.L' : -90,
'shin.L' : -90,
#'foot.L' : 180,
#'toe.L' : 0,
}
MetaRigMapping = {
# "ORG-hips" : "spine",
# "ORG-spine1" : "spine.001",
# "ORG-spine2" : "spine.002",
# "ORG-spine3" : "spine.003",
"ORG-shoulder.L" : "shoulder.L",
"ORG-upper_arm.L" : "upper_arm.L",
"ORG-forearm.L" : "forearm.L",
"ORG-hand.L" : "hand.L",
"ORG-f_index.01.L" : "f_index.01.L",
"ORG-f_index.02.L" : "f_index.02.L",
"ORG-f_index.03.L" : "f_index.03.L",
"ORG-f_middle.01.L" : "f_middle.01.L",
"ORG-f_middle.02.L" : "f_middle.02.L",
"ORG-f_middle.03.L" : "f_middle.03.L",
"ORG-f_pinky.01.L" : "f_pinky.01.L",
"ORG-f_pinky.02.L" : "f_pinky.02.L",
"ORG-f_pinky.03.L" : "f_pinky.03.L",
"ORG-f_ring.01.L" : "f_ring.01.L",
"ORG-f_ring.02.L" : "f_ring.02.L",
"ORG-f_ring.03.L" : "f_ring.03.L",
"ORG-thumb.01.L" : "thumb.01.L",
"ORG-thumb.02.L" : "thumb.02.L",
"ORG-thumb.03.L" : "thumb.03.L",
"ORG-shoulder.R" : "shoulder.R",
"ORG-upper_arm.R" : "upper_arm.R",
"ORG-forearm.R" : "forearm.R",
"ORG-hand.R" : "hand.R",
"ORG-f_index.01.R" : "f_index.01.R",
"ORG-f_index.02.R" : "f_index.02.R",
"ORG-f_index.03.R" : "f_index.03.R",
"ORG-f_middle.01.R" : "f_middle.01.R",
"ORG-f_middle.02.R" : "f_middle.02.R",
"ORG-f_middle.03.R" : "f_middle.03.R",
"ORG-f_pinky.01.R" : "f_pinky.01.R",
"ORG-f_pinky.02.R" : "f_pinky.02.R",
"ORG-f_pinky.03.R" : "f_pinky.03.R",
"ORG-f_ring.01.R" : "f_ring.01.R",
"ORG-f_ring.02.R" : "f_ring.02.R",
"ORG-f_ring.03.R" : "f_ring.03.R",
"ORG-thumb.01.R" : "thumb.01.R",
"ORG-thumb.02.R" : "thumb.02.R",
"ORG-thumb.03.R" : "thumb.03.R",
# "ORG-neck" : "spine.004",
# "ORG-head" : "spine.006",
"ORG-thigh.L" : "thigh.L",
"ORG-shin.L" : "shin.L",
"ORG-foot.L" : "foot.L",
"ORG-toe.L" : "toe.L",
"ORG-thigh.R" : "thigh.R",
"ORG-shin.R" : "shin.R",
"ORG-foot.R" : "foot.R",
"ORG-toe.R" : "toe.R"
}
VertexGroupLookup = {
"ORG-hips" : "pelvis",
"ORG-spine1" : "spine_01",
"ORG-spine2" : "spine_02",
"ORG-spine3" : "spine_03",
"ORG-shoulder.L" : "clavicle_l",
"ORG-upper_arm.L" : "upperarm_l",
"ORG-forearm.L" : "lowerarm_l",
"ORG-hand.L" : "hand_l",
"ORG-f_index.01.L" : "index_01_l",
"ORG-f_index.02.L" : "index_02_l",
"ORG-f_index.03.L" : "index_03_l",
"ORG-f_middle.01.L" : "middle_01_l",
"ORG-f_middle.02.L" : "middle_02_l",
"ORG-f_middle.03.L" : "middle_03_l",
"ORG-f_pinky.01.L" : "pinky_01_l",
"ORG-f_pinky.02.L" : "pinky_02_l",
"ORG-f_pinky.03.L" : "pinky_03_l",
"ORG-f_ring.01.L" : "ring_01_l",
"ORG-f_ring.02.L" : "ring_02_l",
"ORG-f_ring.03.L" : "ring_03_l",
"ORG-thumb.01.L" : "thumb_01_l",
"ORG-thumb.02.L" : "thumb_02_l",
"ORG-thumb.03.L" : "thumb_03_l",
"ORG-shoulder.R" : "clavicle_r",
"ORG-upper_arm.R" : "upperarm_r",
"ORG-forearm.R" : "lowerarm_r",
"ORG-hand.R" : "hand_r",
"ORG-f_index.01.R" : "index_01_r",
"ORG-f_index.02.R" : "index_02_r",
"ORG-f_index.03.R" : "index_03_r",
"ORG-f_middle.01.R" : "middle_01_r",
"ORG-f_middle.02.R" : "middle_02_r",
"ORG-f_middle.03.R" : "middle_03_r",
"ORG-f_pinky.01.R" : "pinky_01_r",
"ORG-f_pinky.02.R" : "pinky_02_r",
"ORG-f_pinky.03.R" : "pinky_03_r",
"ORG-f_ring.01.R" : "ring_01_r",
"ORG-f_ring.02.R" : "ring_02_r",
"ORG-f_ring.03.R" : "ring_03_r",
"ORG-thumb.01.R" : "thumb_01_r",
"ORG-thumb.02.R" : "thumb_02_r",
"ORG-thumb.03.R" : "thumb_03_r",
"ORG-neck" : "neck_01",
"ORG-head" : "head",
"ORG-thigh.L" : "thigh_l",
"ORG-shin.L" : "calf_l",
"ORG-foot.L" : "foot_l",
"ORG-toe.L" : "ball_l",
"ORG-thigh.R" : "thigh_r",
"ORG-shin.R" : "calf_r",
"ORG-foot.R" : "foot_r",
"ORG-toe.R" : "ball_r"
}
UEBoneAlignMapping = {
"pelvis" : ('z', -1.0, 1.0),
"spine_01" : ('z', -1.0, 1.0),
"spine_02" : ('z', -1.0, 1.0),
"spine_03" : ('z', -1.0, 1.0),
"clavicle_l" : ('x', -1.0, 1.0),
"upperarm_l" : ('z', -1.0, 1.0),
"lowerarm_l" : ('z', -1.0, 1.0),
"hand_l" : ('x', 1.0, 1.0),
"index_01_l" : ('z', 1.0, 1.0),
"index_02_l" : ('z', 1.0, 1.0),
"index_03_l" : ('z', 1.0, 1.0),
"middle_01_l" : ('z', 1.0, 1.0),
"middle_02_l" : ('z', 1.0, 1.0),
"middle_03_l" : ('z', 1.0, 1.0),
"pinky_01_l" : ('z', 1.0, 1.0),
"pinky_02_l" : ('z', 1.0, 1.0),
"pinky_03_l" : ('z', 1.0, 1.0),
"ring_01_l" : ('z', 1.0, 1.0),
"ring_02_l" : ('z', 1.0, 1.0),
"ring_03_l" : ('z', 1.0, 1.0),
"thumb_01_l" : ('z', 1.0, 1.0),
"thumb_02_l" : ('z', 1.0, 1.0),
"thumb_03_l" : ('z', 1.0, 1.0),
"clavicle_r" : ('x', -1.0, -1.0),
"upperarm_r" : ('z', 1.0, -1.0),
"lowerarm_r" : ('z', 1.0, -1.0),
"hand_r" : ('x', 1.0, -1.0),
"index_01_r" : ('z', -1.0, -1.0),
"index_02_r" : ('z', -1.0, -1.0),
"index_03_r" : ('z', -1.0, -1.0),
"middle_01_r" : ('z', -1.0, -1.0),
"middle_02_r" : ('z', -1.0, -1.0),
"middle_03_r" : ('z', -1.0, -1.0),
"pinky_01_r" : ('z', -1.0, -1.0),
"pinky_02_r" : ('z', -1.0, -1.0),
"pinky_03_r" : ('z', -1.0, -1.0),
"ring_01_r" : ('z', -1.0, -1.0),
"ring_02_r" : ('z', -1.0, -1.0),
"ring_03_r" : ('z', -1.0, -1.0),
"thumb_01_r" : ('z', -1.0, -1.0),
"thumb_02_r" : ('z', -1.0, -1.0),
"thumb_03_r" : ('z', -1.0, -1.0),
"neck_01" : ('z', -1.0, 1.0),
"head" : ('z', -1.0, 1.0),
"thigh_l" : ('z', 1.0, -1.0),
"calf_l" : ('z', 1.0, -1.0),
#"foot_l" : ('z', 1.0, -1.0),
"ball_l" : ('z', 1.0, 1.0),
"thigh_r" : ('z', -1.0, 1.0),
"calf_r" : ('z', -1.0, 1.0),
#"foot_r" : ('z', -1.0, 1.0),
"ball_r" : ('z', -1.0, -1.0),
"upperarm_twist_01_l" : ('z', -1.0, 1.0),
"upperarm_twist_02_l" : ('z', -1.0, 1.0),
"lowerarm_twist_01_l" : ('z', -1.0, 1.0),
"lowerarm_twist_02_l" : ('z', -1.0, 1.0),
"thigh_twist_01_l" : ('z', 1.0, -1.0),
"thigh_twist_02_l" : ('z', 1.0, -1.0),
"calf_twist_01_l" : ('z', 1.0, -1.0),
"calf_twist_02_l" : ('z', 1.0, -1.0),
"upperarm_twist_01_r" : ('z', 1.0, -1.0),
"upperarm_twist_02_r" : ('z', 1.0, -1.0),
"lowerarm_twist_01_r" : ('z', 1.0, -1.0),
"lowerarm_twist_02_r" : ('z', 1.0, -1.0),
"thigh_twist_01_r" : ('z', -1.0, 1.0),
"thigh_twist_02_r" : ('z', -1.0, 1.0),
"calf_twist_01_r" : ('z', -1.0, 1.0),
"calf_twist_02_r" : ('z', -1.0, 1.0)
}
character_types = [
('2', 'Custom Mapping - MakeHuman', 'Character based on custom mapping for MakeHuman'),
('1', 'Custom Mapping - Fuse Character', 'Character based on custom mapping for Fuse'),
('0', 'Epic Skeleton', 'Default skeleton of UE4 mann.')]
axis_types = [
('0', '+ x-axis', 'Align to positive X-Axis'),
('1', '- x-axis', 'Align to negative X-Axis'),
('2', '+ z-axis', 'Align to positive Z-Axis'),
('3', '- z-axis', 'Align to negative Z-Axis')]
Ovako izgeda moj character https://imgur.com/a/I4xxzZL
vidovic-slobodan.blogspot.com