8923 lines
562 KiB
Python
8923 lines
562 KiB
Python
import maya.cmds as cmds
|
|
from functools import partial
|
|
import os, cPickle, math
|
|
import maya.mel as mel
|
|
import maya.utils
|
|
|
|
|
|
|
|
class AnimationUI():
|
|
|
|
def __init__(self):
|
|
|
|
#check to see if there are any rigs in the scene, if not return
|
|
characters = self.getCharacters()
|
|
print characters
|
|
if len(characters) == 0:
|
|
result = cmds.confirmDialog(title = "Error", message = "No Characters found in scene. Would you like to add a character now?", button = ["Yes", "No"], defaultButton = "Yes", cancelButton = "No", dismissString = "No")
|
|
if result == "Yes":
|
|
import ART_addCharacter_UI
|
|
reload(ART_addCharacter_UI)
|
|
UI = ART_addCharacter_UI.AddCharacter_UI()
|
|
|
|
return
|
|
|
|
else:
|
|
return
|
|
|
|
#get access to our maya tools
|
|
toolsPath = cmds.internalVar(usd = True) + "mayaTools.txt"
|
|
if os.path.exists(toolsPath):
|
|
|
|
f = open(toolsPath, 'r')
|
|
self.mayaToolsDir = f.readline()
|
|
f.close()
|
|
|
|
|
|
#figure out which project the rigs are from
|
|
references = cmds.ls(type = "reference")
|
|
self.project = ""
|
|
|
|
for ref in references:
|
|
try:
|
|
projects = os.listdir(self.mayaToolsDir + "/General/Icons/ART/Thumbnails/")
|
|
proj = cmds.referenceQuery(ref, filename = True, unresolvedName = True).rpartition("Projects/")[2].partition("/")[0]
|
|
|
|
if proj in projects:
|
|
self.project = proj
|
|
|
|
|
|
resolved = cmds.referenceQuery(ref, filename = True).rpartition("Projects/")[2].partition("/")[0]
|
|
if resolved in projects:
|
|
if resolved != self.project:
|
|
refPath = cmds.referenceQuery(ref, filename = True)
|
|
cmds.confirmDialog(title = "Reference", icon = "warning", message = "This file is currently referencing a rig file that is not located in the MayaTools directory.\nCurrent Reference path: " + refPath + ".")
|
|
|
|
|
|
|
|
except:
|
|
pass
|
|
|
|
|
|
path = self.mayaToolsDir + "/General/ART/Projects/" + self.project + "/banner.jpg"
|
|
if os.path.exists(path):
|
|
projectBanner = path
|
|
else:
|
|
projectBanner = self.mayaToolsDir + "/General/Icons/ART/banner.jpg"
|
|
|
|
#create class vars
|
|
self.widgets = {}
|
|
self.formsToHide = []
|
|
self.assetEntries = []
|
|
self.mats = []
|
|
|
|
|
|
#check to see if the skeleton builder UI exists with channel box
|
|
#check to see if window exists. if so, delete
|
|
if cmds.dockControl("skeletonBuilder_dock", exists = True):
|
|
|
|
channelBox = cmds.formLayout("SkelBuilder_channelBoxFormLayout", q = True, childArray = True)
|
|
if channelBox != None:
|
|
channelBox = channelBox[0]
|
|
|
|
#reparent the channelBox Layout back to maya's window
|
|
cmds.control(channelBox, e = True, p = "MainChannelsLayersLayout")
|
|
channelBoxLayout = mel.eval('$temp1=$gChannelsLayersForm')
|
|
channelBoxForm = mel.eval('$temp1 = $gChannelButtonForm')
|
|
|
|
#edit the channel box pane's attachment to the formLayout
|
|
cmds.formLayout(channelBoxLayout, edit = True, af = [(channelBox, "left", 0),(channelBox, "right", 0), (channelBox, "bottom", 0)], attachControl = (channelBox, "top", 0, channelBoxForm))
|
|
|
|
cmds.deleteUI("skeletonBuilder_dock")
|
|
|
|
|
|
|
|
#check to see if window exists. if so, delete
|
|
if cmds.dockControl("artAnimUIDock", exists = True):
|
|
|
|
channelBox = cmds.formLayout("ART_cbFormLayout", q = True, childArray = True)
|
|
if channelBox != None:
|
|
channelBox = channelBox[0]
|
|
|
|
#reparent the channelBox Layout back to maya's window
|
|
cmds.control(channelBox, e = True, p = "MainChannelsLayersLayout")
|
|
channelBoxLayout = mel.eval('$temp1=$gChannelsLayersForm')
|
|
channelBoxForm = mel.eval('$temp1 = $gChannelButtonForm')
|
|
|
|
#edit the channel box pane's attachment to the formLayout
|
|
cmds.formLayout(channelBoxLayout, edit = True, af = [(channelBox, "left", 0),(channelBox, "right", 0), (channelBox, "bottom", 0)], attachControl = (channelBox, "top", 0, channelBoxForm))
|
|
|
|
cmds.deleteUI("artAnimUIDock")
|
|
|
|
|
|
|
|
if cmds.window("artAnimUI", exists = True):
|
|
cmds.deleteUI("artAnimUI")
|
|
|
|
|
|
#build window
|
|
self.widgets["window"] = cmds.window("artAnimUI", w = 400, h = 700, title = "Animation UI", sizeable = True)
|
|
|
|
#create the main layout
|
|
self.widgets["topLevelLayout"] = cmds.columnLayout()
|
|
|
|
#create the menu bar
|
|
self.widgets["menuBarLayout"] = cmds.menuBarLayout(w = 400, h =20, parent = self.widgets["topLevelLayout"] )
|
|
self.widgets["menuBar_settings"] = cmds.menu(label = "Settings", parent = self.widgets["menuBarLayout"])
|
|
self.widgets["menuBar_settings_channelBox"] = cmds.menuItem(label = "Show Channel Box", checkBox = False, parent = self.widgets["menuBar_settings"], c = self.showChannelBox)
|
|
self.widgets["menuBar_settings_matching"] = cmds.menuItem(label = "Match On Switch", checkBox = True, parent = self.widgets["menuBar_settings"])
|
|
|
|
#add match options
|
|
cmds.menuItem(parent = self.widgets["menuBar_settings"], divider = True)
|
|
cmds.menuItem(parent = self.widgets["menuBar_settings"], label = "Space Switch Settings", enable = False)
|
|
cmds.menuItem(parent = self.widgets["menuBar_settings"], divider = True)
|
|
|
|
self.widgets["spaceSwitch_MatchToggleCB"] = cmds.menuItem(parent = self.widgets["menuBar_settings"], label = "Match?", cb = True, c = self.saveUISettings)
|
|
self.widgets["spaceSwitch_MatchMethodCB"] = cmds.menuItem(parent = self.widgets["menuBar_settings"], label = "Match To Control?", cb = True, c = self.saveUISettings)
|
|
|
|
#Add animation menu
|
|
self.widgets["menuBar_animation"] = cmds.menu(label = "Animation", parent = self.widgets["menuBarLayout"])
|
|
self.widgets["menuBar_animation_eulerAll"] = cmds.menuItem(label = "Run Euler Filter On All", c = self.eulerFilterAll, parent = self.widgets["menuBar_animation"])
|
|
self.widgets["menuBar_animation_eulerSel"] = cmds.menuItem(label = "Run Euler Filter On Selected", c = self.eulerFilterSelected, parent = self.widgets["menuBar_animation"])
|
|
self.widgets["menuBar_animation_bakeDyn"] = cmds.menuItem(label = "Bake Dynamics to FK", c = self.bakeDynToFK, parent = self.widgets["menuBar_animation"])
|
|
|
|
|
|
|
|
#create the area for the active character controls
|
|
self.widgets["activeCharacterLayout"] = cmds.formLayout(w = 400, h = 60, parent = self.widgets["topLevelLayout"])
|
|
self.widgets["projectBanner"] = cmds.image(w = 400, h = 60, bgc = [.5, .5, .5], parent = self.widgets["activeCharacterLayout"], image = projectBanner )
|
|
self.widgets["activeCharacterThumb"] = cmds.symbolButton('activeCharacterThumb', w = 50, h = 50, parent = self.widgets["activeCharacterLayout"])
|
|
|
|
cmds.formLayout(self.widgets["activeCharacterLayout"], edit = True, af = [(self.widgets["activeCharacterThumb"], "right", 5), (self.widgets["activeCharacterThumb"], "top", 6)])
|
|
|
|
#create the character list pop-up menu
|
|
self.widgets["characterRigList"] = cmds.popupMenu(parent = self.widgets["activeCharacterThumb"], b = 1)
|
|
self.populateCharacterRigList()
|
|
|
|
#create the row column layout where the left column will contain pretty much everything, and the right column is optional for channel box display
|
|
self.widgets["rowColLayout"] = cmds.rowColumnLayout(nc = 3, cw = [(1, 400), (2, 50), (3, 1)], parent = self.widgets["topLevelLayout"])
|
|
|
|
|
|
#create the main tab Layout
|
|
self.widgets["mainLayout"] = cmds.tabLayout(w = 400, h = 700, parent = self.widgets["rowColLayout"])
|
|
|
|
#create the formLayout that will contain each character's picker
|
|
self.widgets["pickerLayout"] = cmds.formLayout(w = 400, h = 700, parent = self.widgets["mainLayout"])
|
|
self.widgets["pickerScroll"] = cmds.scrollLayout(w = 400, h = 700, hst = 0, parent = self.widgets["pickerLayout"])
|
|
|
|
|
|
|
|
|
|
#create the tools layout(50 pixel column on the screen right)
|
|
self.widgets["pickerTools"] = cmds.columnLayout(w = 50, h = 700, parent = self.widgets["rowColLayout"], rowSpacing = 10)
|
|
cmds.text(label = "")
|
|
self.widgets["pickerSelectTool"] = cmds.symbolButton(w = 50, h = 50, image = self.mayaToolsDir + "/General/Icons/ART/pickerSelect.bmp", parent = self.widgets["pickerTools"], ann = "Selection Tools")
|
|
self.widgets["pickerResetTool"] = cmds.symbolButton(w = 50, h = 50, image = self.mayaToolsDir + "/General/Icons/ART/zero.bmp", parent = self.widgets["pickerTools"], ann = "Reset Rig to the Defaults")
|
|
self.widgets["pickerImportMotionTool"] = cmds.symbolButton(w = 50, h = 50, image = self.mayaToolsDir + "/General/Icons/ART/importMotion.bmp", parent = self.widgets["pickerTools"], c = self.importMotion, ann = "Import Motion")
|
|
self.widgets["pickerExportMotionTool"] = cmds.symbolButton(w = 50, h = 50, image = self.mayaToolsDir + "/General/Icons/ART/exportMotion.bmp", parent = self.widgets["pickerTools"], c = self.exportMotion, ann = "Export Motion")
|
|
self.widgets["pickerSpaceSwitchTool"] = cmds.symbolButton(w = 50, h = 50, image = self.mayaToolsDir + "/General/Icons/ART/picker_spaceSwitch.bmp", parent = self.widgets["pickerTools"], c = self.spaceSwitcher, ann = "Space Switching")
|
|
self.widgets["pickerPoseTools"] = cmds.symbolButton(c = self.poseEditor, w = 50, h = 50, image = self.mayaToolsDir + "/General/Icons/ART/poseTools.bmp", parent = self.widgets["pickerTools"], ann = "Pose Tools and Utilities")
|
|
self.widgets["pickerMatchOverRange"] = cmds.symbolButton(c = self.match_frameRange_UI, w = 50, h = 50, image = self.mayaToolsDir + "/General/Icons/ART/spaceSwitchMatch_on.bmp", parent = self.widgets["pickerTools"], ann = "Match Over Frame Range")
|
|
self.widgets["pickerControlScaleTool"] = cmds.symbolButton(c = self.control_scale_init, w = 50, h = 50, image = self.mayaToolsDir + "/General/Icons/ART/controlScale.bmp", parent = self.widgets["pickerTools"], ann = "Scale selected controls' size. Use to make controls larger or smaller for selecting.")
|
|
self.widgets["pickerControlVisibility"] = cmds.iconTextCheckBox(w = 50, h = 50, style='iconOnly', value = True, selectionImage = self.mayaToolsDir + "/General/Icons/ART/pickerVisible.bmp", image = self.mayaToolsDir + "/General/Icons/ART/pickerInvisible.bmp", parent = self.widgets["pickerTools"], onc = partial(self.toggleControlVis, True), ofc = partial(self.toggleControlVis, False), ann = "Toggle Current Rig's Control Visibility" )
|
|
self.widgets["pickerSelectionSets"] = cmds.symbolButton(c = self.control_scale_init, w = 50, h = 50, image = self.mayaToolsDir + "/General/Icons/ART/selectionSets.bmp", parent = self.widgets["pickerTools"], ann = "Selection Sets that are created are stored here.")
|
|
self.widgets["pickerHelpMenu"] = cmds.symbolButton(w = 50, h = 50, image = self.mayaToolsDir + "/General/Icons/ART/helpicon.bmp", parent = self.widgets["pickerTools"], c = self.animHelp, ann = "Help")
|
|
|
|
#create popup menu for space switcher
|
|
menu = cmds.popupMenu(parent = self.widgets["pickerSpaceSwitchTool"], b = 3)
|
|
cmds.menuItem(label = "Create Space", parent = menu, c = self.createSpace)
|
|
|
|
#create radial menu for pose button for copy, paste, and paste opposite
|
|
self.widgets["pickerPoseToolsRadial"] = cmds.popupMenu(b = 3, parent = self.widgets["pickerPoseTools"], mm = True)
|
|
self.widgets["pickerPoseToolsRadial_copy"] = cmds.menuItem(label = "Copy", parent = self.widgets["pickerPoseToolsRadial"], rp = "N", c = self.copyPose)
|
|
self.widgets["pickerPoseToolsRadial_paste"] = cmds.menuItem(label = "Paste", parent = self.widgets["pickerPoseToolsRadial"], rp = "W", c = self.pastePose)
|
|
self.widgets["pickerPoseToolsRadial_pasteOpposite"] = cmds.menuItem(label = "Paste Opposite", parent = self.widgets["pickerPoseToolsRadial"], rp = "S", c = self.pastePoseOpposite)
|
|
self.widgets["pickerPoseToolsRadial_pastePreview"] = cmds.menuItem(label = "Show Paste Controls", parent = self.widgets["pickerPoseToolsRadial"], rp = "NW", c = self.pastePreview)
|
|
self.widgets["pickerPoseToolsRadial_pastePreviewOpp"] = cmds.menuItem(label = "Show Paste Opposite Controls", parent = self.widgets["pickerPoseToolsRadial"], rp = "SW", c = self.pasteOppositePreview)
|
|
|
|
#create radial menu for iso select tools
|
|
self.widgets["isoSelectRadial"] = cmds.popupMenu(b = 3, parent = self.widgets["pickerControlVisibility"])
|
|
self.widgets["isoSelect_Generate"] = cmds.menuItem(label = "Generate Iso Selection Sets", parent = self.widgets["isoSelectRadial"], c = self.getIsoSelectionPolygons, enable = True)
|
|
cmds.menuItem(divider = True, parent = self.widgets["isoSelectRadial"] )
|
|
|
|
|
|
self.widgets["isoSelect_Torso"] = cmds.menuItem(label = "Torso", parent = self.widgets["isoSelectRadial"], c = self.isoSelect, cb = True, enable = False)
|
|
self.widgets["isoSelect_LeftArm"] = cmds.menuItem(label = "Left Arm", parent = self.widgets["isoSelectRadial"], c = self.isoSelect, cb = True, enable = False)
|
|
self.widgets["isoSelect_RightArm"] = cmds.menuItem(label = "Right Arm", parent = self.widgets["isoSelectRadial"], c = self.isoSelect, cb = True, enable = False)
|
|
self.widgets["isoSelect_LeftLeg"] = cmds.menuItem(label = "Left Leg", parent = self.widgets["isoSelectRadial"], c = self.isoSelect, cb = True, enable = False)
|
|
self.widgets["isoSelect_RightLeg"] = cmds.menuItem(label = "Right Leg", parent = self.widgets["isoSelectRadial"], c = self.isoSelect, cb = True, enable = False)
|
|
self.widgets["isoSelect_Head"] = cmds.menuItem(label = "Head", parent = self.widgets["isoSelectRadial"], c = self.isoSelect, cb = True, enable = False)
|
|
self.widgets["isoSelect_ShowAll"] = cmds.menuItem(label = "Show All", parent = self.widgets["isoSelectRadial"], c = self.exitIso, enable = False)
|
|
|
|
|
|
cmds.menuItem(divider = True, parent = self.widgets["isoSelectRadial"] )
|
|
cmds.menuItem(label = "Isolation Method:", parent = self.widgets["isoSelectRadial"], enable = False)
|
|
isoMethodCollection = cmds.radioMenuItemCollection(parent = self.widgets["isoSelectRadial"])
|
|
self.widgets["isoMethodClassic"] = cmds.menuItem(label = "Classic", rb = True, cl = isoMethodCollection, parent = self.widgets["isoSelectRadial"], ann = "Use Maya's isolate selection, where everything except selection is hidden", c = self.exitIso)
|
|
self.widgets["isoMethodMaterial"] = cmds.menuItem(label = "Material", rb = False, cl = isoMethodCollection, parent = self.widgets["isoSelectRadial"], c = self.exitIso, ann = "Use custom isolate selection function where any unselected parts are invisible, but the rest of the scene does not get hidden.")
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
#selection sets menu
|
|
self.widgets["selectionSetMenuPopUp"] = cmds.popupMenu(b = 1, parent = self.widgets["pickerSelectionSets"])
|
|
|
|
#create the selection popupMenu
|
|
self.widgets["pickerSelectionToolPopup"] = cmds.popupMenu(b = 1, parent = self.widgets["pickerSelectTool"])
|
|
self.widgets["pickerSelectionToolPopup_Controls"] = cmds.menuItem(label = "Select All Controls", parent = self.widgets["pickerSelectionToolPopup"], c = self.selectAll)
|
|
self.widgets["pickerSelectionToolPopup_All"] = cmds.menuItem(label = "Select All (Controls + Spaces)", parent = self.widgets["pickerSelectionToolPopup"], c = self.selectEverything)
|
|
self.widgets["pickerSelectionToolPopup_Settings"] = cmds.menuItem(label = "Select Rig Settings", parent = self.widgets["pickerSelectionToolPopup"], c = self.selectRigSettings)
|
|
self.widgets["pickerSelectionToolPopup_Custom"] = cmds.menuItem(label = "Create Selection Set", parent = self.widgets["pickerSelectionToolPopup"], c = self.createSelectionSet)
|
|
self.widgets["selectionSetsCustom"] = cmds.menuItem(label = "Selection Sets", parent = self.widgets["pickerSelectionToolPopup"], subMenu = True, tearOff = True)
|
|
|
|
#create the reset popupMenu
|
|
self.widgets["pickerResetToolPopup"] = cmds.popupMenu(b = 1, parent = self.widgets["pickerResetTool"])
|
|
self.widgets["pickerResetToolPopup_All"] = cmds.menuItem(label = "Zero out All", parent = self.widgets["pickerResetToolPopup"], c = self.resetAll)
|
|
self.widgets["pickerResetToolPopup_Selected"] = cmds.menuItem(label = "Zero out Selected", parent = self.widgets["pickerResetToolPopup"], c = self.resetSelection)
|
|
|
|
|
|
|
|
#create the character picker for each character found in the scene
|
|
characters = self.getCharacters()
|
|
|
|
for character in characters:
|
|
self.createCharacterPicker(character, self.widgets["pickerScroll"])
|
|
|
|
|
|
|
|
#create the list view picker for each character found in the scene
|
|
self.widgets["listViewLayout"] = cmds.formLayout(w = 400, h = 700, parent = self.widgets["mainLayout"])
|
|
|
|
for character in characters:
|
|
self.createListView(character, self.widgets["listViewLayout"])
|
|
|
|
|
|
#create channel box layout
|
|
self.widgets["cbFormLayout"] = cmds.formLayout("ART_cbFormLayout", w = 200, h = 700, parent = self.widgets["rowColLayout"])
|
|
|
|
|
|
|
|
|
|
#create the rig settings tab
|
|
self.widgets["rigSettingsLayout"] = cmds.formLayout(w = 400, h = 700, parent = self.widgets["mainLayout"])
|
|
self.widgets["rigSettingsScroll"] = cmds.scrollLayout(w = 400, h = 700, hst = 0, parent = self.widgets["rigSettingsLayout"])
|
|
|
|
for character in characters:
|
|
self.createRigSettings(character, self.widgets["rigSettingsScroll"])
|
|
|
|
|
|
|
|
|
|
|
|
#name the tabs
|
|
cmds.tabLayout(self.widgets["mainLayout"], edit = True, tabLabel = [(self.widgets["pickerLayout"], "Picker"), (self.widgets["listViewLayout"], "List View"), (self.widgets["rigSettingsLayout"], "Rig Settings")])
|
|
|
|
|
|
#show window
|
|
self.widgets["dock"] = cmds.dockControl("artAnimUIDock", label = "Animation Interface", content = self.widgets["window"], area = "right", allowedArea = "right", visibleChangeCommand = self.interfaceScriptJob)
|
|
|
|
|
|
#add attributes to controls
|
|
self.setupButtonAttrsOnControls()
|
|
|
|
#setup selection scriptJob
|
|
self.scriptJob = cmds.scriptJob(parent = self.widgets["window"], event = ["SelectionChanged", self.selectionScriptJob], kws = True)
|
|
|
|
#set the current selected character and change the thumbnail
|
|
selected = characters[len(characters)-1]
|
|
self.setThumbnail(selected, self.project)
|
|
self.switchActiveCharacter(selected)
|
|
|
|
|
|
#get all controls
|
|
self.controls = []
|
|
for control in ["head_fk_anim", "neck_01_fk_anim", "neck_02_fk_anim", "neck_03_fk_anim", "spine_01_anim", "spine_02_anim", "spine_03_anim", "spine_04_anim", "spine_05_anim", "mid_ik_anim", "chest_ik_anim",
|
|
"body_anim", "hip_anim", "clavicle_l_anim", "clavicle_r_anim", "fk_arm_l_anim", "fk_arm_r_anim", "fk_elbow_l_anim", "fk_elbow_r_anim", "fk_wrist_l_anim", "fk_wrist_r_anim",
|
|
"ik_elbow_l_anim", "ik_elbow_r_anim", "ik_wrist_l_anim", "ik_wrist_r_anim", "fk_thigh_l_anim", "fk_thigh_r_anim", "fk_calf_l_anim", "fk_calf_r_anim", "fk_foot_l_anim", "fk_foot_r_anim",
|
|
"fk_ball_l_anim", "fk_ball_r_anim", "ik_foot_anim_l", "ik_foot_anim_r", "heel_ctrl_l", "heel_ctrl_r", "toe_wiggle_ctrl_l", "toe_wiggle_ctrl_r",
|
|
"toe_tip_ctrl_l", "toe_tip_ctrl_r", "master_anim", "offset_anim", "root_anim", "upperarm_l_twist_anim", "upperarm_l_twist_2_anim", "upperarm_l_twist_3_anim", "upperarm_r_twist_anim", "upperarm_r_twist_2_anim", "upperarm_r_twist_3_anim", "l_thigh_twist_01_anim", "r_thigh_twist_01_anim",
|
|
"pinky_metacarpal_ctrl_l", "pinky_metacarpal_ctrl_r", "pinky_finger_fk_ctrl_1_l", "pinky_finger_fk_ctrl_1_r", "pinky_finger_fk_ctrl_2_l", "pinky_finger_fk_ctrl_2_r", "pinky_finger_fk_ctrl_3_l", "pinky_finger_fk_ctrl_3_r",
|
|
"ring_metacarpal_ctrl_l", "ring_metacarpal_ctrl_r", "ring_finger_fk_ctrl_1_l", "ring_finger_fk_ctrl_1_r", "ring_finger_fk_ctrl_2_l", "ring_finger_fk_ctrl_2_r", "ring_finger_fk_ctrl_3_l", "ring_finger_fk_ctrl_3_r",
|
|
"middle_metacarpal_ctrl_l", "middle_metacarpal_ctrl_r", "middle_finger_fk_ctrl_1_l", "middle_finger_fk_ctrl_1_r", "middle_finger_fk_ctrl_2_l", "middle_finger_fk_ctrl_2_r", "middle_finger_fk_ctrl_3_l", "middle_finger_fk_ctrl_3_r",
|
|
"index_metacarpal_ctrl_l", "index_metacarpal_ctrl_r", "index_finger_fk_ctrl_1_l", "index_finger_fk_ctrl_1_r", "index_finger_fk_ctrl_2_l", "index_finger_fk_ctrl_2_r", "index_finger_fk_ctrl_3_l", "index_finger_fk_ctrl_3_r",
|
|
"thumb_finger_fk_ctrl_1_l", "thumb_finger_fk_ctrl_1_r", "thumb_finger_fk_ctrl_2_l", "thumb_finger_fk_ctrl_2_r", "thumb_finger_fk_ctrl_3_l", "thumb_finger_fk_ctrl_3_r",
|
|
"index_l_ik_anim", "index_r_ik_anim", "middle_l_ik_anim", "middle_r_ik_anim", "ring_l_ik_anim", "ring_r_ik_anim", "pinky_l_ik_anim", "pinky_r_ik_anim", "thumb_l_ik_anim", "thumb_r_ik_anim",
|
|
"index_l_poleVector", "index_r_poleVector", "middle_l_poleVector", "middle_r_poleVector", "ring_l_poleVector", "ring_r_poleVector", "pinky_l_poleVector", "pinky_r_poleVector", "thumb_l_poleVector", "thumb_r_poleVector",
|
|
"l_global_ik_anim", "r_global_ik_anim", "lowerarm_l_twist_anim", "lowerarm_l_twist2_anim", "lowerarm_l_twist3_anim", "lowerarm_r_twist_anim", "lowerarm_r_twist2_anim", "lowerarm_r_twist3_anim", "calf_r_twist_anim", "calf_r_twist2_anim", "calf_r_twist3_anim",
|
|
"calf_l_twist_anim", "calf_l_twist2_anim", "calf_l_twist3_anim", "thigh_l_twist_2_anim", "thigh_l_twist_3_anim", "thigh_r_twist_2_anim", "thigh_r_twist_3_anim"]:
|
|
self.controls.append(control)
|
|
|
|
#hack
|
|
character = selected
|
|
for obj in ["fk_clavicle_l_anim", "fk_clavicle_r_anim"]:
|
|
if cmds.objExists(character + ":" + obj):
|
|
self.controls.append(obj)
|
|
|
|
#find custom joints
|
|
character = selected
|
|
customJoints = []
|
|
attrs = cmds.listAttr(character + ":" + "Skeleton_Settings")
|
|
for attr in attrs:
|
|
if attr.find("extraJoint") == 0:
|
|
customJoints.append(attr)
|
|
|
|
for joint in customJoints:
|
|
attribute = cmds.getAttr(character + ":" + "Skeleton_Settings." + joint, asString = True)
|
|
jointType = attribute.partition("/")[2].partition("/")[0]
|
|
label = attribute.rpartition("/")[2]
|
|
|
|
if jointType == "leaf":
|
|
label = label.partition(" (")[0]
|
|
control = label + "_anim"
|
|
self.controls.append(control)
|
|
|
|
if jointType == "jiggle":
|
|
control = label + "_anim"
|
|
self.controls.append(control)
|
|
|
|
if jointType == "chain" or jointType == "dynamic":
|
|
numJointsInChain = label.partition("(")[2].partition(")")[0]
|
|
label = label.partition(" (")[0]
|
|
|
|
self.controls.append(label + "_dyn_anim")
|
|
|
|
cmds.select("*:" + label + "_ik_*_anim")
|
|
selection = cmds.ls(sl = True)
|
|
for each in selection:
|
|
niceName = each.partition(":")[2]
|
|
self.controls.append(niceName)
|
|
|
|
for i in range(int(numJointsInChain)):
|
|
self.controls.append("fk_" + label + "_0" + str(i + 1) + "_anim")
|
|
self.controls.append(label + "_cv_" + str(i) + "_anim")
|
|
|
|
|
|
|
|
#load UI settings
|
|
self.loadUISettings()
|
|
self.findCustomSelectionSets()
|
|
|
|
#create script job for updating ui
|
|
self.updateUI_scriptJob()
|
|
|
|
#setup the scriptJob
|
|
cmds.scriptJob(event = ["readingFile", self.killUIScriptJob], runOnce = True, kws = True)
|
|
cmds.scriptJob(event = ["SceneSaved", self.exitIsoOnSave], parent = self.widgets["window"], kws = True, runOnce = True)
|
|
|
|
|
|
|
|
|
|
# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
|
|
# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
|
|
# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
|
|
# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
|
|
# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
|
|
def bakeDynToFK(self, *args):
|
|
|
|
#find all of the dynamic controls
|
|
character = cmds.symbolButton(self.widgets["activeCharacterThumb"], q = True, ann = True)
|
|
cmds.select(character + ":" + "*dyn_anim")
|
|
dynControls = cmds.ls(sl = True)
|
|
|
|
if len(dynControls) > 0:
|
|
|
|
#list the controls in a UI
|
|
if cmds.window("bakeDynToFKControls_UI", exists = True):
|
|
cmds.deleteUI("bakeDynToFKControls_UI")
|
|
|
|
window = cmds.window("bakeDynToFKControls_UI", title = "Bake Dynamics", w = 300, h = 400, sizeable = True, mnb = False, mxb = False)
|
|
mainLayout = cmds.formLayout(w = 300, h = 400)
|
|
|
|
#textScrollList
|
|
self.widgets["bakeDynToFK_List"] = cmds.textScrollList(w = 200, h = 300, allowMultiSelection = True, parent = mainLayout)
|
|
|
|
for control in dynControls:
|
|
cmds.textScrollList(self.widgets["bakeDynToFK_List"], edit = True, append = control)
|
|
|
|
cmds.formLayout(mainLayout, edit = True, af = [(self.widgets["bakeDynToFK_List"], "top", 50), (self.widgets["bakeDynToFK_List"], "left", 5)] )
|
|
|
|
#process button
|
|
button = cmds.button(w = 80, h = 40, label = "Bake", c = self.bakeDynToFK_Process)
|
|
cmds.formLayout(mainLayout, edit = True, af = [(button, "bottom", 50),(button, "right", 5)])
|
|
cmds.showWindow(window)
|
|
|
|
|
|
else:
|
|
cmds.warning("No Dynamic controls found on the current character.")
|
|
return
|
|
|
|
|
|
# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
|
|
# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
|
|
# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
|
|
# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
|
|
# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
|
|
def bakeDynToFK_Process(self, *args):
|
|
|
|
character = cmds.symbolButton(self.widgets["activeCharacterThumb"], q = True, ann = True)
|
|
|
|
#get the selected controls in the list
|
|
controlsToBake = cmds.textScrollList(self.widgets["bakeDynToFK_List"], q = True, si = True)
|
|
|
|
if controlsToBake != None:
|
|
|
|
#find the corresponding fk controls
|
|
for control in controlsToBake:
|
|
name = control.partition(":")[2].partition("_dyn_anim")[0]
|
|
|
|
masterGrp = character + ":" + name + "_master_ctrl_grp"
|
|
|
|
cmds.select(masterGrp, hi = True)
|
|
nodes = cmds.ls(sl = True)
|
|
|
|
fkControls = []
|
|
for node in nodes:
|
|
if node.find(":fk_") != -1:
|
|
if node.find("_anim") != -1:
|
|
if cmds.nodeType(node) == "transform":
|
|
fkControls.append(node)
|
|
|
|
|
|
#constrain the fk controls to the dny joints
|
|
#Husk_Base:fk_hood_01_anim
|
|
constraints = []
|
|
for control in fkControls:
|
|
niceName = control.partition("fk_")[2].partition("_anim")[0]
|
|
joint = character + ":" + "rig_dyn_" + niceName
|
|
|
|
constraint = cmds.orientConstraint(joint, control)[0]
|
|
constraints.append(constraint)
|
|
|
|
#select the FK controls and bake
|
|
start = cmds.playbackOptions(q = True, min = True)
|
|
end = cmds.playbackOptions(q = True, max = True)
|
|
|
|
cmds.select(clear = True)
|
|
for control in fkControls:
|
|
cmds.select(control, add = True)
|
|
|
|
cmds.bakeResults(simulation = True, time = (start, end))
|
|
cmds.delete(constraints)
|
|
|
|
#set to FK
|
|
cmds.setAttr(character + ":" + "Rig_Settings." + name + "_fk", 1)
|
|
cmds.setAttr(character + ":" + "Rig_Settings." + name + "_ik", 0)
|
|
cmds.setAttr(character + ":" + "Rig_Settings." + name + "_dynamic", 0)
|
|
|
|
#delete the UI
|
|
cmds.deleteUI("bakeDynToFKControls_UI")
|
|
|
|
|
|
|
|
# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
|
|
# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
|
|
# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
|
|
# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
|
|
# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
|
|
def getIsoSelectionPolygons(self, *args):
|
|
|
|
cmds.progressWindow(title='Animation UI', progress=0, status='Building Iso Selection Sets', isInterruptable=True )
|
|
character = cmds.symbolButton(self.widgets["activeCharacterThumb"], q = True, ann = True)
|
|
|
|
|
|
#create the list of iso selection polygons
|
|
self.torsoFaces = []
|
|
self.leftArmFaces = []
|
|
self.rightArmFaces = []
|
|
self.leftLegFaces = []
|
|
self.rightLegFaces = []
|
|
self.headFaces = []
|
|
|
|
#lists of what joints belong to which "part"
|
|
torso = ["pelvis", "spine_01", "spine_02", "spine_03", "spine_04", "spine_05", "clavicle_l", "clavicle_r"]
|
|
leftArm = ["upperarm_l", "lowerarm_l", "hand_l", "index_metacarpal_l", "index_01_l", "index_02_l", "index_03_l", "middle_metacarpal_l", "middle_01_l", "middle_02_l", "middle_03_l", "ring_metacarpal_l", "ring_01_l", "ring_02_l", "ring_03_l", "pinky_metacarpal_l", "pinky_01_l", "pinky_02_l", "pinky_03_l", "thumb_01_l", "thumb_02_l", "thumb_03_l", "lowerarm_twist_01_l", "lowerarm_twist_02_l", "lowerarm_twist_03_l", "upperarm_twist_01_l", "upperarm_twist_02_l", "upperarm_twist_03_l" ]
|
|
rightArm = ["upperarm_r", "lowerarm_r", "hand_r", "index_metacarpal_r", "index_01_r", "index_02_r", "index_03_r", "middle_metacarpal_r", "middle_01_r", "middle_02_r", "middle_03_r", "ring_metacarpal_r", "ring_01_r", "ring_02_r", "ring_03_r", "pinky_metacarpal_r", "pinky_01_r", "pinky_02_r", "pinky_03_r", "thumb_01_r", "thumb_02_r", "thumb_03_r", "lowerarm_twist_01_r", "lowerarm_twist_02_r", "lowerarm_twist_03_r", "upperarm_twist_01_r", "upperarm_twist_02_r", "upperarm_twist_03_r" ]
|
|
leftLeg = ["thigh_l", "calf_l", "foot_l", "ball_l", "thigh_twist_01_l", "thigh_twist_02_l", "thigh_twist_03_l", "calf_twist_01_l", "calf_twist_02_l", "calf_twist_03_l"]
|
|
rightLeg = ["thigh_r", "calf_r", "foot_r", "ball_r", "thigh_twist_01_r", "thigh_twist_02_r", "thigh_twist_03_r", "calf_twist_01_r", "calf_twist_02_r", "calf_twist_03_r"]
|
|
head = ["neck_01", "neck_02", "neck_03", "head"]
|
|
characterGeo = []
|
|
|
|
|
|
#find all of the skin clusters. In each one, find the weighted joints and the geometry weighted to those joints
|
|
skinClusters = cmds.ls(type = 'skinCluster')
|
|
|
|
|
|
for skin in skinClusters:
|
|
weightedJoints = cmds.skinCluster(skin, q = True, weightedInfluence = True)
|
|
|
|
for joint in weightedJoints:
|
|
#add faces to the iso selection lists
|
|
if joint.partition(character + ":")[2] in torso:
|
|
geometryShape = cmds.skinCluster(skin, q = True, geometry = True)
|
|
geometry = cmds.listRelatives(geometryShape, parent = True)[0]
|
|
characterGeo.append([geometry, "Torso", skin])
|
|
|
|
if joint.partition(character + ":")[2] in leftArm:
|
|
geometryShape = cmds.skinCluster(skin, q = True, geometry = True)
|
|
geometry = cmds.listRelatives(geometryShape, parent = True)[0]
|
|
characterGeo.append([geometry, "LeftArm", skin])
|
|
|
|
if joint.partition(character + ":")[2] in rightArm:
|
|
geometryShape = cmds.skinCluster(skin, q = True, geometry = True)
|
|
geometry = cmds.listRelatives(geometryShape, parent = True)[0]
|
|
characterGeo.append([geometry, "RightArm", skin])
|
|
|
|
|
|
if joint.partition(character + ":")[2] in leftLeg:
|
|
geometryShape = cmds.skinCluster(skin, q = True, geometry = True)
|
|
geometry = cmds.listRelatives(geometryShape, parent = True)[0]
|
|
characterGeo.append([geometry, "LeftLeg", skin])
|
|
|
|
|
|
if joint.partition(character + ":")[2] in rightLeg:
|
|
geometryShape = cmds.skinCluster(skin, q = True, geometry = True)
|
|
geometry = cmds.listRelatives(geometryShape, parent = True)[0]
|
|
characterGeo.append([geometry, "RightLeg", skin])
|
|
|
|
|
|
if joint.partition(character + ":")[2] in head:
|
|
geometryShape = cmds.skinCluster(skin, q = True, geometry = True)
|
|
geometry = cmds.listRelatives(geometryShape, parent = True)[0]
|
|
characterGeo.append([geometry, "Head", skin])
|
|
|
|
|
|
|
|
|
|
progress = 100/len(characterGeo)
|
|
originalProgress = 100/len(characterGeo)
|
|
|
|
for geo in characterGeo:
|
|
geom = geo[0]
|
|
part = geo[1]
|
|
skin = geo[2]
|
|
|
|
polys = cmds.polyEvaluate(geom, face = True)
|
|
|
|
cmds.progressWindow(edit = True, progress = progress, status='Building Iso Selection Sets')
|
|
progress = progress + originalProgress
|
|
|
|
|
|
for i in range(int(polys)):
|
|
transforms = cmds.skinPercent( skin, geom + ".f[" + str(i) + "]", ib = .25, query=True, t= None)
|
|
if transforms != None:
|
|
|
|
if part == "Torso":
|
|
for transform in transforms:
|
|
if transform.partition(character + ":")[2] in torso:
|
|
self.torsoFaces.append(geom + ".f[" + str(i) + "]")
|
|
|
|
if part == "LeftArm":
|
|
for transform in transforms:
|
|
if transform.partition(character + ":")[2] in leftArm:
|
|
self.leftArmFaces.append(geom + ".f[" + str(i) + "]")
|
|
|
|
if part == "RightArm":
|
|
for transform in transforms:
|
|
if transform.partition(character + ":")[2] in rightArm:
|
|
self.rightArmFaces.append(geom + ".f[" + str(i) + "]")
|
|
|
|
if part == "LeftLeg":
|
|
for transform in transforms:
|
|
if transform.partition(character + ":")[2] in leftLeg:
|
|
self.leftLegFaces.append(geom + ".f[" + str(i) + "]")
|
|
|
|
if part == "RightLeg":
|
|
for transform in transforms:
|
|
if transform.partition(character + ":")[2] in rightLeg:
|
|
self.rightLegFaces.append(geom + ".f[" + str(i) + "]")
|
|
|
|
if part == "Head":
|
|
for transform in transforms:
|
|
if transform.partition(character + ":")[2] in head:
|
|
self.headFaces.append(geom + ".f[" + str(i) + "]")
|
|
|
|
|
|
|
|
|
|
cmds.progressWindow(endProgress=1)
|
|
|
|
#enable menu items
|
|
cmds.menuItem(self.widgets["isoSelect_Torso"], edit = True, enable = True)
|
|
cmds.menuItem(self.widgets["isoSelect_LeftArm"], edit = True, enable = True)
|
|
cmds.menuItem(self.widgets["isoSelect_RightArm"], edit = True, enable = True)
|
|
cmds.menuItem(self.widgets["isoSelect_LeftLeg"], edit = True, enable = True)
|
|
cmds.menuItem(self.widgets["isoSelect_RightLeg"], edit = True, enable = True)
|
|
cmds.menuItem(self.widgets["isoSelect_Head"], edit = True, enable = True)
|
|
cmds.menuItem(self.widgets["isoSelect_ShowAll"], edit = True, enable = True)
|
|
cmds.menuItem(self.widgets["isoSelect_Generate"], edit = True, enable = False)
|
|
|
|
|
|
# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
|
|
# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
|
|
# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
|
|
# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
|
|
# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
|
|
def exitIsoOnSave(self, *args):
|
|
#unIsolate
|
|
if self.mats != []:
|
|
for mat in self.mats:
|
|
face = mat[0]
|
|
sg = mat[1]
|
|
cmds.sets(face, forceElement = sg)
|
|
|
|
|
|
if cmds.objExists("isoSelect_M"):
|
|
cmds.delete("isoSelect_M")
|
|
|
|
if cmds.objExists("isoSelect_Set"):
|
|
cmds.delete("isoSelect_Set")
|
|
|
|
for checkbox in [[self.widgets["isoSelect_Torso"], "Torso"], [self.widgets["isoSelect_LeftArm"], "LeftArm"], [self.widgets["isoSelect_RightArm"], "RightArm"], [self.widgets["isoSelect_LeftLeg"], "LeftLeg"], [self.widgets["isoSelect_RightLeg"], "RightLeg"], [self.widgets["isoSelect_Head"], "Head"]]:
|
|
cb = checkbox[0]
|
|
cmds.menuItem(cb, edit = True, cb = True)
|
|
|
|
|
|
#ReSave Scene
|
|
filename = cmds.file(q = True, sceneName = True)
|
|
filetype = filename.rpartition(".")[2]
|
|
|
|
if filetype == "mb":
|
|
filetype = "mayaBinary"
|
|
|
|
if filetype == "ma":
|
|
filetype = "mayaAscii"
|
|
|
|
cmds.file(save = True, force = True, type = filetype)
|
|
|
|
cmds.scriptJob(event = ["SceneSaved", self.exitIsoOnSave], parent = self.widgets["window"], kws = True, runOnce = True)
|
|
|
|
# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
|
|
# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
|
|
# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
|
|
# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
|
|
# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
|
|
def exitIso(self, *args):
|
|
|
|
#unIsolate
|
|
|
|
isoPnl = cmds.getPanel(wf=True)
|
|
try:
|
|
isoCrnt = cmds.isolateSelect(isoPnl, q=True, s=True)
|
|
if isoCrnt != False:
|
|
mel.eval('enableIsolateSelect %s %d' % (isoPnl,not isoCrnt) )
|
|
|
|
except:
|
|
cmds.warning("Invalid viewport for isolate select command")
|
|
|
|
|
|
if self.mats != []:
|
|
for mat in self.mats:
|
|
face = mat[0]
|
|
sg = mat[1]
|
|
cmds.sets(face, forceElement = sg)
|
|
|
|
|
|
if cmds.objExists("isoSelect_M"):
|
|
cmds.delete("isoSelect_M")
|
|
|
|
if cmds.objExists("isoSelect_Set"):
|
|
cmds.delete("isoSelect_Set")
|
|
|
|
for checkbox in [[self.widgets["isoSelect_Torso"], "Torso"], [self.widgets["isoSelect_LeftArm"], "LeftArm"], [self.widgets["isoSelect_RightArm"], "RightArm"], [self.widgets["isoSelect_LeftLeg"], "LeftLeg"], [self.widgets["isoSelect_RightLeg"], "RightLeg"], [self.widgets["isoSelect_Head"], "Head"]]:
|
|
cb = checkbox[0]
|
|
cmds.menuItem(cb, edit = True, cb = True)
|
|
|
|
# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
|
|
# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
|
|
# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
|
|
# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
|
|
# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
|
|
def isoSelect(self, *args):
|
|
|
|
#unIsolate
|
|
|
|
isoPnl = cmds.getPanel(wf=True)
|
|
try:
|
|
isoCrnt = cmds.isolateSelect(isoPnl, q=True, s=True)
|
|
if isoCrnt != False:
|
|
mel.eval('enableIsolateSelect %s %d' % (isoPnl,not isoCrnt) )
|
|
|
|
except:
|
|
cmds.warning("Invalid viewport for isolate select command")
|
|
|
|
|
|
if self.mats != []:
|
|
for mat in self.mats:
|
|
face = mat[0]
|
|
sg = mat[1]
|
|
cmds.sets(face, forceElement = sg)
|
|
|
|
|
|
if cmds.objExists("isoSelect_M"):
|
|
cmds.delete("isoSelect_M")
|
|
|
|
if cmds.objExists("isoSelect_Set"):
|
|
cmds.delete("isoSelect_Set")
|
|
|
|
|
|
|
|
#find isolation method
|
|
classic = cmds.menuItem(self.widgets["isoMethodClassic"], q = True, rb = True)
|
|
material = cmds.menuItem(self.widgets["isoMethodMaterial"], q = True, rb = True)
|
|
|
|
|
|
# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
|
|
if material:
|
|
|
|
#find checkbox values
|
|
isolatedItems = []
|
|
|
|
|
|
for checkbox in [[self.widgets["isoSelect_Torso"], "Torso"], [self.widgets["isoSelect_LeftArm"], "LeftArm"], [self.widgets["isoSelect_RightArm"], "RightArm"], [self.widgets["isoSelect_LeftLeg"], "LeftLeg"], [self.widgets["isoSelect_RightLeg"], "RightLeg"], [self.widgets["isoSelect_Head"], "Head"]]:
|
|
cb = checkbox[0]
|
|
part = checkbox[1]
|
|
|
|
value = cmds.menuItem(cb, q = True, cb = True)
|
|
if value == False:
|
|
|
|
if part == "Torso":
|
|
cmds.select(self.torsoFaces)
|
|
isolatedItems.append(self.torsoFaces)
|
|
|
|
if part == "LeftArm":
|
|
isolatedItems.append(self.leftArmFaces)
|
|
|
|
if part == "RightArm":
|
|
isolatedItems.append(self.rightArmFaces)
|
|
|
|
if part == "LeftLeg":
|
|
isolatedItems.append(self.leftLegFaces)
|
|
|
|
if part == "RightLeg":
|
|
isolatedItems.append(self.rightLegFaces)
|
|
|
|
if part == "Head":
|
|
isolatedItems.append(self.headFaces)
|
|
|
|
|
|
|
|
#create your iso selection
|
|
cmds.select(clear = True)
|
|
for each in [self.torsoFaces, self.leftArmFaces, self.rightArmFaces, self.leftLegFaces, self.rightLegFaces, self.headFaces]:
|
|
if each in isolatedItems:
|
|
cmds.select(each, add = True)
|
|
|
|
|
|
|
|
#grab the current selection
|
|
selection = cmds.ls(sl = True)
|
|
self.mats = []
|
|
|
|
#get assinged material
|
|
faces = cmds.ls(sl = True)
|
|
for face in faces:
|
|
shaders = cmds.ls(type = "shadingEngine")
|
|
|
|
for each in shaders:
|
|
connectedFaces = cmds.sets(each, q = True)
|
|
if connectedFaces != None:
|
|
for obj in connectedFaces:
|
|
|
|
|
|
if obj.find(face.rpartition(".")[0]) != -1:
|
|
self.mats.append([face, each])
|
|
|
|
|
|
newMat = cmds.shadingNode("lambert", asShader = True, name = "isoSelect_M")
|
|
cmds.setAttr(newMat + ".transparency", 1, 1, 1, type = "double3")
|
|
|
|
shadingGroup = cmds.sets(name = "isoSelect_Set", renderable = True, noSurfaceShader = True, empty = True)
|
|
cmds.connectAttr(newMat + ".outColor", shadingGroup + ".surfaceShader")
|
|
|
|
if selection:
|
|
cmds.select(selection)
|
|
|
|
for each in selection:
|
|
cmds.sets(each, forceElement = shadingGroup)
|
|
|
|
# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
|
|
if classic:
|
|
#find checkbox values
|
|
isolatedItems = []
|
|
|
|
cmds.select(clear = True)
|
|
for checkbox in [[self.widgets["isoSelect_Torso"], "Torso"], [self.widgets["isoSelect_LeftArm"], "LeftArm"], [self.widgets["isoSelect_RightArm"], "RightArm"], [self.widgets["isoSelect_LeftLeg"], "LeftLeg"], [self.widgets["isoSelect_RightLeg"], "RightLeg"], [self.widgets["isoSelect_Head"], "Head"]]:
|
|
cb = checkbox[0]
|
|
part = checkbox[1]
|
|
|
|
value = cmds.menuItem(cb, q = True, cb = True)
|
|
|
|
|
|
if value == True:
|
|
|
|
if part == "Torso":
|
|
cmds.select(self.torsoFaces, add = True)
|
|
|
|
if part == "LeftArm":
|
|
cmds.select(self.leftArmFaces, add = True)
|
|
|
|
if part == "RightArm":
|
|
cmds.select(self.rightArmFaces, add = True)
|
|
|
|
if part == "LeftLeg":
|
|
cmds.select(self.leftLegFaces, add = True)
|
|
|
|
if part == "RightLeg":
|
|
cmds.select(self.rightLegFaces, add = True)
|
|
|
|
if part == "Head":
|
|
cmds.select(self.headFaces, add = True)
|
|
|
|
|
|
|
|
#isolate the selection
|
|
isoPnl = cmds.getPanel(wf=True)
|
|
try:
|
|
isoCrnt = cmds.isolateSelect(isoPnl, q=True, s=True)
|
|
mel.eval('enableIsolateSelect %s %d' % (isoPnl,not isoCrnt) )
|
|
|
|
except:
|
|
cmds.warning("Invalid viewport for isolate select command")
|
|
|
|
|
|
cmds.select(clear = True)
|
|
|
|
|
|
# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
|
|
# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
|
|
# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
|
|
# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
|
|
# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
|
|
def killUIScriptJob(self):
|
|
|
|
|
|
|
|
#delete script job
|
|
cmds.scriptJob(kill = self.mainScriptJob)
|
|
|
|
if cmds.dockControl("artAnimUIDock", exists = True):
|
|
|
|
channelBox = cmds.formLayout("ART_cbFormLayout", q = True, childArray = True)
|
|
if channelBox != None:
|
|
channelBox = channelBox[0]
|
|
|
|
#reparent the channelBox Layout back to maya's window
|
|
cmds.control(channelBox, e = True, p = "MainChannelsLayersLayout")
|
|
channelBoxLayout = mel.eval('$temp1=$gChannelsLayersForm')
|
|
channelBoxForm = mel.eval('$temp1 = $gChannelButtonForm')
|
|
|
|
#edit the channel box pane's attachment to the formLayout
|
|
cmds.formLayout(channelBoxLayout, edit = True, af = [(channelBox, "left", 0),(channelBox, "right", 0), (channelBox, "bottom", 0)], attachControl = (channelBox, "top", 0, channelBoxForm))
|
|
|
|
|
|
cmds.deleteUI("artAnimUIDock")
|
|
if cmds.window("artAnimUI", exists = True):
|
|
cmds.deleteUI("artAnimUI")
|
|
|
|
# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
|
|
# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
|
|
# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
|
|
# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
|
|
# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
|
|
def interfaceScriptJob(self, *args):
|
|
|
|
#unisolate any isolated parts
|
|
self.exitIso()
|
|
|
|
|
|
|
|
if cmds.dockControl(self.widgets["dock"], q = True, visible = True) == False:
|
|
#re-sort out the channel box
|
|
channelBox = cmds.formLayout("ART_cbFormLayout", q = True, childArray = True)
|
|
if channelBox != None:
|
|
channelBox = channelBox[0]
|
|
|
|
#reparent the channelBox Layout back to maya's window
|
|
cmds.control(channelBox, e = True, p = "MainChannelsLayersLayout")
|
|
channelBoxLayout = mel.eval('$temp1=$gChannelsLayersForm')
|
|
channelBoxForm = mel.eval('$temp1 = $gChannelButtonForm')
|
|
|
|
#edit the channel box pane's attachment to the formLayout
|
|
cmds.formLayout(channelBoxLayout, edit = True, af = [(channelBox, "left", 0),(channelBox, "right", 0), (channelBox, "bottom", 0)], attachControl = (channelBox, "top", 0, channelBoxForm))
|
|
|
|
|
|
# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
|
|
# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
|
|
# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
|
|
# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
|
|
# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
|
|
def loadUISettings(self, *args):
|
|
settingsLocation = self.mayaToolsDir + "/General/Scripts/settings.txt"
|
|
if os.path.exists(settingsLocation):
|
|
f = open(settingsLocation, 'r')
|
|
settings = cPickle.load(f)
|
|
|
|
#set the UI settings based on file
|
|
channelBox = settings.get("ChannelBox")
|
|
if channelBox == True:
|
|
cmds.menuItem(self.widgets["menuBar_settings_channelBox"], edit = True, checkBox = True)
|
|
self.showChannelBox()
|
|
|
|
if channelBox == False:
|
|
cmds.menuItem(self.widgets["menuBar_settings_channelBox"], edit = True, checkBox = False)
|
|
self.showChannelBox()
|
|
|
|
#space switch settings
|
|
match = settings.get("Match")
|
|
if match == True:
|
|
cmds.menuItem(self.widgets["spaceSwitch_MatchToggleCB"], edit = True, checkBox = True)
|
|
|
|
if match == False:
|
|
cmds.menuItem(self.widgets["spaceSwitch_MatchToggleCB"], edit = True, checkBox = False)
|
|
|
|
|
|
f.close()
|
|
|
|
|
|
|
|
|
|
# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
|
|
# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
|
|
# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
|
|
# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
|
|
# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
|
|
def saveUISettings(self, *args):
|
|
|
|
#this function will save out the user's preferences they have set in the UI to disk
|
|
settingsLocation = self.mayaToolsDir + "/General/Scripts/settings.txt"
|
|
f = open(settingsLocation, 'w')
|
|
|
|
#Channel Box display settings
|
|
value = cmds.menuItem(self.widgets["menuBar_settings_channelBox"], q = True, checkBox = True)
|
|
|
|
#Space switch settings
|
|
match = cmds.menuItem(self.widgets["spaceSwitch_MatchToggleCB"], q = True, cb = True)
|
|
method = cmds.menuItem(self.widgets["spaceSwitch_MatchMethodCB"], q = True, cb = True)
|
|
|
|
#create a dictionary with these values
|
|
settings = {}
|
|
settings["ChannelBox"] = value
|
|
settings["Match"] = match
|
|
settings["MatchMethod"] = method
|
|
|
|
#write our dictionary to file
|
|
cPickle.dump(settings, f)
|
|
f.close()
|
|
|
|
# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
|
|
# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
|
|
# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
|
|
# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
|
|
# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
|
|
def showChannelBox(self, *args):
|
|
#get the value of the checkbox in the menu Item
|
|
value = cmds.menuItem(self.widgets["menuBar_settings_channelBox"], q = True, checkBox = True)
|
|
self.channelBoxLayout = mel.eval('$temp1=$gChannelsLayersForm')
|
|
self.channelBoxForm = mel.eval('$temp1 = $gChannelButtonForm')
|
|
|
|
|
|
|
|
|
|
if value == True:
|
|
self.channelBox = mel.eval('$temp1=$gChannelsLayersPane;')
|
|
|
|
#unhide the column that will house the channel box
|
|
cmds.rowColumnLayout(self.widgets["rowColLayout"], edit = True, cw = [(1, 400), (2, 50), (3, 220)])
|
|
|
|
#parent the channel box to our anim UI
|
|
cmds.control(self.channelBox, e = True, p = self.widgets["cbFormLayout"])
|
|
cmds.formLayout(self.widgets["cbFormLayout"], edit = True, af = [(self.channelBox, "left", 0),(self.channelBox, "right", 0), (self.channelBox, "bottom", 0), (self.channelBox, "top", 0)])
|
|
channelBox = cmds.formLayout(self.widgets["cbFormLayout"], q = True, childArray = True)[0]
|
|
self.channelBox = channelBox
|
|
|
|
if value == False:
|
|
|
|
#hide the column for the channel box in our anim UI
|
|
cmds.rowColumnLayout(self.widgets["rowColLayout"], edit = True, cw = [(1, 400), (2, 50), (3, 1)])
|
|
|
|
try:
|
|
#reparent the channelBox Layout back to maya's window
|
|
cmds.control(self.channelBox, e = True, p = "MainChannelsLayersLayout")
|
|
|
|
#edit the channel box pane's attachment to the formLayout
|
|
cmds.formLayout(self.channelBoxLayout, edit = True, af = [(self.channelBox, "left", 0),(self.channelBox, "right", 0), (self.channelBox, "bottom", 0)], attachControl = (self.channelBox, "top", 0, self.channelBoxForm))
|
|
|
|
except AttributeError:
|
|
print "channel box restored"
|
|
|
|
|
|
self.saveUISettings()
|
|
|
|
|
|
# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
|
|
# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
|
|
# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
|
|
# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
|
|
# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
|
|
def setThumbnail(self, characterName, project):
|
|
projects = os.listdir(self.mayaToolsDir + "/General/Icons/ART/Thumbnails/")
|
|
thumbnailPath = self.mayaToolsDir + "/General/Icons/ART/Thumbnails/" + self.project + "/"
|
|
|
|
|
|
thumbs = os.listdir(thumbnailPath)
|
|
|
|
|
|
found = False
|
|
for thumb in thumbs:
|
|
if thumb.find("_small") != -1:
|
|
thumbName = thumb.rpartition(".")[0]
|
|
thumbName = thumbName.partition("_small")[0]
|
|
if thumbName.find(characterName[0:-1]) == 0:
|
|
cmds.symbolButton(self.widgets["activeCharacterThumb"], edit = True, image = thumbnailPath + thumb, ann = characterName)
|
|
found = True
|
|
|
|
|
|
#if our character wasn't in the self.project, but possibly another project, check now
|
|
if found == False:
|
|
for project in projects:
|
|
|
|
thumbnailPath = self.mayaToolsDir + "/General/Icons/ART/Thumbnails/" + project + "/"
|
|
thumbs = os.listdir(thumbnailPath)
|
|
for thumb in thumbs:
|
|
if thumb.find("_small") != -1:
|
|
thumbName = thumb.rpartition(".")[0]
|
|
thumbName = thumbName.partition("_small")[0]
|
|
if thumbName.find(characterName[0:-1]) == 0:
|
|
cmds.symbolButton(self.widgets["activeCharacterThumb"], edit = True, image = thumbnailPath + thumb, ann = characterName)
|
|
|
|
|
|
#lstly, repopulate self.controls
|
|
self.controls = []
|
|
for control in ["head_fk_anim", "neck_01_fk_anim", "neck_02_fk_anim", "neck_03_fk_anim", "spine_01_anim", "spine_02_anim", "spine_03_anim", "spine_04_anim", "spine_05_anim", "mid_ik_anim", "chest_ik_anim",
|
|
"body_anim", "hip_anim", "clavicle_l_anim", "clavicle_r_anim", "fk_arm_l_anim", "fk_arm_r_anim", "fk_elbow_l_anim", "fk_elbow_r_anim", "fk_wrist_l_anim", "fk_wrist_r_anim",
|
|
"ik_elbow_l_anim", "ik_elbow_r_anim", "ik_wrist_l_anim", "ik_wrist_r_anim", "fk_thigh_l_anim", "fk_thigh_r_anim", "fk_calf_l_anim", "fk_calf_r_anim", "fk_foot_l_anim", "fk_foot_r_anim",
|
|
"fk_ball_l_anim", "fk_ball_r_anim", "ik_foot_anim_l", "ik_foot_anim_r", "heel_ctrl_l", "heel_ctrl_r", "toe_wiggle_ctrl_l", "toe_wiggle_ctrl_r",
|
|
"toe_tip_ctrl_l", "toe_tip_ctrl_r", "master_anim", "offset_anim", "root_anim", "upperarm_l_twist_anim", "upperarm_l_twist_2_anim", "upperarm_l_twist_3_anim", "upperarm_r_twist_anim", "upperarm_r_twist_2_anim", "upperarm_r_twist_3_anim", "l_thigh_twist_01_anim", "r_thigh_twist_01_anim",
|
|
"pinky_metacarpal_ctrl_l", "pinky_metacarpal_ctrl_r", "pinky_finger_fk_ctrl_1_l", "pinky_finger_fk_ctrl_1_r", "pinky_finger_fk_ctrl_2_l", "pinky_finger_fk_ctrl_2_r", "pinky_finger_fk_ctrl_3_l", "pinky_finger_fk_ctrl_3_r",
|
|
"ring_metacarpal_ctrl_l", "ring_metacarpal_ctrl_r", "ring_finger_fk_ctrl_1_l", "ring_finger_fk_ctrl_1_r", "ring_finger_fk_ctrl_2_l", "ring_finger_fk_ctrl_2_r", "ring_finger_fk_ctrl_3_l", "ring_finger_fk_ctrl_3_r",
|
|
"middle_metacarpal_ctrl_l", "middle_metacarpal_ctrl_r", "middle_finger_fk_ctrl_1_l", "middle_finger_fk_ctrl_1_r", "middle_finger_fk_ctrl_2_l", "middle_finger_fk_ctrl_2_r", "middle_finger_fk_ctrl_3_l", "middle_finger_fk_ctrl_3_r",
|
|
"index_metacarpal_ctrl_l", "index_metacarpal_ctrl_r", "index_finger_fk_ctrl_1_l", "index_finger_fk_ctrl_1_r", "index_finger_fk_ctrl_2_l", "index_finger_fk_ctrl_2_r", "index_finger_fk_ctrl_3_l", "index_finger_fk_ctrl_3_r",
|
|
"thumb_finger_fk_ctrl_1_l", "thumb_finger_fk_ctrl_1_r", "thumb_finger_fk_ctrl_2_l", "thumb_finger_fk_ctrl_2_r", "thumb_finger_fk_ctrl_3_l", "thumb_finger_fk_ctrl_3_r",
|
|
"index_l_ik_anim", "index_r_ik_anim", "middle_l_ik_anim", "middle_r_ik_anim", "ring_l_ik_anim", "ring_r_ik_anim", "pinky_l_ik_anim", "pinky_r_ik_anim", "thumb_l_ik_anim", "thumb_r_ik_anim",
|
|
"index_l_poleVector", "index_r_poleVector", "middle_l_poleVector", "middle_r_poleVector", "ring_l_poleVector", "ring_r_poleVector", "pinky_l_poleVector", "pinky_r_poleVector", "thumb_l_poleVector", "thumb_r_poleVector",
|
|
"l_global_ik_anim", "r_global_ik_anim", "lowerarm_l_twist_anim", "lowerarm_l_twist2_anim", "lowerarm_l_twist3_anim", "lowerarm_r_twist_anim", "lowerarm_r_twist2_anim", "lowerarm_r_twist3_anim", "calf_r_twist_anim", "calf_r_twist2_anim", "calf_r_twist3_anim",
|
|
"calf_l_twist_anim", "calf_l_twist2_anim", "calf_l_twist3_anim", "thigh_l_twist_2_anim", "thigh_l_twist_3_anim", "thigh_r_twist_2_anim", "thigh_r_twist_3_anim"]:
|
|
self.controls.append(control)
|
|
|
|
|
|
#hack
|
|
character = characterName
|
|
for obj in ["fk_clavicle_l_anim", "fk_clavicle_r_anim"]:
|
|
if cmds.objExists(character + ":" + obj):
|
|
self.controls.append(obj)
|
|
|
|
#find custom joints
|
|
character = characterName
|
|
customJoints = []
|
|
attrs = cmds.listAttr(character + ":" + "Skeleton_Settings")
|
|
for attr in attrs:
|
|
if attr.find("extraJoint") == 0:
|
|
customJoints.append(attr)
|
|
|
|
for joint in customJoints:
|
|
attribute = cmds.getAttr(character + ":" + "Skeleton_Settings." + joint, asString = True)
|
|
jointType = attribute.partition("/")[2].partition("/")[0]
|
|
label = attribute.rpartition("/")[2]
|
|
|
|
if jointType == "leaf":
|
|
label = label.partition(" (")[0]
|
|
control = label + "_anim"
|
|
self.controls.append(control)
|
|
|
|
if jointType == "jiggle":
|
|
control = label + "_anim"
|
|
self.controls.append(control)
|
|
|
|
if jointType == "chain" or jointType == "dynamic":
|
|
numJointsInChain = label.partition("(")[2].partition(")")[0]
|
|
label = label.partition(" (")[0]
|
|
self.controls.append(label + "_dyn_anim")
|
|
|
|
cmds.select("*:" + label + "_ik_*_anim")
|
|
selection = cmds.ls(sl = True)
|
|
for each in selection:
|
|
niceName = each.partition(":")[2]
|
|
self.controls.append(niceName)
|
|
|
|
for i in range(int(numJointsInChain)):
|
|
self.controls.append("fk_" + label + "_0" + str(i + 1) + "_anim")
|
|
self.controls.append(label + "_cv_" + str(i) + "_anim")
|
|
|
|
|
|
# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
|
|
# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
|
|
# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
|
|
# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
|
|
# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
|
|
def populateCharacterRigList(self, *args):
|
|
|
|
characters = self.getCharacters()
|
|
for character in characters:
|
|
cmds.menuItem(label = character, parent = self.widgets["characterRigList"], c = partial(self.switchActiveCharacter, character))
|
|
|
|
|
|
# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
|
|
# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
|
|
# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
|
|
# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
|
|
# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
|
|
def switchActiveCharacter(self, character, *args):
|
|
|
|
#change the thumbnail
|
|
self.setThumbnail(character, self.project)
|
|
|
|
#change the visibility of the character pickers and show the correct one
|
|
characters = self.getCharacters()
|
|
for char in characters:
|
|
cmds.columnLayout(self.widgets[char + "_characterPickerLayout"], edit = True, visible = False)
|
|
cmds.columnLayout(self.widgets[char + "_rigSettingsMainColumn"], edit = True, visible = False)
|
|
cmds.scrollLayout(self.widgets[char + "_listViewMainLayout"], edit = True, visible = False)
|
|
|
|
cmds.columnLayout(self.widgets[character + "_characterPickerLayout"], edit = True, visible = True)
|
|
cmds.columnLayout(self.widgets[character + "_rigSettingsMainColumn"], edit = True, visible = True)
|
|
cmds.scrollLayout(self.widgets[character + "_listViewMainLayout"], edit = True, visible = True)
|
|
|
|
|
|
#set the visibility toggle iconTextCheckBox to represent the current character's control visibility
|
|
shape = cmds.listRelatives(character + ":" + "body_anim", shapes = True)[0]
|
|
visible = cmds.getAttr(shape + ".v")
|
|
|
|
if visible == False:
|
|
cmds.iconTextCheckBox(self.widgets["pickerControlVisibility"], edit = True, value = False)
|
|
|
|
if visible == True:
|
|
cmds.iconTextCheckBox(self.widgets["pickerControlVisibility"], edit = True, value = True)
|
|
|
|
#check to see if space switch window is open
|
|
if cmds.window("spaceSwitcherUI", exists = True):
|
|
title = cmds.window("spaceSwitcherUI", q = True, title = True)
|
|
if character != title:
|
|
if cmds.button("spaceSwitchSyncStatusButton", q = True, exists = True):
|
|
cmds.button("spaceSwitchSyncStatusButton", edit = True, visible = True)
|
|
|
|
else:
|
|
cmds.deleteUI("spaceSwitcherUI")
|
|
|
|
|
|
#check to see if pose editor is open
|
|
if cmds.window("poseEditorUI", exists = True):
|
|
peTitle = cmds.window("poseEditorUI", q = True, title = True)
|
|
if character != peTitle:
|
|
if cmds.button("poseEditor_syncStatusButton", q = True, exists = True):
|
|
cmds.button("poseEditor_syncStatusButton", edit = True, visible = True)
|
|
|
|
else:
|
|
cmds.deleteUI("poseEditorUI")
|
|
|
|
#enable menu items
|
|
cmds.menuItem(self.widgets["isoSelect_Torso"], edit = True, enable = False)
|
|
cmds.menuItem(self.widgets["isoSelect_LeftArm"], edit = True, enable = False)
|
|
cmds.menuItem(self.widgets["isoSelect_RightArm"], edit = True, enable = False)
|
|
cmds.menuItem(self.widgets["isoSelect_LeftLeg"], edit = True, enable = False)
|
|
cmds.menuItem(self.widgets["isoSelect_RightLeg"], edit = True, enable = False)
|
|
cmds.menuItem(self.widgets["isoSelect_Head"], edit = True, enable = False)
|
|
cmds.menuItem(self.widgets["isoSelect_ShowAll"], edit = True, enable = False)
|
|
cmds.menuItem(self.widgets["isoSelect_Generate"], edit = True, enable = True)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
|
|
# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
|
|
# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
|
|
# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
|
|
# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
|
|
def getCharacters(self):
|
|
|
|
referenceNodes = []
|
|
references = cmds.ls(type = "reference")
|
|
print references
|
|
|
|
for reference in references:
|
|
niceName = reference.rpartition("RN")[0]
|
|
print niceName
|
|
suffix = reference.rpartition("RN")[2]
|
|
print suffix
|
|
if suffix != "":
|
|
if cmds.objExists(niceName + suffix + ":" + "Skeleton_Settings"):
|
|
referenceNodes.append(niceName + suffix)
|
|
|
|
else:
|
|
if cmds.objExists(niceName + ":" + "Skeleton_Settings"):
|
|
referenceNodes.append(niceName)
|
|
|
|
print referenceNodes
|
|
return referenceNodes
|
|
|
|
|
|
# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
|
|
# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
|
|
# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
|
|
# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
|
|
# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
|
|
def createCharacterPicker(self, name, layout):
|
|
#fist thing to do is create the form layout that needs to be parented to the passed in layout
|
|
self.widgets[name + "_characterPickerLayout"] = cmds.columnLayout(w = 470, h = 700, parent = layout, visible = False)
|
|
self.formsToHide.append(self.widgets[name + "_characterPickerLayout"])
|
|
|
|
#setup button color variables
|
|
self.blue = [.09, .75, .96]
|
|
self.white = [1, 1, 1]
|
|
self.orange = [1, .68, 0]
|
|
self.purple = [.5, .09, .96]
|
|
self.green = [0, 1, .16]
|
|
|
|
|
|
|
|
#create the body frame Layout
|
|
self.widgets[name + "_bodyFrame"] = cmds.frameLayout(label = "Body", collapse = False, collapsable = True, borderStyle = "in", w = 370, h = 470, parent = self.widgets[name + "_characterPickerLayout"], cc = partial(self.collapseCommand, name, "Body"), ec = partial(self.expandCommand, name, "Body"))
|
|
self.widgets[name + "_bodyPickerForm"] = cmds.formLayout(w = 370, h = 470, parent = self.widgets[name + "_bodyFrame"])
|
|
|
|
#background image for body picker
|
|
image = self.mayaToolsDir + "/General/Icons/ART/picker.jpg"
|
|
self.widgets[name + "_cpBackground"] = cmds.image(w = 370, h = 450, image = image, parent = self.widgets[name + "_bodyPickerForm"])
|
|
|
|
|
|
#create the body picker controls
|
|
self.createBodyPicker(name, self.widgets[name + "_bodyPickerForm"])
|
|
|
|
|
|
#create the fingers frame Layout
|
|
self.widgets[name + "_fingersFrame"] = cmds.frameLayout(label = "Fingers", collapse = False, collapsable = True, borderStyle = "in", w = 370, h = 205, parent = self.widgets[name + "_characterPickerLayout"], cc = partial(self.collapseCommand, name, "Fingers"), ec = partial(self.expandCommand, name, "Fingers"))
|
|
self.widgets[name + "_fingerPickerForm"] = cmds.formLayout(w = 370, h = 205, parent = self.widgets[name + "_fingersFrame"])
|
|
|
|
#background image for finger picker
|
|
image = self.mayaToolsDir + "/General/Icons/ART/fingerPicker.jpg"
|
|
self.widgets[name + "_fingerPickerBackground"] = cmds.image(w = 370, h = 205, image = image, parent = self.widgets[name + "_fingerPickerForm"])
|
|
|
|
#create the finger picker controls
|
|
self.createFingersPicker(name, self.widgets[name + "_fingerPickerForm"])
|
|
|
|
# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
|
|
# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
|
|
# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
|
|
# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
|
|
# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
|
|
def createBodyPicker(self, name, layout, *args):
|
|
|
|
#get settings off of skeleton settings node to know what it is we need to create
|
|
numNeckBones = cmds.getAttr(name + ":" + "Skeleton_Settings.numNeckBones")
|
|
numSpineBones = cmds.getAttr(name + ":" + "Skeleton_Settings.numSpineBones")
|
|
leftArmTwist = cmds.getAttr(name + ":" + "Skeleton_Settings.leftUpperArmTwist")
|
|
leftArmForeTwist = cmds.getAttr(name + ":" + "Skeleton_Settings.leftLowerArmTwist")
|
|
rightArmTwist = cmds.getAttr(name + ":" + "Skeleton_Settings.rightUpperArmTwist")
|
|
rightArmForeTwist = cmds.getAttr(name + ":" + "Skeleton_Settings.rightLowerArmTwist")
|
|
leftThighTwist = cmds.getAttr(name + ":" + "Skeleton_Settings.leftUpperLegTwist")
|
|
leftCalfTwist = cmds.getAttr(name + ":" + "Skeleton_Settings.leftLowerLegTwist")
|
|
rightThighTwist = cmds.getAttr(name + ":" + "Skeleton_Settings.rightUpperLegTwist")
|
|
rightCalfTwist = cmds.getAttr(name + ":" + "Skeleton_Settings.rightLowerLegTwist")
|
|
leftBall = cmds.getAttr(name + ":" + "Skeleton_Settings.leftball")
|
|
rightBall = cmds.getAttr(name + ":" + "Skeleton_Settings.rightball")
|
|
numLeftToes = cmds.getAttr(name + ":" + "Skeleton_Settings.numLeftToes", asString = True)
|
|
numRightToes = cmds.getAttr(name + ":" + "Skeleton_Settings.numRightToes", asString = True)
|
|
|
|
|
|
#create and place each body part's buttons
|
|
# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
|
|
# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
|
|
#head
|
|
self.widgets[name + "_headPickerButton"] = cmds.button(w = 50, h = 50, label = "", parent = layout, bgc = self.blue, c = partial(self.buttonSelectCommand, name, "head_fk_anim"))
|
|
cmds.formLayout(layout, edit = True, af = [(self.widgets[name + "_headPickerButton"], "top", 23), (self.widgets[name + "_headPickerButton"], "left", 159)])
|
|
|
|
# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
|
|
# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
|
|
#neck
|
|
buttonHeight = int(40/numNeckBones)
|
|
if int(numNeckBones) == 3:
|
|
basePosition = 103
|
|
if int(numNeckBones) == 2:
|
|
basePosition = 94
|
|
if int(numNeckBones) == 1:
|
|
basePosition = 76
|
|
|
|
for i in range(int(numNeckBones)):
|
|
self.widgets[name + "_neck" + str(i + 1) + "_PickerButton"] = cmds.button(w = 32, h = buttonHeight, label = "", bgc = self.blue, c = partial(self.buttonSelectCommand, name, "neck_0" + str(i + 1) + "_fk_anim"))
|
|
cmds.formLayout(layout, edit = True, af = [(self.widgets[name + "_neck" + str(i + 1) + "_PickerButton"], "top", basePosition), (self.widgets[name + "_neck" + str(i + 1) + "_PickerButton"], "left", 170)])
|
|
basePosition = basePosition - buttonHeight
|
|
|
|
# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
|
|
# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
|
|
#ik spine
|
|
if int(numSpineBones) == 5:
|
|
midPos = 158
|
|
topPos = 118
|
|
buttonHeight = 15
|
|
|
|
if int(numSpineBones) == 4:
|
|
midPos = 168
|
|
topPos = 116
|
|
buttonHeight = 19
|
|
|
|
if int(numSpineBones) == 3:
|
|
midPos = 154
|
|
topPos = 120
|
|
buttonHeight = 25
|
|
|
|
|
|
if int(numSpineBones) > 2:
|
|
self.widgets[name + "_ikSpineMidPickerButton"] = cmds.button(w = 120, h = buttonHeight, label = "", parent = layout, bgc = self.orange, c = partial(self.buttonSelectCommand, name, "mid_ik_anim"))
|
|
cmds.formLayout(layout, edit = True, af = [(self.widgets[name + "_ikSpineMidPickerButton"], "top", midPos), (self.widgets[name + "_ikSpineMidPickerButton"], "left", 126)])
|
|
|
|
self.widgets[name + "_ikSpineTopPickerButton"] = cmds.button(w = 120, h = buttonHeight, label = "", parent = layout, bgc = self.orange, c = partial(self.buttonSelectCommand, name, "chest_ik_anim"))
|
|
cmds.formLayout(layout, edit = True, af = [(self.widgets[name + "_ikSpineTopPickerButton"], "top", topPos), (self.widgets[name + "_ikSpineTopPickerButton"], "left", 126)])
|
|
|
|
|
|
# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
|
|
# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
|
|
#fk spine
|
|
buttonHeight = int(75/numSpineBones)
|
|
if int(numSpineBones) == 5:
|
|
basePosition = 198
|
|
space = 5
|
|
if int(numSpineBones) == 4:
|
|
basePosition = 194
|
|
space = 7
|
|
if int(numSpineBones) == 3:
|
|
basePosition = 188
|
|
space = 9
|
|
if int(numSpineBones) == 2:
|
|
basePosition = 175
|
|
space = 17
|
|
|
|
for i in range(int(numSpineBones)):
|
|
self.widgets[name + "_spine" + str(i + 1) + "_PickerButton"] = cmds.button(w = 80, h = buttonHeight, label = "", bgc = self.blue, c = partial(self.buttonSelectCommand, name, "spine_0" + str(i + 1) + "_anim"))
|
|
cmds.formLayout(layout, edit = True, af = [(self.widgets[name + "_spine" + str(i + 1) + "_PickerButton"], "top", basePosition), (self.widgets[name + "_spine" + str(i + 1) + "_PickerButton"], "left", 144)])
|
|
basePosition = (basePosition - buttonHeight) - space
|
|
|
|
# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
|
|
# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
|
|
#body and pelvis
|
|
self.widgets[name + "_bodyPickerButton"] = cmds.button(w = 100, h = 20, label = "", parent = layout, bgc = self.orange, c = partial(self.buttonSelectCommand, name, "body_anim"))
|
|
cmds.formLayout(layout, edit = True, af = [(self.widgets[name + "_bodyPickerButton"], "top", 218), (self.widgets[name + "_bodyPickerButton"], "left", 134)])
|
|
|
|
self.widgets[name + "_pelvisPickerButton"] = cmds.button(w = 80, h = 20, label = "", parent = layout, bgc = self.blue, c = partial(self.buttonSelectCommand, name, "hip_anim"))
|
|
cmds.formLayout(layout, edit = True, af = [(self.widgets[name + "_pelvisPickerButton"], "top", 240), (self.widgets[name + "_pelvisPickerButton"], "left", 144)])
|
|
|
|
# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
|
|
# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
|
|
#clavicles
|
|
self.widgets[name + "_leftClavPickerButton"] = cmds.button(w = 50, h = 20, label = "", parent = layout, bgc = self.blue, c = partial(self.clavSelectCommand, name, "fk_clavicle_l_anim", "clavicle_l_anim"))
|
|
cmds.formLayout(layout, edit = True, af = [(self.widgets[name + "_leftClavPickerButton"], "top", 94), (self.widgets[name + "_leftClavPickerButton"], "right", 116)])
|
|
|
|
self.widgets[name + "_rightClavPickerButton"] = cmds.button(w = 50, h = 20, label = "", parent = layout, bgc = self.blue, c = partial(self.clavSelectCommand, name, "fk_clavicle_r_anim", "clavicle_r_anim"))
|
|
cmds.formLayout(layout, edit = True, af = [(self.widgets[name + "_rightClavPickerButton"], "top", 94), (self.widgets[name + "_rightClavPickerButton"], "left", 116)])
|
|
|
|
|
|
# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
|
|
# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
|
|
#fk upper arms
|
|
self.widgets[name + "_leftShoulderPickerButton"] = cmds.button(w = 78, h = 20, label = "", parent = layout, bgc = self.blue, c = partial(self.buttonSelectCommand, name, "fk_arm_l_anim"))
|
|
cmds.formLayout(layout, edit = True, af = [(self.widgets[name + "_leftShoulderPickerButton"], "top", 94), (self.widgets[name + "_leftShoulderPickerButton"], "right", 36)])
|
|
|
|
self.widgets[name + "_rightShoulderPickerButton"] = cmds.button(w = 78, h = 20, label = "", parent = layout, bgc = self.blue, c = partial(self.buttonSelectCommand, name, "fk_arm_r_anim"))
|
|
cmds.formLayout(layout, edit = True, af = [(self.widgets[name + "_rightShoulderPickerButton"], "top", 94), (self.widgets[name + "_rightShoulderPickerButton"], "left", 36)])
|
|
|
|
# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
|
|
# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
|
|
#fk lower arms
|
|
self.widgets[name + "_leftElbowPickerButton"] = cmds.button(w = 20, h = 78, label = "", parent = layout, bgc = self.blue, c = partial(self.buttonSelectCommand, name, "fk_elbow_l_anim"))
|
|
cmds.formLayout(layout, edit = True, af = [(self.widgets[name + "_leftElbowPickerButton"], "top", 142), (self.widgets[name + "_leftElbowPickerButton"], "right", 35)])
|
|
|
|
self.widgets[name + "_rightElbowPickerButton"] = cmds.button(w = 20, h = 78, label = "", parent = layout, bgc = self.blue, c = partial(self.buttonSelectCommand, name, "fk_elbow_r_anim"))
|
|
cmds.formLayout(layout, edit = True, af = [(self.widgets[name + "_rightElbowPickerButton"], "top", 142), (self.widgets[name + "_rightElbowPickerButton"], "left", 35)])
|
|
|
|
|
|
# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
|
|
# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
|
|
#fk hands
|
|
self.widgets[name + "_leftHandPickerButton"] = cmds.button(w = 40, h = 40, label = "", parent = layout, bgc = self.blue, c = partial(self.buttonSelectCommand, name, "fk_wrist_l_anim"))
|
|
cmds.formLayout(layout, edit = True, af = [(self.widgets[name + "_leftHandPickerButton"], "top", 247), (self.widgets[name + "_leftHandPickerButton"], "right", 24)])
|
|
|
|
self.widgets[name + "_rightHandPickerButton"] = cmds.button(w = 40, h = 40, label = "", parent = layout, bgc = self.blue, c = partial(self.buttonSelectCommand, name, "fk_wrist_r_anim"))
|
|
cmds.formLayout(layout, edit = True, af = [(self.widgets[name + "_rightHandPickerButton"], "top", 247), (self.widgets[name + "_rightHandPickerButton"], "left", 24)])
|
|
|
|
|
|
# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
|
|
# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
|
|
#ik elbows
|
|
self.widgets[name + "_leftIkElbowPickerButton"] = cmds.button(w = 20, h = 20, label = "", parent = layout, bgc = self.orange, c = partial(self.buttonSelectCommand, name, "ik_elbow_l_anim"))
|
|
cmds.formLayout(layout, edit = True, af = [(self.widgets[name + "_leftIkElbowPickerButton"], "top", 118), (self.widgets[name + "_leftIkElbowPickerButton"], "right", 35)])
|
|
|
|
self.widgets[name + "_rightIkElbowPickerButton"] = cmds.button(w = 20, h = 20, label = "", parent = layout, bgc = self.orange, c = partial(self.buttonSelectCommand, name, "ik_elbow_r_anim"))
|
|
cmds.formLayout(layout, edit = True, af = [(self.widgets[name + "_rightIkElbowPickerButton"], "top", 118), (self.widgets[name + "_rightIkElbowPickerButton"], "left", 35)])
|
|
|
|
# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
|
|
# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
|
|
#ik hands
|
|
self.widgets[name + "_leftIkHandPickerButton"] = cmds.button(w = 20, h = 20, label = "", parent = layout, bgc = self.orange, c = partial(self.buttonSelectCommand, name, "ik_wrist_l_anim"))
|
|
cmds.formLayout(layout, edit = True, af = [(self.widgets[name + "_leftIkHandPickerButton"], "top", 222), (self.widgets[name + "_leftIkHandPickerButton"], "right", 35)])
|
|
|
|
self.widgets[name + "_rightIkHandPickerButton"] = cmds.button(w = 20, h = 20, label = "", parent = layout, bgc = self.orange, c = partial(self.buttonSelectCommand, name, "ik_wrist_r_anim"))
|
|
cmds.formLayout(layout, edit = True, af = [(self.widgets[name + "_rightIkHandPickerButton"], "top", 222), (self.widgets[name + "_rightIkHandPickerButton"], "left", 35)])
|
|
|
|
|
|
# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
|
|
# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
|
|
#fk thighs
|
|
self.widgets[name + "_leftThighPickerButton"] = cmds.button(w = 20, h = 80, label = "", parent = layout, bgc = self.blue, c = partial(self.buttonSelectCommand, name, "fk_thigh_l_anim"))
|
|
cmds.formLayout(layout, edit = True, af = [(self.widgets[name + "_leftThighPickerButton"], "top", 240), (self.widgets[name + "_leftThighPickerButton"], "right", 124)])
|
|
|
|
self.widgets[name + "_rightThighPickerButton"] = cmds.button(w = 20, h = 80, label = "", parent = layout, bgc = self.blue, c = partial(self.buttonSelectCommand, name, "fk_thigh_r_anim"))
|
|
cmds.formLayout(layout, edit = True, af = [(self.widgets[name + "_rightThighPickerButton"], "top", 240), (self.widgets[name + "_rightThighPickerButton"], "left", 124)])
|
|
|
|
|
|
# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
|
|
# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
|
|
#fk knees
|
|
self.widgets[name + "_leftFkKneePickerButton"] = cmds.button(w = 20, h = 80, label = "", parent = layout, bgc = self.blue, c = partial(self.buttonSelectCommand, name, "fk_calf_l_anim"))
|
|
cmds.formLayout(layout, edit = True, af = [(self.widgets[name + "_leftFkKneePickerButton"], "top", 343), (self.widgets[name + "_leftFkKneePickerButton"], "right", 124)])
|
|
|
|
self.widgets[name + "_rightFkKneePickerButton"] = cmds.button(w = 20, h = 80, label = "", parent = layout, bgc = self.blue, c = partial(self.buttonSelectCommand, name, "fk_calf_r_anim"))
|
|
cmds.formLayout(layout, edit = True, af = [(self.widgets[name + "_rightFkKneePickerButton"], "top", 343), (self.widgets[name + "_rightFkKneePickerButton"], "left", 124)])
|
|
|
|
|
|
# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
|
|
# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
|
|
#fk ankle
|
|
self.widgets[name + "_leftFkAnklePickerButton"] = cmds.button(w = 40, h = 20, label = "", parent = layout, bgc = self.blue, c = partial(self.buttonSelectCommand, name, "fk_foot_l_anim"))
|
|
cmds.formLayout(layout, edit = True, af = [(self.widgets[name + "_leftFkAnklePickerButton"], "top", 422), (self.widgets[name + "_leftFkAnklePickerButton"], "right", 82)])
|
|
|
|
self.widgets[name + "_rightFkAnklePickerButton"] = cmds.button(w = 40, h = 20, label = "", parent = layout, bgc = self.blue, c = partial(self.buttonSelectCommand, name, "fk_foot_r_anim"))
|
|
cmds.formLayout(layout, edit = True, af = [(self.widgets[name + "_rightFkAnklePickerButton"], "top", 422), (self.widgets[name + "_rightFkAnklePickerButton"], "left", 82)])
|
|
|
|
|
|
# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
|
|
# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
|
|
#fk ball
|
|
if leftBall:
|
|
self.widgets[name + "_leftFkBallPickerButton"] = cmds.button(w = 20, h = 20, label = "", parent = layout, bgc = self.blue, c = partial(self.buttonSelectCommand, name, "fk_ball_l_anim"))
|
|
cmds.formLayout(layout, edit = True, af = [(self.widgets[name + "_leftFkBallPickerButton"], "top", 422), (self.widgets[name + "_leftFkBallPickerButton"], "right", 59)])
|
|
|
|
if rightBall:
|
|
self.widgets[name + "_rightFkBallPickerButton"] = cmds.button(w = 20, h = 20, label = "", parent = layout, bgc = self.blue, c = partial(self.buttonSelectCommand, name, "fk_ball_r_anim"))
|
|
cmds.formLayout(layout, edit = True, af = [(self.widgets[name + "_rightFkBallPickerButton"], "top", 422), (self.widgets[name + "_rightFkBallPickerButton"], "left", 59)])
|
|
|
|
|
|
# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
|
|
# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
|
|
#ik knees
|
|
|
|
self.widgets[name + "_leftIkKneePickerButton"] = cmds.floatField(w = 40, h = 20, parent = layout, step = 1, minValue = -360, maxValue = 360, precision = 1, ann = "Ctrl + MMB to drag invisible slider")
|
|
cmds.formLayout(layout, edit = True, af = [(self.widgets[name + "_leftIkKneePickerButton"], "top", 321), (self.widgets[name + "_leftIkKneePickerButton"], "right", 114)])
|
|
|
|
self.widgets[name + "_rightIkKneePickerButton"] = cmds.floatField(w = 40, h = 20, parent = layout, step = 1, minValue = -360, maxValue = 360, precision = 1, ann = "Ctrl + MMB to drag invisible slider")
|
|
cmds.formLayout(layout, edit = True, af = [(self.widgets[name + "_rightIkKneePickerButton"], "top", 321), (self.widgets[name + "_rightIkKneePickerButton"], "left", 114)])
|
|
|
|
|
|
cmds.connectControl(self.widgets[name + "_leftIkKneePickerButton"] , name + ":ik_foot_anim_l.knee_twist")
|
|
cmds.connectControl(self.widgets[name + "_rightIkKneePickerButton"] , name + ":ik_foot_anim_r.knee_twist")
|
|
|
|
# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
|
|
# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
|
|
#ik feet
|
|
self.widgets[name + "_leftIkFootPickerButton"] = cmds.button(w = 20, h = 20, label = "", parent = layout, bgc = self.orange, c = partial(self.buttonSelectCommand, name, "ik_foot_anim_l"))
|
|
cmds.formLayout(layout, edit = True, af = [(self.widgets[name + "_leftIkFootPickerButton"], "top", 422), (self.widgets[name + "_leftIkFootPickerButton"], "right", 124)])
|
|
|
|
self.widgets[name + "_rightIkFootPickerButton"] = cmds.button(w = 20, h = 20, label = "", parent = layout, bgc = self.orange, c = partial(self.buttonSelectCommand, name, "ik_foot_anim_r"))
|
|
cmds.formLayout(layout, edit = True, af = [(self.widgets[name + "_rightIkFootPickerButton"], "top", 422), (self.widgets[name + "_rightIkFootPickerButton"], "left", 124)])
|
|
|
|
# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
|
|
# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
|
|
#ik heels
|
|
self.widgets[name + "_leftIkHeelPickerButton"] = cmds.button(w = 15, h = 15, label = "", parent = layout, bgc = self.orange, c = partial(self.buttonSelectCommand, name, "heel_ctrl_l"))
|
|
cmds.formLayout(layout, edit = True, af = [(self.widgets[name + "_leftIkHeelPickerButton"], "top", 428), (self.widgets[name + "_leftIkHeelPickerButton"], "right", 149)])
|
|
|
|
self.widgets[name + "_rightIkHeelPickerButton"] = cmds.button(w = 15, h = 15, label = "", parent = layout, bgc = self.orange, c = partial(self.buttonSelectCommand, name, "heel_ctrl_r"))
|
|
cmds.formLayout(layout, edit = True, af = [(self.widgets[name + "_rightIkHeelPickerButton"], "top", 428), (self.widgets[name + "_rightIkHeelPickerButton"], "left", 149)])
|
|
|
|
|
|
# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
|
|
# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
|
|
#ik toe wiggles
|
|
self.widgets[name + "_leftIkToeWigglePickerButton"] = cmds.button(w = 15, h = 15, label = "", parent = layout, bgc = self.orange, c = partial(self.buttonSelectCommand, name, "toe_wiggle_ctrl_l"))
|
|
cmds.formLayout(layout, edit = True, af = [(self.widgets[name + "_leftIkToeWigglePickerButton"], "top", 402), (self.widgets[name + "_leftIkToeWigglePickerButton"], "right", 74)])
|
|
|
|
self.widgets[name + "_rightIkToeWigglePickerButton"] = cmds.button(w = 15, h = 15, label = "", parent = layout, bgc = self.orange, c = partial(self.buttonSelectCommand, name, "toe_wiggle_ctrl_r"))
|
|
cmds.formLayout(layout, edit = True, af = [(self.widgets[name + "_rightIkToeWigglePickerButton"], "top", 402), (self.widgets[name + "_rightIkToeWigglePickerButton"], "left", 74)])
|
|
|
|
|
|
# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
|
|
# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
|
|
#ik toes
|
|
self.widgets[name + "_leftIkToePickerButton"] = cmds.button(w = 15, h = 15, label = "", parent = layout, bgc = self.orange, c = partial(self.buttonSelectCommand, name, "toe_tip_ctrl_l"))
|
|
cmds.formLayout(layout, edit = True, af = [(self.widgets[name + "_leftIkToePickerButton"], "top", 428), (self.widgets[name + "_leftIkToePickerButton"], "right", 40)])
|
|
|
|
self.widgets[name + "_rightIkToePickerButton"] = cmds.button(w = 15, h = 15, label = "", parent = layout, bgc = self.orange, c = partial(self.buttonSelectCommand, name, "toe_tip_ctrl_r"))
|
|
cmds.formLayout(layout, edit = True, af = [(self.widgets[name + "_rightIkToePickerButton"], "top", 428), (self.widgets[name + "_rightIkToePickerButton"], "left", 40)])
|
|
|
|
|
|
# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
|
|
# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
|
|
#master, offset, and root
|
|
self.widgets[name + "_masterPickerButton"] = cmds.button(w = 20, h = 20, label = "M", parent = layout, bgc = self.orange, c = partial(self.buttonSelectCommand, name, "master_anim"))
|
|
cmds.formLayout(layout, edit = True, af = [(self.widgets[name + "_masterPickerButton"], "top", 401), (self.widgets[name + "_masterPickerButton"], "right", 175)])
|
|
|
|
self.widgets[name + "_offsetPickerButton"] = cmds.button(w = 20, h = 20, label = "O", parent = layout, bgc = self.blue, c = partial(self.buttonSelectCommand, name, "offset_anim"))
|
|
cmds.formLayout(layout, edit = True, af = [(self.widgets[name + "_offsetPickerButton"], "top", 375), (self.widgets[name + "_offsetPickerButton"], "right", 175)])
|
|
|
|
self.widgets[name + "_rootPickerButton"] = cmds.button(w = 20, h = 20, label = "R", parent = layout, bgc = self.purple, c = partial(self.buttonSelectCommand, name, "root_anim"))
|
|
cmds.formLayout(layout, edit = True, af = [(self.widgets[name + "_rootPickerButton"], "top", 350), (self.widgets[name + "_rootPickerButton"], "right", 175)])
|
|
|
|
|
|
# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
|
|
# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
|
|
#select head group
|
|
self.widgets[name + "_headGroupPickerButton"] = cmds.button(w = 15, h = 15, label = "", parent = layout, bgc = self.green, c = partial(self.multiButtonSelectCommand, name, ["head_fk_anim", "neck_01_fk_anim", "neck_02_fk_anim", "neck_03_fk_anim"]))
|
|
cmds.formLayout(layout, edit = True, af = [(self.widgets[name + "_headGroupPickerButton"], "top", 2), (self.widgets[name + "_headGroupPickerButton"], "right", 178)])
|
|
|
|
|
|
# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
|
|
# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
|
|
#select spine group
|
|
self.widgets[name + "_spineGroupPickerButton"] = cmds.button(w = 15, h = 15, label = "", parent = layout, bgc = self.green, c = partial(self.multiButtonSelectCommand, name, ["hip_anim", "body_anim", "spine_01_anim", "spine_02_anim", "spine_03_anim", "spine_04_anim", "spine_05_anim", "mid_ik_anim", "chest_ik_anim"]))
|
|
cmds.formLayout(layout, edit = True, af = [(self.widgets[name + "_spineGroupPickerButton"], "top", 264), (self.widgets[name + "_spineGroupPickerButton"], "right", 178)])
|
|
|
|
|
|
# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
|
|
# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
|
|
#select left arm group
|
|
self.widgets[name + "_leftArmGroupPickerButton"] = cmds.button(w = 15, h = 15, label = "", parent = layout, bgc = self.green, c = partial(self.multiButtonSelectCommand, name, ["ik_wrist_l_anim", "ik_elbow_l_anim", "fk_arm_l_anim", "fk_elbow_l_anim", "fk_wrist_l_anim", "clavicle_l_anim"]))
|
|
cmds.formLayout(layout, edit = True, af = [(self.widgets[name + "_leftArmGroupPickerButton"], "top", 75), (self.widgets[name + "_leftArmGroupPickerButton"], "right", 117)])
|
|
|
|
|
|
# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
|
|
# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
|
|
#select right arm group
|
|
self.widgets[name + "_rightArmGroupPickerButton"] = cmds.button(w = 15, h = 15, label = "", parent = layout, bgc = self.green, c = partial(self.multiButtonSelectCommand, name, ["ik_wrist_r_anim", "ik_elbow_r_anim", "fk_arm_r_anim", "fk_elbow_r_anim", "fk_wrist_r_anim", "clavicle_r_anim"]))
|
|
cmds.formLayout(layout, edit = True, af = [(self.widgets[name + "_rightArmGroupPickerButton"], "top", 75), (self.widgets[name + "_rightArmGroupPickerButton"], "left", 117)])
|
|
|
|
# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
|
|
# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
|
|
#select left leg group
|
|
self.widgets[name + "_leftLegGroupPickerButton"] = cmds.button(w = 15, h = 15, label = "", parent = layout, bgc = self.green, c = partial(self.multiButtonSelectCommand, name, ["fk_thigh_l_anim", "fk_calf_l_anim", "fk_foot_l_anim", "fk_ball_l_anim", "ik_foot_anim_l", "heel_ctrl_l", "toe_wiggle_ctrl_l", "toe_tip_ctrl_l"]))
|
|
cmds.formLayout(layout, edit = True, af = [(self.widgets[name + "_leftLegGroupPickerButton"], "top", 222), (self.widgets[name + "_leftLegGroupPickerButton"], "right", 114)])
|
|
|
|
# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
|
|
#select left leg ik ctrls
|
|
self.widgets[name + "_leftLegIKGroupPickerButton"] = cmds.button(w = 15, h = 15, label = "", parent = layout, bgc = self.green, c = partial(self.multiButtonSelectCommand, name, ["ik_foot_anim_l", "heel_ctrl_l", "toe_wiggle_ctrl_l", "toe_tip_ctrl_l"]))
|
|
cmds.formLayout(layout, edit = True, af = [(self.widgets[name + "_leftLegIKGroupPickerButton"], "top", 408), (self.widgets[name + "_leftLegIKGroupPickerButton"], "right", 40)])
|
|
|
|
|
|
|
|
# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
|
|
# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
|
|
#select right leg group
|
|
self.widgets[name + "_rightLegGroupPickerButton"] = cmds.button(w = 15, h = 15, label = "", parent = layout, bgc = self.green, c = partial(self.multiButtonSelectCommand, name, ["fk_thigh_r_anim", "fk_calf_r_anim", "fk_foot_r_anim", "fk_ball_r_anim", "ik_foot_anim_r", "heel_ctrl_r", "toe_wiggle_ctrl_r", "toe_tip_ctrl_r"]))
|
|
cmds.formLayout(layout, edit = True, af = [(self.widgets[name + "_rightLegGroupPickerButton"], "top", 222), (self.widgets[name + "_rightLegGroupPickerButton"], "left", 114)])
|
|
|
|
|
|
# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
|
|
#select right leg ik ctrls
|
|
self.widgets[name + "_rightLegIKGroupPickerButton"] = cmds.button(w = 15, h = 15, label = "", parent = layout, bgc = self.green, c = partial(self.multiButtonSelectCommand, name, ["ik_foot_anim_r", "heel_ctrl_r", "toe_wiggle_ctrl_r", "toe_tip_ctrl_r"]))
|
|
cmds.formLayout(layout, edit = True, af = [(self.widgets[name + "_rightLegIKGroupPickerButton"], "top", 408), (self.widgets[name + "_rightLegIKGroupPickerButton"], "left", 40)])
|
|
|
|
|
|
# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
|
|
# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
|
|
#arm rolls
|
|
if leftArmTwist > 0:
|
|
self.widgets[name + "_leftArmRollPickerButton"] = cmds.button(w = 15, h = 15, label = "", parent = layout, bgc = self.purple, c = partial(self.buttonSelectCommand, name, "upperarm_l_twist_anim"))
|
|
cmds.formLayout(layout, edit = True, af = [(self.widgets[name + "_leftArmRollPickerButton"], "top", 75), (self.widgets[name + "_leftArmRollPickerButton"], "right", 76)])
|
|
|
|
if leftArmTwist > 1:
|
|
self.widgets[name + "_leftArmRoll2PickerButton"] = cmds.button(w = 15, h = 15, label = "", parent = layout, bgc = self.purple, c = partial(self.buttonSelectCommand, name, "upperarm_l_twist_2_anim"))
|
|
cmds.formLayout(layout, edit = True, af = [(self.widgets[name + "_leftArmRoll2PickerButton"], "top", 75), (self.widgets[name + "_leftArmRoll2PickerButton"], "right", 56)])
|
|
|
|
if leftArmTwist > 2:
|
|
self.widgets[name + "_leftArmRoll3PickerButton"] = cmds.button(w = 15, h = 15, label = "", parent = layout, bgc = self.purple, c = partial(self.buttonSelectCommand, name, "upperarm_l_twist_3_anim"))
|
|
cmds.formLayout(layout, edit = True, af = [(self.widgets[name + "_leftArmRoll3PickerButton"], "top", 75), (self.widgets[name + "_leftArmRoll3PickerButton"], "right", 36)])
|
|
|
|
|
|
if rightArmTwist > 0:
|
|
self.widgets[name + "_rightArmRollPickerButton"] = cmds.button(w = 15, h = 15, label = "", parent = layout, bgc = self.purple, c = partial(self.buttonSelectCommand, name, "upperarm_r_twist_anim"))
|
|
cmds.formLayout(layout, edit = True, af = [(self.widgets[name + "_rightArmRollPickerButton"], "top", 75), (self.widgets[name + "_rightArmRollPickerButton"], "left", 76)])
|
|
|
|
if rightArmTwist > 1:
|
|
self.widgets[name + "_rightArmRoll2PickerButton"] = cmds.button(w = 15, h = 15, label = "", parent = layout, bgc = self.purple, c = partial(self.buttonSelectCommand, name, "upperarm_r_twist_2_anim"))
|
|
cmds.formLayout(layout, edit = True, af = [(self.widgets[name + "_rightArmRoll2PickerButton"], "top", 75), (self.widgets[name + "_rightArmRoll2PickerButton"], "left", 56)])
|
|
|
|
if rightArmTwist > 2:
|
|
self.widgets[name + "_rightArmRoll3PickerButton"] = cmds.button(w = 15, h = 15, label = "", parent = layout, bgc = self.purple, c = partial(self.buttonSelectCommand, name, "upperarm_r_twist_3_anim"))
|
|
cmds.formLayout(layout, edit = True, af = [(self.widgets[name + "_rightArmRoll3PickerButton"], "top", 75), (self.widgets[name + "_rightArmRoll3PickerButton"], "left", 36)])
|
|
|
|
|
|
|
|
# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
|
|
# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
|
|
#forearm twists
|
|
if leftArmForeTwist > 0:
|
|
self.widgets[name + "_leftForeTwistPickerButton"] = cmds.button(w = 15, h = 15, label = "", parent = layout, bgc = self.purple, c = partial(self.buttonSelectCommand, name, "lowerarm_l_twist_anim"))
|
|
cmds.formLayout(layout, edit = True, af = [(self.widgets[name + "_leftForeTwistPickerButton"], "top", 190), (self.widgets[name + "_leftForeTwistPickerButton"], "right", 15)])
|
|
|
|
if leftArmForeTwist > 1:
|
|
self.widgets[name + "_leftForeTwist2PickerButton"] = cmds.button(w = 15, h = 15, label = "", parent = layout, bgc = self.purple, c = partial(self.buttonSelectCommand, name, "lowerarm_l_twist2_anim"))
|
|
cmds.formLayout(layout, edit = True, af = [(self.widgets[name + "_leftForeTwist2PickerButton"], "top", 170), (self.widgets[name + "_leftForeTwist2PickerButton"], "right", 15)])
|
|
|
|
if leftArmForeTwist > 2:
|
|
self.widgets[name + "_leftForeTwist3PickerButton"] = cmds.button(w = 15, h = 15, label = "", parent = layout, bgc = self.purple, c = partial(self.buttonSelectCommand, name, "lowerarm_l_twist3_anim"))
|
|
cmds.formLayout(layout, edit = True, af = [(self.widgets[name + "_leftForeTwist3PickerButton"], "top", 150), (self.widgets[name + "_leftForeTwist3PickerButton"], "right", 15)])
|
|
|
|
|
|
|
|
if rightArmForeTwist > 0:
|
|
self.widgets[name + "_rightForeTwistPickerButton"] = cmds.button(w = 15, h = 15, label = "", parent = layout, bgc = self.purple, c = partial(self.buttonSelectCommand, name, "lowerarm_r_twist_anim"))
|
|
cmds.formLayout(layout, edit = True, af = [(self.widgets[name + "_rightForeTwistPickerButton"], "top", 190), (self.widgets[name + "_rightForeTwistPickerButton"], "left", 15)])
|
|
|
|
if rightArmForeTwist > 1:
|
|
self.widgets[name + "_rightForeTwist2PickerButton"] = cmds.button(w = 15, h = 15, label = "", parent = layout, bgc = self.purple, c = partial(self.buttonSelectCommand, name, "lowerarm_r_twist2_anim"))
|
|
cmds.formLayout(layout, edit = True, af = [(self.widgets[name + "_rightForeTwist2PickerButton"], "top", 170), (self.widgets[name + "_rightForeTwist2PickerButton"], "left", 15)])
|
|
|
|
if rightArmForeTwist > 2:
|
|
self.widgets[name + "_rightForeTwist3PickerButton"] = cmds.button(w = 15, h = 15, label = "", parent = layout, bgc = self.purple, c = partial(self.buttonSelectCommand, name, "lowerarm_r_twist3_anim"))
|
|
cmds.formLayout(layout, edit = True, af = [(self.widgets[name + "_rightForeTwist3PickerButton"], "top", 150), (self.widgets[name + "_rightForeTwist3PickerButton"], "left", 15)])
|
|
|
|
|
|
|
|
|
|
|
|
|
|
# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
|
|
# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
|
|
#thigh twists
|
|
if leftThighTwist > 0:
|
|
self.widgets[name + "_leftThighTwistPickerButton"] = cmds.button(w = 15, h = 15, label = "", parent = layout, bgc = self.purple, c = partial(self.buttonSelectCommand, name, "l_thigh_twist_01_anim"))
|
|
cmds.formLayout(layout, edit = True, af = [(self.widgets[name + "_leftThighTwistPickerButton"], "top", 241), (self.widgets[name + "_leftThighTwistPickerButton"], "right", 106)])
|
|
|
|
if leftThighTwist > 1:
|
|
self.widgets[name + "_leftThighTwist2PickerButton"] = cmds.button(w = 15, h = 15, label = "", parent = layout, bgc = self.purple, c = partial(self.buttonSelectCommand, name, "l_thigh_twist_02_anim"))
|
|
cmds.formLayout(layout, edit = True, af = [(self.widgets[name + "_leftThighTwist2PickerButton"], "top", 261), (self.widgets[name + "_leftThighTwist2PickerButton"], "right", 106)])
|
|
|
|
if leftThighTwist > 2:
|
|
self.widgets[name + "_leftThighTwist3PickerButton"] = cmds.button(w = 15, h = 15, label = "", parent = layout, bgc = self.purple, c = partial(self.buttonSelectCommand, name, "l_thigh_twist_03_anim"))
|
|
cmds.formLayout(layout, edit = True, af = [(self.widgets[name + "_leftThighTwist3PickerButton"], "top", 281), (self.widgets[name + "_leftThighTwist3PickerButton"], "right", 106)])
|
|
|
|
|
|
if rightThighTwist > 0:
|
|
self.widgets[name + "_rightThighTwistPickerButton"] = cmds.button(w = 15, h = 15, label = "", parent = layout, bgc = self.purple, c = partial(self.buttonSelectCommand, name, "r_thigh_twist_01_anim"))
|
|
cmds.formLayout(layout, edit = True, af = [(self.widgets[name + "_rightThighTwistPickerButton"], "top", 241), (self.widgets[name + "_rightThighTwistPickerButton"], "left", 106)])
|
|
|
|
if rightThighTwist > 1:
|
|
self.widgets[name + "_rightThighTwist2PickerButton"] = cmds.button(w = 15, h = 15, label = "", parent = layout, bgc = self.purple, c = partial(self.buttonSelectCommand, name, "r_thigh_twist_02_anim"))
|
|
cmds.formLayout(layout, edit = True, af = [(self.widgets[name + "_rightThighTwist2PickerButton"], "top", 261), (self.widgets[name + "_rightThighTwist2PickerButton"], "left", 106)])
|
|
|
|
if rightThighTwist > 2:
|
|
self.widgets[name + "_rightThighTwist3PickerButton"] = cmds.button(w = 15, h = 15, label = "", parent = layout, bgc = self.purple, c = partial(self.buttonSelectCommand, name, "r_thigh_twist_03_anim"))
|
|
cmds.formLayout(layout, edit = True, af = [(self.widgets[name + "_rightThighTwist3PickerButton"], "top", 281), (self.widgets[name + "_rightThighTwist3PickerButton"], "left", 106)])
|
|
|
|
|
|
|
|
# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
|
|
# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
|
|
#calf twists
|
|
if leftCalfTwist > 0:
|
|
self.widgets[name + "_leftCalfTwistPickerButton"] = cmds.button(w = 15, h = 15, label = "", parent = layout, bgc = self.purple, c = partial(self.buttonSelectCommand, name, "calf_l_twist_anim"))
|
|
cmds.formLayout(layout, edit = True, af = [(self.widgets[name + "_leftCalfTwistPickerButton"], "top", 400), (self.widgets[name + "_leftCalfTwistPickerButton"], "right", 106)])
|
|
|
|
if leftCalfTwist > 1:
|
|
self.widgets[name + "_leftCalfTwist2PickerButton"] = cmds.button(w = 15, h = 15, label = "", parent = layout, bgc = self.purple, c = partial(self.buttonSelectCommand, name, "calf_l_twist2_anim"))
|
|
cmds.formLayout(layout, edit = True, af = [(self.widgets[name + "_leftCalfTwist2PickerButton"], "top", 380), (self.widgets[name + "_leftCalfTwist2PickerButton"], "right", 106)])
|
|
|
|
if leftCalfTwist > 2:
|
|
self.widgets[name + "_leftCalfTwist3PickerButton"] = cmds.button(w = 15, h = 15, label = "", parent = layout, bgc = self.purple, c = partial(self.buttonSelectCommand, name, "calf_l_twist3_anim"))
|
|
cmds.formLayout(layout, edit = True, af = [(self.widgets[name + "_leftCalfTwist3PickerButton"], "top", 360), (self.widgets[name + "_leftCalfTwist3PickerButton"], "right", 106)])
|
|
|
|
|
|
if rightCalfTwist > 0:
|
|
self.widgets[name + "_rightCalfTwistPickerButton"] = cmds.button(w = 15, h = 15, label = "", parent = layout, bgc = self.purple, c = partial(self.buttonSelectCommand, name, "calf_r_twist_anim"))
|
|
cmds.formLayout(layout, edit = True, af = [(self.widgets[name + "_rightCalfTwistPickerButton"], "top", 400), (self.widgets[name + "_rightCalfTwistPickerButton"], "left", 106)])
|
|
|
|
if rightCalfTwist > 1:
|
|
self.widgets[name + "_rightCalfTwist2PickerButton"] = cmds.button(w = 15, h = 15, label = "", parent = layout, bgc = self.purple, c = partial(self.buttonSelectCommand, name, "calf_r_twist2_anim"))
|
|
cmds.formLayout(layout, edit = True, af = [(self.widgets[name + "_rightCalfTwist2PickerButton"], "top", 380), (self.widgets[name + "_rightCalfTwist2PickerButton"], "left", 106)])
|
|
|
|
if rightCalfTwist > 2:
|
|
self.widgets[name + "_rightCalfTwist3PickerButton"] = cmds.button(w = 15, h = 15, label = "", parent = layout, bgc = self.purple, c = partial(self.buttonSelectCommand, name, "calf_r_twist3_anim"))
|
|
cmds.formLayout(layout, edit = True, af = [(self.widgets[name + "_rightCalfTwist3PickerButton"], "top", 360), (self.widgets[name + "_rightCalfTwist3PickerButton"], "left", 106)])
|
|
|
|
# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
|
|
# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
|
|
#Setup right click menus for each of the limbs that can switch modes
|
|
|
|
#spine
|
|
for i in range(int(numSpineBones)):
|
|
buttonName = name + "_spine" + str(i + 1) + "_PickerButton"
|
|
menu = cmds.popupMenu(b = 3, parent = self.widgets[buttonName])
|
|
cmds.menuItem(label = "Spine FK Mode", parent = menu, c = partial(self.switchSpineMode, name, "FK"))
|
|
cmds.menuItem(label = "Spine IK Mode", parent = menu, c = partial(self.switchSpineMode, name, "IK"))
|
|
|
|
matchMenu = cmds.menuItem(label = "Matching", parent = menu, subMenu = True)
|
|
cmds.menuItem(label = "Match FK Rig to current IK Pose", parent = matchMenu, c = partial(self.match_singleFrame, "spine", None, "FK", "IK"))
|
|
cmds.menuItem(label = "Match IK Rig to current FK Pose", parent = matchMenu, c = partial(self.match_singleFrame, "spine", None, "IK", "FK"))
|
|
|
|
if i == 0:
|
|
spaceMenu = cmds.menuItem(label = "Space Switching", parent = menu, subMenu = True)
|
|
self.widgets[name + "_spine1_RadioCollection"] = cmds.radioMenuItemCollection(parent = spaceMenu)
|
|
cmds.menuItem(spaceMenu, edit = True, postMenuCommand = partial(self.getControlSpaces, menu, self.widgets[name + "_spine1_RadioCollection"] , "spine_01_space_switcher"))
|
|
|
|
|
|
if int(numSpineBones) > 2:
|
|
menu = cmds.popupMenu(b = 3, parent = self.widgets[name + "_ikSpineMidPickerButton"])
|
|
cmds.menuItem(label = "Spine FK Mode", parent = menu, c = partial(self.switchSpineMode, name, "FK"))
|
|
cmds.menuItem(label = "Spine IK Mode", parent = menu, c = partial(self.switchSpineMode, name, "IK"))
|
|
|
|
matchMenu = cmds.menuItem(label = "Matching", parent = menu, subMenu = True)
|
|
cmds.menuItem(label = "Match FK Rig to current IK Pose", parent = matchMenu, c = partial(self.match_singleFrame, "spine", None, "FK", "IK"))
|
|
cmds.menuItem(label = "Match IK Rig to current FK Pose", parent = matchMenu, c = partial(self.match_singleFrame, "spine", None, "IK", "FK"))
|
|
|
|
menu = cmds.popupMenu(b = 3, parent = self.widgets[name + "_ikSpineTopPickerButton"])
|
|
cmds.menuItem(label = "Spine FK Mode", parent = menu, c = partial(self.switchSpineMode, name, "FK"))
|
|
cmds.menuItem(label = "Spine IK Mode", parent = menu, c = partial(self.switchSpineMode, name, "IK"))
|
|
|
|
matchMenu = cmds.menuItem(label = "Matching", parent = menu, subMenu = True)
|
|
cmds.menuItem(label = "Match FK Rig to current IK Pose", parent = matchMenu, c = partial(self.match_singleFrame, "spine", None, "FK", "IK"))
|
|
cmds.menuItem(label = "Match IK Rig to current FK Pose", parent = matchMenu, c = partial(self.match_singleFrame, "spine", None, "IK", "FK"))
|
|
|
|
spaceMenu = cmds.menuItem(label = "Space Switching", parent = menu, subMenu = True)
|
|
self.widgets[name + "_chestIkSpine_RadioCollection"] = cmds.radioMenuItemCollection(parent = spaceMenu)
|
|
cmds.menuItem(spaceMenu, edit = True, postMenuCommand = partial(self.getControlSpaces, menu, self.widgets[name + "_chestIkSpine_RadioCollection"] , "chest_ik_anim_space_switcher"))
|
|
|
|
|
|
#Arms
|
|
for button in[self.widgets[name + "_leftClavPickerButton"], self.widgets[name + "_leftShoulderPickerButton"], self.widgets[name + "_leftElbowPickerButton"], self.widgets[name + "_leftHandPickerButton"], self.widgets[name + "_leftIkElbowPickerButton"], self.widgets[name + "_leftIkHandPickerButton"]]:
|
|
menu = cmds.popupMenu(b = 3, parent = button)
|
|
cmds.menuItem(label = "Arm FK Mode", parent = menu, c = partial(self.switchArmMode, name, "FK", "l"))
|
|
cmds.menuItem(label = "Arm IK Mode", parent = menu, c = partial(self.switchArmMode, name, "IK", "l"))
|
|
|
|
#hack to get new fk clav rig matching functionality. will eventually be replaced with something more graceful when I change it over to a modular system
|
|
if button == self.widgets[name + "_leftClavPickerButton"]:
|
|
if cmds.objExists(name + ":fk_clavicle_l_anim"):
|
|
|
|
cmds.menuItem(label = "Clavicle FK Mode", parent = menu, c = partial(self.switchClavMode, name, "FK", "l"))
|
|
cmds.menuItem(label = "Clavicle IK Mode", parent = menu, c = partial(self.switchClavMode, name, "IK", "l"))
|
|
|
|
|
|
|
|
matchMenu = cmds.menuItem(label = "Matching", parent = menu, subMenu = True)
|
|
cmds.menuItem(label = "Match FK Rig to current IK Pose", parent = matchMenu, c = partial(self.match_singleFrame, "arm", "l", "FK", "IK"))
|
|
cmds.menuItem(label = "Match IK Rig to current FK Pose", parent = matchMenu, c = partial(self.match_singleFrame, "arm", "l", "IK", "FK"))
|
|
|
|
|
|
subMenu = cmds.menuItem(label = "Arm FK Orientation Space", parent = menu, subMenu = True)
|
|
|
|
mode = cmds.getAttr(name + ":Rig_Settings.lFkArmOrient")
|
|
if mode == 0:
|
|
clavVal = True
|
|
bodyVal = False
|
|
worldVal = False
|
|
|
|
if mode == 1:
|
|
clavVal = False
|
|
bodyVal = True
|
|
worldVal = False
|
|
|
|
if mode == 2:
|
|
clavVal = False
|
|
bodyVal = False
|
|
worldVal = True
|
|
|
|
|
|
|
|
self.widgets[name + "_" + button + "_leftArm_RadioCollection"] = cmds.radioMenuItemCollection(parent = subMenu)
|
|
self.widgets[name + "_" + button + "_leftArm_ClavSpace"] = cmds.menuItem(label = "Clavicle Space(default fk behavior)", parent = subMenu, cl = self.widgets[name + "_" + button + "_leftArm_RadioCollection"], rb =clavVal, c = partial(self.switchArmOrientMode, name, 0, "l"))
|
|
self.widgets[name + "_" + button + "_leftArm_BodySpace"] = cmds.menuItem(label = "Body Space", parent = subMenu, cl = self.widgets[name + "_" + button + "_leftArm_RadioCollection"], rb =bodyVal, c = partial(self.switchArmOrientMode, name, 1, "l"))
|
|
self.widgets[name + "_" + button + "_leftArm_WrldSpace"] = cmds.menuItem(label = "World Space", parent = subMenu, cl = self.widgets[name + "_" + button + "_leftArm_RadioCollection"], rb =worldVal, c = partial(self.switchArmOrientMode, name, 2, "l"))
|
|
|
|
|
|
|
|
if button == self.widgets[name + "_leftIkHandPickerButton"]:
|
|
spaceMenu = cmds.menuItem(label = "Space Switching", parent = menu, subMenu = True)
|
|
self.widgets[name + "_leftIkHnad_RadioCollection"] = cmds.radioMenuItemCollection(parent = spaceMenu)
|
|
cmds.menuItem(spaceMenu, edit = True, postMenuCommand = partial(self.getControlSpaces, menu, self.widgets[name + "_leftIkHnad_RadioCollection"] , "ik_wrist_l_anim_space_switcher"))
|
|
|
|
|
|
if button == self.widgets[name + "_leftIkElbowPickerButton"]:
|
|
spaceMenu = cmds.menuItem(label = "Space Switching", parent = menu, subMenu = True)
|
|
self.widgets[name + "_leftIkElbow_RadioCollection"] = cmds.radioMenuItemCollection(parent = spaceMenu)
|
|
cmds.menuItem(spaceMenu, edit = True, postMenuCommand = partial(self.getControlSpaces, menu, self.widgets[name + "_leftIkElbow_RadioCollection"] , "ik_elbow_l_anim_space_switcher"))
|
|
|
|
|
|
|
|
|
|
|
|
for button in[self.widgets[name + "_rightClavPickerButton"], self.widgets[name + "_rightShoulderPickerButton"], self.widgets[name + "_rightElbowPickerButton"], self.widgets[name + "_rightHandPickerButton"], self.widgets[name + "_rightIkElbowPickerButton"], self.widgets[name + "_rightIkHandPickerButton"]]:
|
|
menu = cmds.popupMenu(b = 3, parent = button)
|
|
cmds.menuItem(label = "Arm FK Mode", parent = menu, c = partial(self.switchArmMode, name, "FK", "r"))
|
|
cmds.menuItem(label = "Arm IK Mode", parent = menu, c = partial(self.switchArmMode, name, "IK", "r"))
|
|
|
|
if button == self.widgets[name + "_rightClavPickerButton"]:
|
|
if cmds.objExists(name + ":fk_clavicle_r_anim"):
|
|
|
|
cmds.menuItem(label = "Clavicle FK Mode", parent = menu, c = partial(self.switchClavMode, name, "FK", "r"))
|
|
cmds.menuItem(label = "Clavicle IK Mode", parent = menu, c = partial(self.switchClavMode, name, "IK", "r"))
|
|
|
|
|
|
matchMenu = cmds.menuItem(label = "Matching", parent = menu, subMenu = True)
|
|
cmds.menuItem(label = "Match FK Rig to current IK Pose", parent = matchMenu, c = partial(self.match_singleFrame, "arm", "r", "FK", "IK"))
|
|
cmds.menuItem(label = "Match IK Rig to current FK Pose", parent = matchMenu, c = partial(self.match_singleFrame, "arm", "r", "IK", "FK"))
|
|
|
|
subMenu = cmds.menuItem(label = "Arm FK Orientation Space", parent = menu, subMenu = True)
|
|
|
|
mode = cmds.getAttr(name + ":Rig_Settings.rFkArmOrient")
|
|
if mode == 0:
|
|
clavVal = True
|
|
bodyVal = False
|
|
worldVal = False
|
|
|
|
if mode == 1:
|
|
clavVal = False
|
|
bodyVal = True
|
|
worldVal = False
|
|
|
|
if mode == 2:
|
|
clavVal = False
|
|
bodyVal = False
|
|
worldVal = True
|
|
|
|
|
|
|
|
self.widgets[name + "_" + button + "_rightArm_RadioCollection"] = cmds.radioMenuItemCollection(parent = subMenu)
|
|
self.widgets[name + "_" + button + "_rightArm_ClavSpace"] = cmds.menuItem(label = "Clavicle Space(default fk behavior)", parent = subMenu, cl = self.widgets[name + "_" + button + "_rightArm_RadioCollection"], rb =clavVal, c = partial(self.switchArmOrientMode, name, 0, "r"))
|
|
self.widgets[name + "_" + button + "_rightArm_BodySpace"] = cmds.menuItem(label = "Body Space", parent = subMenu, cl = self.widgets[name + "_" + button + "_rightArm_RadioCollection"], rb =bodyVal, c = partial(self.switchArmOrientMode, name, 1, "r"))
|
|
self.widgets[name + "_" + button + "_rightArm_WrldSpace"] = cmds.menuItem(label = "World Space", parent = subMenu, cl = self.widgets[name + "_" + button + "_rightArm_RadioCollection"], rb =worldVal, c = partial(self.switchArmOrientMode, name, 2, "r"))
|
|
|
|
|
|
if button == self.widgets[name + "_rightIkHandPickerButton"]:
|
|
spaceMenu = cmds.menuItem(label = "Space Switching", parent = menu, subMenu = True)
|
|
self.widgets[name + "_rightIkHnad_RadioCollection"] = cmds.radioMenuItemCollection(parent = spaceMenu)
|
|
cmds.menuItem(spaceMenu, edit = True, postMenuCommand = partial(self.getControlSpaces, menu, self.widgets[name + "_rightIkHnad_RadioCollection"] , "ik_wrist_r_anim_space_switcher"))
|
|
|
|
if button == self.widgets[name + "_rightIkElbowPickerButton"]:
|
|
spaceMenu = cmds.menuItem(label = "Space Switching", parent = menu, subMenu = True)
|
|
self.widgets[name + "_rightIkElbow_RadioCollection"] = cmds.radioMenuItemCollection(parent = spaceMenu)
|
|
cmds.menuItem(spaceMenu, edit = True, postMenuCommand = partial(self.getControlSpaces, menu, self.widgets[name + "_rightIkElbow_RadioCollection"] , "ik_elbow_r_anim_space_switcher"))
|
|
|
|
|
|
#Legs
|
|
for button in[self.widgets[name + "_leftThighPickerButton"], self.widgets[name + "_leftFkKneePickerButton"], self.widgets[name + "_leftFkAnklePickerButton"], self.widgets[name + "_leftIkFootPickerButton"]]:
|
|
menu = cmds.popupMenu(b = 3, parent = button)
|
|
cmds.menuItem(label = "Leg FK Mode", parent = menu, c = partial(self.switchLegMode, name, "FK", "l"))
|
|
cmds.menuItem(label = "Leg IK Mode", parent = menu, c = partial(self.switchLegMode, name, "IK", "l"))
|
|
|
|
matchMenu = cmds.menuItem(label = "Matching", parent = menu, subMenu = True)
|
|
cmds.menuItem(label = "Match FK Rig to current IK Pose", parent = matchMenu, c = partial(self.match_singleFrame, "leg", "l", "FK", "IK"))
|
|
cmds.menuItem(label = "Match IK Rig to current FK Pose", parent = matchMenu, c = partial(self.match_singleFrame, "leg", "l", "IK", "FK"))
|
|
|
|
if button == self.widgets[name + "_leftIkFootPickerButton"]:
|
|
spaceMenu = cmds.menuItem(label = "Space Switching", parent = menu, subMenu = True)
|
|
self.widgets[name + "_leftIkFoot_RadioCollection"] = cmds.radioMenuItemCollection(parent = spaceMenu)
|
|
cmds.menuItem(spaceMenu, edit = True, postMenuCommand = partial(self.getControlSpaces, menu, self.widgets[name + "_leftIkFoot_RadioCollection"] , "ik_foot_anim_l_space_switcher"))
|
|
|
|
for button in[self.widgets[name + "_rightThighPickerButton"], self.widgets[name + "_rightFkKneePickerButton"], self.widgets[name + "_rightFkAnklePickerButton"], self.widgets[name + "_rightIkFootPickerButton"]]:
|
|
menu = cmds.popupMenu(b = 3, parent = button)
|
|
cmds.menuItem(label = "Leg FK Mode", parent = menu, c = partial(self.switchLegMode, name, "FK", "r"))
|
|
cmds.menuItem(label = "Leg IK Mode", parent = menu, c = partial(self.switchLegMode, name, "IK", "r"))
|
|
|
|
matchMenu = cmds.menuItem(label = "Matching", parent = menu, subMenu = True)
|
|
cmds.menuItem(label = "Match FK Rig to current IK Pose", parent = matchMenu, c = partial(self.match_singleFrame, "leg", "r", "FK", "IK"))
|
|
cmds.menuItem(label = "Match IK Rig to current FK Pose", parent = matchMenu, c = partial(self.match_singleFrame, "leg", "r", "IK", "FK"))
|
|
|
|
if button == self.widgets[name + "_rightIkFootPickerButton"]:
|
|
spaceMenu = cmds.menuItem(label = "Space Switching", parent = menu, subMenu = True)
|
|
self.widgets[name + "_rightIkFoot_RadioCollection"] = cmds.radioMenuItemCollection(parent = spaceMenu)
|
|
cmds.menuItem(spaceMenu, edit = True, postMenuCommand = partial(self.getControlSpaces, menu, self.widgets[name + "_rightIkFoot_RadioCollection"] , "ik_foot_anim_r_space_switcher"))
|
|
|
|
|
|
|
|
#Head
|
|
menu = cmds.popupMenu(b = 3, parent = self.widgets[name + "_headPickerButton"], postMenuCommand = self.getHeadSpace)
|
|
subMenu = cmds.menuItem(label = "Space Switching", parent = menu, subMenu = True)
|
|
collection = cmds.radioMenuItemCollection(parent = subMenu)
|
|
self.widgets["neckSpaceRB"] = cmds.menuItem(label = "Neck", parent = subMenu, cl = collection, rb = True, c = partial(self.switchHeadOrientMode, name, 0))
|
|
self.widgets["shoulderSpaceRB"] = cmds.menuItem(label = "Shoulder", parent = subMenu, cl = collection, rb = False, c = partial(self.switchHeadOrientMode, name, 1))
|
|
self.widgets["bodySpaceRB"] = cmds.menuItem(label = "Body", parent = subMenu, cl = collection, rb = False, c = partial(self.switchHeadOrientMode, name, 2))
|
|
self.widgets["worldSpaceRB"] = cmds.menuItem(label = "World", parent = subMenu, cl = collection, rb = False, c = partial(self.switchHeadOrientMode, name, 3))
|
|
|
|
|
|
#Neck
|
|
if cmds.objExists(name + ":neck_01_fk_anim.fkOrientation"):
|
|
menu = cmds.popupMenu(b = 3, parent = self.widgets[name + "_neck1_PickerButton"], postMenuCommand = self.getNeckSpace)
|
|
subMenu = cmds.menuItem(label = "Space Switching", parent = menu, subMenu = True)
|
|
collection = cmds.radioMenuItemCollection(parent = subMenu)
|
|
self.widgets["neckOrientShoulderSpaceRB"] = cmds.menuItem(label = "Shoulder", parent = subMenu, cl = collection, rb = False, c = partial(self.switchNeckOrientMode, name, 0))
|
|
self.widgets["neckOrientBodySpaceRB"] = cmds.menuItem(label = "Body", parent = subMenu, cl = collection, rb = False, c = partial(self.switchNeckOrientMode, name, 1))
|
|
self.widgets["neckOrientWorldSpaceRB"] = cmds.menuItem(label = "World", parent = subMenu, cl = collection, rb = False, c = partial(self.switchNeckOrientMode, name, 2))
|
|
|
|
|
|
#Core (body, master)
|
|
menu = cmds.popupMenu(b = 3, parent = self.widgets[name + "_bodyPickerButton"])
|
|
spaceMenu = cmds.menuItem(label = "Space Switching", parent = menu, subMenu = True)
|
|
self.widgets[name + "_bodySpaceSwitch_RadioCollection"] = cmds.radioMenuItemCollection(parent = spaceMenu)
|
|
cmds.menuItem(spaceMenu, edit = True, postMenuCommand = partial(self.getControlSpaces, menu, self.widgets[name + "_bodySpaceSwitch_RadioCollection"] , "body_anim_space_switcher"))
|
|
|
|
|
|
menu = cmds.popupMenu(b = 3, parent = self.widgets[name + "_masterPickerButton"])
|
|
spaceMenu = cmds.menuItem(label = "Space Switching", parent = menu, subMenu = True)
|
|
self.widgets[name + "_masterSpaceSwitch_RadioCollection"] = cmds.radioMenuItemCollection(parent = spaceMenu)
|
|
cmds.menuItem(spaceMenu, edit = True, postMenuCommand = partial(self.getControlSpaces, menu, self.widgets[name + "_masterSpaceSwitch_RadioCollection"] , "master_anim_space_switcher"))
|
|
|
|
|
|
|
|
|
|
|
|
# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
|
|
# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
|
|
# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
|
|
# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
|
|
# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
|
|
def createFingersPicker(self, name, layout, *args):
|
|
|
|
#select all fingers buttons
|
|
self.widgets[name + "_selectAllLeftFingers"] = cmds.symbolButton(image = self.mayaToolsDir + "/General/Icons/ART/lFingerAll.bmp", w = 175, h = 170, c = partial(self.multiButtonSelectCommand, name, ["index_metacarpal_ctrl_l", "middle_metacarpal_ctrl_l", "ring_metacarpal_ctrl_l", "pinky_metacarpal_ctrl_l", "index_finger_fk_ctrl_1_l", "middle_finger_fk_ctrl_1_l", "ring_finger_fk_ctrl_1_l", "pinky_finger_fk_ctrl_1_l", "thumb_finger_fk_ctrl_1_l", "index_finger_fk_ctrl_2_l", "middle_finger_fk_ctrl_2_l", "ring_finger_fk_ctrl_2_l", "pinky_finger_fk_ctrl_2_l", "thumb_finger_fk_ctrl_2_l", "index_finger_fk_ctrl_3_l", "middle_finger_fk_ctrl_3_l", "ring_finger_fk_ctrl_3_l", "pinky_finger_fk_ctrl_3_l", "thumb_finger_fk_ctrl_3_l"]))
|
|
cmds.formLayout(layout, edit = True, af = [(self.widgets[name + "_selectAllLeftFingers"], "top", 5), (self.widgets[name + "_selectAllLeftFingers"], "right", 5)])
|
|
menu = cmds.popupMenu(b = 3, parent = self.widgets[name + "_selectAllLeftFingers"])
|
|
cmds.menuItem(label = "Select all IK Finger Controls", parent = menu, c = partial(self.multiButtonSelectCommand, name, ["index_l_ik_anim", "middle_l_ik_anim", "ring_l_ik_anim", "pinky_l_ik_anim", "thumb_l_ik_anim", "index_l_poleVector", "middle_l_poleVector", "ring_l_poleVector", "pinky_l_poleVector", "thumb_l_poleVector", "l_global_ik_anim"]))
|
|
cmds.menuItem(label = "Select FK and IK Finger Controls", parent = menu, c = partial(self.multiButtonSelectCommand, name, ["index_l_ik_anim", "middle_l_ik_anim", "ring_l_ik_anim", "pinky_l_ik_anim", "thumb_l_ik_anim", "index_l_poleVector", "middle_l_poleVector", "ring_l_poleVector", "pinky_l_poleVector", "thumb_l_poleVector", "l_global_ik_anim", "index_metacarpal_ctrl_l", "middle_metacarpal_ctrl_l", "ring_metacarpal_ctrl_l", "pinky_metacarpal_ctrl_l", "index_finger_fk_ctrl_1_l", "middle_finger_fk_ctrl_1_l", "ring_finger_fk_ctrl_1_l", "pinky_finger_fk_ctrl_1_l", "thumb_finger_fk_ctrl_1_l", "index_finger_fk_ctrl_2_l", "middle_finger_fk_ctrl_2_l", "ring_finger_fk_ctrl_2_l", "pinky_finger_fk_ctrl_2_l", "thumb_finger_fk_ctrl_2_l", "index_finger_fk_ctrl_3_l", "middle_finger_fk_ctrl_3_l", "ring_finger_fk_ctrl_3_l", "pinky_finger_fk_ctrl_3_l", "thumb_finger_fk_ctrl_3_l"]))
|
|
|
|
|
|
self.widgets[name + "_selectAllRightFingers"] = cmds.symbolButton(image = self.mayaToolsDir + "/General/Icons/ART/rFingerAll.bmp", w = 175, h = 170, c = partial(self.multiButtonSelectCommand, name, ["index_metacarpal_ctrl_r", "middle_metacarpal_ctrl_r", "ring_metacarpal_ctrl_r", "pinky_metacarpal_ctrl_r", "index_finger_fk_ctrl_1_r", "middle_finger_fk_ctrl_1_r", "ring_finger_fk_ctrl_1_r", "pinky_finger_fk_ctrl_1_r", "thumb_finger_fk_ctrl_1_r", "index_finger_fk_ctrl_2_r", "middle_finger_fk_ctrl_2_r", "ring_finger_fk_ctrl_2_r", "pinky_finger_fk_ctrl_2_r", "thumb_finger_fk_ctrl_2_r", "index_finger_fk_ctrl_3_r", "middle_finger_fk_ctrl_3_r", "ring_finger_fk_ctrl_3_r", "pinky_finger_fk_ctrl_3_r", "thumb_finger_fk_ctrl_3_r"]))
|
|
cmds.formLayout(layout, edit = True, af = [(self.widgets[name + "_selectAllRightFingers"], "top", 5), (self.widgets[name + "_selectAllRightFingers"], "left", 5)])
|
|
menu = cmds.popupMenu(b = 3, parent = self.widgets[name + "_selectAllRightFingers"])
|
|
cmds.menuItem(label = "Select all IK Finger Controls", parent = menu, c = partial(self.multiButtonSelectCommand, name, ["index_r_ik_anim", "middle_r_ik_anim", "ring_r_ik_anim", "pinky_r_ik_anim", "thumb_r_ik_anim", "index_r_poleVector", "middle_r_poleVector", "ring_r_poleVector", "pinky_r_poleVector", "thumb_r_poleVector", "r_global_ik_anim"]))
|
|
cmds.menuItem(label = "Select FK and IK Finger Controls", parent = menu, c = partial(self.multiButtonSelectCommand, name, ["index_r_ik_anim", "middle_r_ik_anim", "ring_r_ik_anim", "pinky_r_ik_anim", "thumb_r_ik_anim", "index_r_poleVector", "middle_r_poleVector", "ring_r_poleVector", "pinky_r_poleVector", "thumb_r_poleVector", "r_global_ik_anim", "index_metacarpal_ctrl_r", "middle_metacarpal_ctrl_r", "ring_metacarpal_ctrl_r", "pinky_metacarpal_ctrl_r", "index_finger_fk_ctrl_1_r", "middle_finger_fk_ctrl_1_r", "ring_finger_fk_ctrl_1_r", "pinky_finger_fk_ctrl_1_r", "thumb_finger_fk_ctrl_1_r", "index_finger_fk_ctrl_2_r", "middle_finger_fk_ctrl_2_r", "ring_finger_fk_ctrl_2_r", "pinky_finger_fk_ctrl_2_r", "thumb_finger_fk_ctrl_2_r", "index_finger_fk_ctrl_3_r", "middle_finger_fk_ctrl_3_r", "ring_finger_fk_ctrl_3_r", "pinky_finger_fk_ctrl_3_r", "thumb_finger_fk_ctrl_3_r"]))
|
|
|
|
|
|
#Left Pinky
|
|
#get settings off of skeleton settings node to know what it is we need to create
|
|
leftPinkyMeta = cmds.getAttr(name + ":" + "Skeleton_Settings.leftpinkymeta")
|
|
leftPinky1 = cmds.getAttr(name + ":" + "Skeleton_Settings.leftpinky1")
|
|
leftPinky2 = cmds.getAttr(name + ":" + "Skeleton_Settings.leftpinky2")
|
|
leftPinky3 = cmds.getAttr(name + ":" + "Skeleton_Settings.leftpinky3")
|
|
|
|
if leftPinkyMeta:
|
|
self.widgets[name + "_leftPinkyMetacarpalPickerButton"] = cmds.button(w = 20, h = 20, label = "", parent = layout, bgc = self.blue, c = partial(self.buttonSelectCommand, name, "pinky_metacarpal_ctrl_l"))
|
|
cmds.formLayout(layout, edit = True, af = [(self.widgets[name + "_leftPinkyMetacarpalPickerButton"], "top", 30), (self.widgets[name + "_leftPinkyMetacarpalPickerButton"], "right", 32)])
|
|
menu = cmds.popupMenu(b = 3, parent = self.widgets[name + "_leftPinkyMetacarpalPickerButton"])
|
|
cmds.menuItem(label = "Finger FK Mode", parent = menu, c = partial(self.switchFingerMode, name, "pinky", 0, "l"))
|
|
cmds.menuItem(label = "Finger IK Mode", parent = menu, c = partial(self.switchFingerMode, name, "pinky", 1, "l"))
|
|
|
|
if leftPinky1:
|
|
self.widgets[name + "_leftPinky1PickerButton"] = cmds.button(w = 20, h = 20, label = "", parent = layout, bgc = self.blue, c = partial(self.buttonSelectCommand, name, "pinky_finger_fk_ctrl_1_l"))
|
|
cmds.formLayout(layout, edit = True, af = [(self.widgets[name + "_leftPinky1PickerButton"], "top", 55), (self.widgets[name + "_leftPinky1PickerButton"], "right", 32)])
|
|
menu = cmds.popupMenu(b = 3, parent = self.widgets[name + "_leftPinky1PickerButton"])
|
|
cmds.menuItem(label = "Finger FK Mode", parent = menu, c = partial(self.switchFingerMode, name, "pinky", 0, "l"))
|
|
cmds.menuItem(label = "Finger IK Mode", parent = menu, c = partial(self.switchFingerMode, name, "pinky", 1, "l"))
|
|
|
|
if leftPinky2:
|
|
self.widgets[name + "_leftPinky2PickerButton"] = cmds.button(w = 20, h = 20, label = "", parent = layout, bgc = self.blue, c = partial(self.buttonSelectCommand, name, "pinky_finger_fk_ctrl_2_l"))
|
|
cmds.formLayout(layout, edit = True, af = [(self.widgets[name + "_leftPinky2PickerButton"], "top", 80), (self.widgets[name + "_leftPinky2PickerButton"], "right", 32)])
|
|
menu = cmds.popupMenu(b = 3, parent = self.widgets[name + "_leftPinky2PickerButton"])
|
|
cmds.menuItem(label = "Finger FK Mode", parent = menu, c = partial(self.switchFingerMode, name, "pinky", 0, "l"))
|
|
cmds.menuItem(label = "Finger IK Mode", parent = menu, c = partial(self.switchFingerMode, name, "pinky", 1, "l"))
|
|
|
|
if leftPinky3:
|
|
self.widgets[name + "_leftPinky3PickerButton"] = cmds.button(w = 20, h = 20, label = "", parent = layout, bgc = self.blue, c = partial(self.buttonSelectCommand, name, "pinky_finger_fk_ctrl_3_l"))
|
|
cmds.formLayout(layout, edit = True, af = [(self.widgets[name + "_leftPinky3PickerButton"], "top", 105), (self.widgets[name + "_leftPinky3PickerButton"], "right", 32)])
|
|
menu = cmds.popupMenu(b = 3, parent = self.widgets[name + "_leftPinky3PickerButton"])
|
|
cmds.menuItem(label = "Finger FK Mode", parent = menu, c = partial(self.switchFingerMode, name, "pinky", 0, "l"))
|
|
cmds.menuItem(label = "Finger IK Mode", parent = menu, c = partial(self.switchFingerMode, name, "pinky", 1, "l"))
|
|
|
|
|
|
#Left Ring
|
|
#get settings off of skeleton settings node to know what it is we need to create
|
|
leftRingMeta = cmds.getAttr(name + ":" + "Skeleton_Settings.leftringmeta")
|
|
leftRing1 = cmds.getAttr(name + ":" + "Skeleton_Settings.leftring1")
|
|
leftRing2 = cmds.getAttr(name + ":" + "Skeleton_Settings.leftring2")
|
|
leftRing3 = cmds.getAttr(name + ":" + "Skeleton_Settings.leftring3")
|
|
|
|
if leftRingMeta:
|
|
self.widgets[name + "_leftRingMetacarpalPickerButton"] = cmds.button(w = 20, h = 20, label = "", parent = layout, bgc = self.blue, c = partial(self.buttonSelectCommand, name, "ring_metacarpal_ctrl_l"))
|
|
cmds.formLayout(layout, edit = True, af = [(self.widgets[name + "_leftRingMetacarpalPickerButton"], "top", 30), (self.widgets[name + "_leftRingMetacarpalPickerButton"], "right", 57)])
|
|
menu = cmds.popupMenu(b = 3, parent = self.widgets[name + "_leftRingMetacarpalPickerButton"])
|
|
cmds.menuItem(label = "Finger FK Mode", parent = menu, c = partial(self.switchFingerMode, name, "ring", 0, "l"))
|
|
cmds.menuItem(label = "Finger IK Mode", parent = menu, c = partial(self.switchFingerMode, name, "ring", 1, "l"))
|
|
|
|
if leftRing1:
|
|
self.widgets[name + "_leftRing1PickerButton"] = cmds.button(w = 20, h = 20, label = "", parent = layout, bgc = self.blue, c = partial(self.buttonSelectCommand, name, "ring_finger_fk_ctrl_1_l"))
|
|
cmds.formLayout(layout, edit = True, af = [(self.widgets[name + "_leftRing1PickerButton"], "top", 55), (self.widgets[name + "_leftRing1PickerButton"], "right", 57)])
|
|
menu = cmds.popupMenu(b = 3, parent = self.widgets[name + "_leftRing1PickerButton"])
|
|
cmds.menuItem(label = "Finger FK Mode", parent = menu, c = partial(self.switchFingerMode, name, "ring", 0, "l"))
|
|
cmds.menuItem(label = "Finger IK Mode", parent = menu, c = partial(self.switchFingerMode, name, "ring", 1, "l"))
|
|
|
|
if leftRing2:
|
|
self.widgets[name + "_leftRing2PickerButton"] = cmds.button(w = 20, h = 20, label = "", parent = layout, bgc = self.blue, c = partial(self.buttonSelectCommand, name, "ring_finger_fk_ctrl_2_l"))
|
|
cmds.formLayout(layout, edit = True, af = [(self.widgets[name + "_leftRing2PickerButton"], "top", 80), (self.widgets[name + "_leftRing2PickerButton"], "right", 57)])
|
|
menu = cmds.popupMenu(b = 3, parent = self.widgets[name + "_leftRing2PickerButton"])
|
|
cmds.menuItem(label = "Finger FK Mode", parent = menu, c = partial(self.switchFingerMode, name, "ring", 0, "l"))
|
|
cmds.menuItem(label = "Finger IK Mode", parent = menu, c = partial(self.switchFingerMode, name, "ring", 1, "l"))
|
|
|
|
if leftRing3:
|
|
self.widgets[name + "_leftRing3PickerButton"] = cmds.button(w = 20, h = 20, label = "", parent = layout, bgc = self.blue, c = partial(self.buttonSelectCommand, name, "ring_finger_fk_ctrl_3_l"))
|
|
cmds.formLayout(layout, edit = True, af = [(self.widgets[name + "_leftRing3PickerButton"], "top", 105), (self.widgets[name + "_leftRing3PickerButton"], "right", 57)])
|
|
menu = cmds.popupMenu(b = 3, parent = self.widgets[name + "_leftRing3PickerButton"])
|
|
cmds.menuItem(label = "Finger FK Mode", parent = menu, c = partial(self.switchFingerMode, name, "ring", 0, "l"))
|
|
cmds.menuItem(label = "Finger IK Mode", parent = menu, c = partial(self.switchFingerMode, name, "ring", 1, "l"))
|
|
|
|
|
|
#Left Middle
|
|
#get settings off of skeleton settings node to know what it is we need to create
|
|
leftMiddleMeta = cmds.getAttr(name + ":" + "Skeleton_Settings.leftmiddlemeta")
|
|
leftMiddle1 = cmds.getAttr(name + ":" + "Skeleton_Settings.leftmiddle1")
|
|
leftMiddle2 = cmds.getAttr(name + ":" + "Skeleton_Settings.leftmiddle2")
|
|
leftMiddle3 = cmds.getAttr(name + ":" + "Skeleton_Settings.leftmiddle3")
|
|
|
|
if leftMiddleMeta:
|
|
self.widgets[name + "_leftMiddleMetacarpalPickerButton"] = cmds.button(w = 20, h = 20, label = "", parent = layout, bgc = self.blue, c = partial(self.buttonSelectCommand, name, "middle_metacarpal_ctrl_l"))
|
|
cmds.formLayout(layout, edit = True, af = [(self.widgets[name + "_leftMiddleMetacarpalPickerButton"], "top", 30), (self.widgets[name + "_leftMiddleMetacarpalPickerButton"], "right", 82)])
|
|
menu = cmds.popupMenu(b = 3, parent = self.widgets[name + "_leftMiddleMetacarpalPickerButton"])
|
|
cmds.menuItem(label = "Finger FK Mode", parent = menu, c = partial(self.switchFingerMode, name, "middle", 0, "l"))
|
|
cmds.menuItem(label = "Finger IK Mode", parent = menu, c = partial(self.switchFingerMode, name, "middle", 1, "l"))
|
|
|
|
if leftMiddle1:
|
|
self.widgets[name + "_leftMiddle1PickerButton"] = cmds.button(w = 20, h = 20, label = "", parent = layout, bgc = self.blue, c = partial(self.buttonSelectCommand, name, "middle_finger_fk_ctrl_1_l"))
|
|
cmds.formLayout(layout, edit = True, af = [(self.widgets[name + "_leftMiddle1PickerButton"], "top", 55), (self.widgets[name + "_leftMiddle1PickerButton"], "right", 82)])
|
|
menu = cmds.popupMenu(b = 3, parent = self.widgets[name + "_leftMiddle1PickerButton"])
|
|
cmds.menuItem(label = "Finger FK Mode", parent = menu, c = partial(self.switchFingerMode, name, "middle", 0, "l"))
|
|
cmds.menuItem(label = "Finger IK Mode", parent = menu, c = partial(self.switchFingerMode, name, "middle", 1, "l"))
|
|
|
|
if leftMiddle2:
|
|
self.widgets[name + "_leftMiddle2PickerButton"] = cmds.button(w = 20, h = 20, label = "", parent = layout, bgc = self.blue, c = partial(self.buttonSelectCommand, name, "middle_finger_fk_ctrl_2_l"))
|
|
cmds.formLayout(layout, edit = True, af = [(self.widgets[name + "_leftMiddle2PickerButton"], "top", 80), (self.widgets[name + "_leftMiddle2PickerButton"], "right", 82)])
|
|
menu = cmds.popupMenu(b = 3, parent = self.widgets[name + "_leftMiddle2PickerButton"])
|
|
cmds.menuItem(label = "Finger FK Mode", parent = menu, c = partial(self.switchFingerMode, name, "middle", 0, "l"))
|
|
cmds.menuItem(label = "Finger IK Mode", parent = menu, c = partial(self.switchFingerMode, name, "middle", 1, "l"))
|
|
|
|
if leftMiddle3:
|
|
self.widgets[name + "_leftMiddle3PickerButton"] = cmds.button(w = 20, h = 20, label = "", parent = layout, bgc = self.blue, c = partial(self.buttonSelectCommand, name, "middle_finger_fk_ctrl_3_l"))
|
|
cmds.formLayout(layout, edit = True, af = [(self.widgets[name + "_leftMiddle3PickerButton"], "top", 105), (self.widgets[name + "_leftMiddle3PickerButton"], "right", 82)])
|
|
menu = cmds.popupMenu(b = 3, parent = self.widgets[name + "_leftMiddle3PickerButton"])
|
|
cmds.menuItem(label = "Finger FK Mode", parent = menu, c = partial(self.switchFingerMode, name, "middle", 0, "l"))
|
|
cmds.menuItem(label = "Finger IK Mode", parent = menu, c = partial(self.switchFingerMode, name, "middle", 1, "l"))
|
|
|
|
#Left Index
|
|
#get settings off of skeleton settings node to know what it is we need to create
|
|
leftIndexMeta = cmds.getAttr(name + ":" + "Skeleton_Settings.leftindexmeta")
|
|
leftIndex1 = cmds.getAttr(name + ":" + "Skeleton_Settings.leftindex1")
|
|
leftIndex2 = cmds.getAttr(name + ":" + "Skeleton_Settings.leftindex2")
|
|
leftIndex3 = cmds.getAttr(name + ":" + "Skeleton_Settings.leftindex3")
|
|
|
|
if leftIndexMeta:
|
|
self.widgets[name + "_leftIndexMetacarpalPickerButton"] = cmds.button(w = 20, h = 20, label = "", parent = layout, bgc = self.blue, c = partial(self.buttonSelectCommand, name, "index_metacarpal_ctrl_l"))
|
|
cmds.formLayout(layout, edit = True, af = [(self.widgets[name + "_leftIndexMetacarpalPickerButton"], "top", 30), (self.widgets[name + "_leftIndexMetacarpalPickerButton"], "right", 107)])
|
|
menu = cmds.popupMenu(b = 3, parent = self.widgets[name + "_leftIndexMetacarpalPickerButton"])
|
|
cmds.menuItem(label = "Finger FK Mode", parent = menu, c = partial(self.switchFingerMode, name, "index", 0, "l"))
|
|
cmds.menuItem(label = "Finger IK Mode", parent = menu, c = partial(self.switchFingerMode, name, "index", 1, "l"))
|
|
|
|
if leftIndex1:
|
|
self.widgets[name + "_leftIndex1PickerButton"] = cmds.button(w = 20, h = 20, label = "", parent = layout, bgc = self.blue, c = partial(self.buttonSelectCommand, name, "index_finger_fk_ctrl_1_l"))
|
|
cmds.formLayout(layout, edit = True, af = [(self.widgets[name + "_leftIndex1PickerButton"], "top", 55), (self.widgets[name + "_leftIndex1PickerButton"], "right", 107)])
|
|
menu = cmds.popupMenu(b = 3, parent = self.widgets[name + "_leftIndex1PickerButton"])
|
|
cmds.menuItem(label = "Finger FK Mode", parent = menu, c = partial(self.switchFingerMode, name, "index", 0, "l"))
|
|
cmds.menuItem(label = "Finger IK Mode", parent = menu, c = partial(self.switchFingerMode, name, "index", 1, "l"))
|
|
|
|
if leftIndex2:
|
|
self.widgets[name + "_leftIndex2PickerButton"] = cmds.button(w = 20, h = 20, label = "", parent = layout, bgc = self.blue, c = partial(self.buttonSelectCommand, name, "index_finger_fk_ctrl_2_l"))
|
|
cmds.formLayout(layout, edit = True, af = [(self.widgets[name + "_leftIndex2PickerButton"], "top", 80), (self.widgets[name + "_leftIndex2PickerButton"], "right", 107)])
|
|
menu = cmds.popupMenu(b = 3, parent = self.widgets[name + "_leftIndex2PickerButton"])
|
|
cmds.menuItem(label = "Finger FK Mode", parent = menu, c = partial(self.switchFingerMode, name, "index", 0, "l"))
|
|
cmds.menuItem(label = "Finger IK Mode", parent = menu, c = partial(self.switchFingerMode, name, "index", 1, "l"))
|
|
|
|
if leftIndex3:
|
|
self.widgets[name + "_leftIndex3PickerButton"] = cmds.button(w = 20, h = 20, label = "", parent = layout, bgc = self.blue, c = partial(self.buttonSelectCommand, name, "index_finger_fk_ctrl_3_l"))
|
|
cmds.formLayout(layout, edit = True, af = [(self.widgets[name + "_leftIndex3PickerButton"], "top", 105), (self.widgets[name + "_leftIndex3PickerButton"], "right", 107)])
|
|
menu = cmds.popupMenu(b = 3, parent = self.widgets[name + "_leftIndex3PickerButton"])
|
|
cmds.menuItem(label = "Finger FK Mode", parent = menu, c = partial(self.switchFingerMode, name, "index", 0, "l"))
|
|
cmds.menuItem(label = "Finger IK Mode", parent = menu, c = partial(self.switchFingerMode, name, "index", 1, "l"))
|
|
|
|
|
|
#Left Thumb
|
|
#get settings off of skeleton settings node to know what it is we need to create
|
|
leftThumb1 = cmds.getAttr(name + ":" + "Skeleton_Settings.leftthumb1")
|
|
leftThumb2 = cmds.getAttr(name + ":" + "Skeleton_Settings.leftthumb2")
|
|
leftThumb3 = cmds.getAttr(name + ":" + "Skeleton_Settings.leftthumb3")
|
|
|
|
if leftThumb1:
|
|
self.widgets[name + "_leftThumb1PickerButton"] = cmds.button(w = 20, h = 20, label = "", parent = layout, bgc = self.blue, c = partial(self.buttonSelectCommand, name, "thumb_finger_fk_ctrl_1_l"))
|
|
cmds.formLayout(layout, edit = True, af = [(self.widgets[name + "_leftThumb1PickerButton"], "top", 30), (self.widgets[name + "_leftThumb1PickerButton"], "right", 132)])
|
|
menu = cmds.popupMenu(b = 3, parent = self.widgets[name + "_leftThumb1PickerButton"])
|
|
cmds.menuItem(label = "Finger FK Mode", parent = menu, c = partial(self.switchFingerMode, name, "thumb", 0, "l"))
|
|
cmds.menuItem(label = "Finger IK Mode", parent = menu, c = partial(self.switchFingerMode, name, "thumb", 1, "l"))
|
|
|
|
if leftThumb2:
|
|
self.widgets[name + "_leftThumb2PickerButton"] = cmds.button(w = 20, h = 20, label = "", parent = layout, bgc = self.blue, c = partial(self.buttonSelectCommand, name, "thumb_finger_fk_ctrl_2_l"))
|
|
cmds.formLayout(layout, edit = True, af = [(self.widgets[name + "_leftThumb2PickerButton"], "top", 55), (self.widgets[name + "_leftThumb2PickerButton"], "right", 142)])
|
|
menu = cmds.popupMenu(b = 3, parent = self.widgets[name + "_leftThumb2PickerButton"])
|
|
cmds.menuItem(label = "Finger FK Mode", parent = menu, c = partial(self.switchFingerMode, name, "thumb", 0, "l"))
|
|
cmds.menuItem(label = "Finger IK Mode", parent = menu, c = partial(self.switchFingerMode, name, "thumb", 1, "l"))
|
|
|
|
if leftThumb3:
|
|
self.widgets[name + "_leftThumb3PickerButton"] = cmds.button(w = 20, h = 20, label = "", parent = layout, bgc = self.blue, c = partial(self.buttonSelectCommand, name, "thumb_finger_fk_ctrl_3_l"))
|
|
cmds.formLayout(layout, edit = True, af = [(self.widgets[name + "_leftThumb3PickerButton"], "top", 80), (self.widgets[name + "_leftThumb3PickerButton"], "right", 152)])
|
|
menu = cmds.popupMenu(b = 3, parent = self.widgets[name + "_leftThumb3PickerButton"])
|
|
cmds.menuItem(label = "Finger FK Mode", parent = menu, c = partial(self.switchFingerMode, name, "thumb", 0, "l"))
|
|
cmds.menuItem(label = "Finger IK Mode", parent = menu, c = partial(self.switchFingerMode, name, "thumb", 1, "l"))
|
|
|
|
#Left finger row globals
|
|
#get settings off of skeleton settings node to know what it is we need to create
|
|
self.widgets[name + "_leftMetaRowPickerButton"] = cmds.button(w = 20, h = 20, label = "", parent = layout, bgc = self.green, c = partial(self.multiButtonSelectCommand, name, ["index_metacarpal_ctrl_l", "middle_metacarpal_ctrl_l", "ring_metacarpal_ctrl_l", "pinky_metacarpal_ctrl_l"]))
|
|
cmds.formLayout(layout, edit = True, af = [(self.widgets[name + "_leftMetaRowPickerButton"], "top", 30), (self.widgets[name + "_leftMetaRowPickerButton"], "right", 7)])
|
|
|
|
self.widgets[name + "_leftKnuckle1RowPickerButton"] = cmds.button(w = 20, h = 20, label = "", parent = layout, bgc = self.green, c = partial(self.multiButtonSelectCommand, name, ["index_finger_fk_ctrl_1_l", "middle_finger_fk_ctrl_1_l", "ring_finger_fk_ctrl_1_l", "pinky_finger_fk_ctrl_1_l"]))
|
|
cmds.formLayout(layout, edit = True, af = [(self.widgets[name + "_leftKnuckle1RowPickerButton"], "top", 55), (self.widgets[name + "_leftKnuckle1RowPickerButton"], "right", 7)])
|
|
|
|
self.widgets[name + "_leftKnuckle2RowPickerButton"] = cmds.button(w = 20, h = 20, label = "", parent = layout, bgc = self.green, c = partial(self.multiButtonSelectCommand, name, ["index_finger_fk_ctrl_2_l", "middle_finger_fk_ctrl_2_l", "ring_finger_fk_ctrl_2_l", "pinky_finger_fk_ctrl_2_l"]))
|
|
cmds.formLayout(layout, edit = True, af = [(self.widgets[name + "_leftKnuckle2RowPickerButton"], "top", 80), (self.widgets[name + "_leftKnuckle2RowPickerButton"], "right", 7)])
|
|
|
|
self.widgets[name + "_leftKnuckle3RowPickerButton"] = cmds.button(w = 20, h = 20, label = "", parent = layout, bgc = self.green, c = partial(self.multiButtonSelectCommand, name, ["index_finger_fk_ctrl_3_l", "middle_finger_fk_ctrl_3_l", "ring_finger_fk_ctrl_3_l", "pinky_finger_fk_ctrl_3_l"]))
|
|
cmds.formLayout(layout, edit = True, af = [(self.widgets[name + "_leftKnuckle3RowPickerButton"], "top", 105), (self.widgets[name + "_leftKnuckle3RowPickerButton"], "right", 7)])
|
|
|
|
|
|
#Left finger column globals
|
|
#get settings off of skeleton settings node to know what it is we need to create
|
|
self.widgets[name + "_leftIndexColumnPickerButton"] = cmds.button(w = 20, h = 20, label = "", parent = layout, bgc = self.green, c = partial(self.multiButtonSelectCommand, name, ["index_metacarpal_ctrl_l", "index_finger_fk_ctrl_1_l", "index_finger_fk_ctrl_2_l", "index_finger_fk_ctrl_3_l"]))
|
|
cmds.formLayout(layout, edit = True, af = [(self.widgets[name + "_leftIndexColumnPickerButton"], "top", 7), (self.widgets[name + "_leftIndexColumnPickerButton"], "right", 107)])
|
|
|
|
self.widgets[name + "_leftMiddleColumnPickerButton"] = cmds.button(w = 20, h = 20, label = "", parent = layout, bgc = self.green, c = partial(self.multiButtonSelectCommand, name, ["middle_metacarpal_ctrl_l", "middle_finger_fk_ctrl_1_l", "middle_finger_fk_ctrl_2_l", "middle_finger_fk_ctrl_3_l"]))
|
|
cmds.formLayout(layout, edit = True, af = [(self.widgets[name + "_leftMiddleColumnPickerButton"], "top", 7), (self.widgets[name + "_leftMiddleColumnPickerButton"], "right", 82)])
|
|
|
|
self.widgets[name + "_leftRingColumnPickerButton"] = cmds.button(w = 20, h = 20, label = "", parent = layout, bgc = self.green, c = partial(self.multiButtonSelectCommand, name, ["ring_metacarpal_ctrl_l", "ring_finger_fk_ctrl_1_l", "ring_finger_fk_ctrl_2_l", "ring_finger_fk_ctrl_3_l"]))
|
|
cmds.formLayout(layout, edit = True, af = [(self.widgets[name + "_leftRingColumnPickerButton"], "top", 7), (self.widgets[name + "_leftRingColumnPickerButton"], "right", 57)])
|
|
|
|
self.widgets[name + "_leftPinkyColumnPickerButton"] = cmds.button(w = 20, h = 20, label = "", parent = layout, bgc = self.green, c = partial(self.multiButtonSelectCommand, name, ["pinky_metacarpal_ctrl_l", "pinky_finger_fk_ctrl_1_l", "pinky_finger_fk_ctrl_2_l", "pinky_finger_fk_ctrl_3_l"]))
|
|
cmds.formLayout(layout, edit = True, af = [(self.widgets[name + "_leftPinkyColumnPickerButton"], "top", 7), (self.widgets[name + "_leftPinkyColumnPickerButton"], "right", 32)])
|
|
|
|
#Left thumb global
|
|
self.widgets[name + "_leftThumbColumnPickerButton"] = cmds.button(w = 20, h = 20, label = "", parent = layout, bgc = self.green, c = partial(self.multiButtonSelectCommand, name, ["thumb_finger_fk_ctrl_1_l", "thumb_finger_fk_ctrl_2_l", "thumb_finger_fk_ctrl_3_l"]))
|
|
cmds.formLayout(layout, edit = True, af = [(self.widgets[name + "_leftThumbColumnPickerButton"], "top", 7), (self.widgets[name + "_leftThumbColumnPickerButton"], "right", 132)])
|
|
|
|
|
|
#Left Finger IK
|
|
if cmds.objExists(name + ":index_l_ik_anim"):
|
|
self.widgets[name + "_leftIndexFingerIKPickerButton"] = cmds.button(w = 20, h = 20, label = "", parent = layout, bgc = self.orange, c = partial(self.buttonSelectCommand, name, "index_l_ik_anim"))
|
|
cmds.formLayout(layout, edit = True, af = [(self.widgets[name + "_leftIndexFingerIKPickerButton"], "top", 130), (self.widgets[name + "_leftIndexFingerIKPickerButton"], "right", 107)])
|
|
menu = cmds.popupMenu(b = 3, parent = self.widgets[name + "_leftIndexFingerIKPickerButton"])
|
|
cmds.menuItem(label = "Finger FK Mode", parent = menu, c = partial(self.switchFingerMode, name, "index", 0, "l"))
|
|
cmds.menuItem(label = "Finger IK Mode", parent = menu, c = partial(self.switchFingerMode, name, "index", 1, "l"))
|
|
|
|
if cmds.objExists(name + ":middle_l_ik_anim"):
|
|
self.widgets[name + "_leftMiddleFingerIKPickerButton"] = cmds.button(w = 20, h = 20, label = "", parent = layout, bgc = self.orange, c = partial(self.buttonSelectCommand, name, "middle_l_ik_anim"))
|
|
cmds.formLayout(layout, edit = True, af = [(self.widgets[name + "_leftMiddleFingerIKPickerButton"], "top", 130), (self.widgets[name + "_leftMiddleFingerIKPickerButton"], "right", 82)])
|
|
menu = cmds.popupMenu(b = 3, parent = self.widgets[name + "_leftMiddleFingerIKPickerButton"])
|
|
cmds.menuItem(label = "Finger FK Mode", parent = menu, c = partial(self.switchFingerMode, name, "middle", 0, "l"))
|
|
cmds.menuItem(label = "Finger IK Mode", parent = menu, c = partial(self.switchFingerMode, name, "middle", 1, "l"))
|
|
|
|
if cmds.objExists(name + ":ring_l_ik_anim"):
|
|
self.widgets[name + "_leftRingFingerIKPickerButton"] = cmds.button(w = 20, h = 20, label = "", parent = layout, bgc = self.orange, c = partial(self.buttonSelectCommand, name, "ring_l_ik_anim"))
|
|
cmds.formLayout(layout, edit = True, af = [(self.widgets[name + "_leftRingFingerIKPickerButton"], "top", 130), (self.widgets[name + "_leftRingFingerIKPickerButton"], "right", 57)])
|
|
menu = cmds.popupMenu(b = 3, parent = self.widgets[name + "_leftRingFingerIKPickerButton"])
|
|
cmds.menuItem(label = "Finger FK Mode", parent = menu, c = partial(self.switchFingerMode, name, "ring", 0, "l"))
|
|
cmds.menuItem(label = "Finger IK Mode", parent = menu, c = partial(self.switchFingerMode, name, "ring", 1, "l"))
|
|
|
|
if cmds.objExists(name + ":pinky_l_ik_anim"):
|
|
self.widgets[name + "_leftPinkyFingerIKPickerButton"] = cmds.button(w = 20, h = 20, label = "", parent = layout, bgc = self.orange, c = partial(self.buttonSelectCommand, name, "pinky_l_ik_anim"))
|
|
cmds.formLayout(layout, edit = True, af = [(self.widgets[name + "_leftPinkyFingerIKPickerButton"], "top", 130), (self.widgets[name + "_leftPinkyFingerIKPickerButton"], "right", 32)])
|
|
menu = cmds.popupMenu(b = 3, parent = self.widgets[name + "_leftPinkyFingerIKPickerButton"])
|
|
cmds.menuItem(label = "Finger FK Mode", parent = menu, c = partial(self.switchFingerMode, name, "pinky", 0, "l"))
|
|
cmds.menuItem(label = "Finger IK Mode", parent = menu, c = partial(self.switchFingerMode, name, "pinky", 1, "l"))
|
|
|
|
if cmds.objExists(name + ":thumb_l_ik_anim"):
|
|
self.widgets[name + "_leftThumbFingerIKPickerButton"] = cmds.button(w = 20, h = 20, label = "", parent = layout, bgc = self.orange, c = partial(self.buttonSelectCommand, name, "thumb_l_ik_anim"))
|
|
cmds.formLayout(layout, edit = True, af = [(self.widgets[name + "_leftThumbFingerIKPickerButton"], "top", 107), (self.widgets[name + "_leftThumbFingerIKPickerButton"], "right", 152)])
|
|
menu = cmds.popupMenu(b = 3, parent = self.widgets[name + "_leftThumbFingerIKPickerButton"])
|
|
cmds.menuItem(label = "Finger FK Mode", parent = menu, c = partial(self.switchFingerMode, name, "thumb", 0, "l"))
|
|
cmds.menuItem(label = "Finger IK Mode", parent = menu, c = partial(self.switchFingerMode, name, "thumb", 1, "l"))
|
|
|
|
self.widgets[name + "_leftIkFingersRowPickerButton"] = cmds.button(w = 20, h = 20, label = "", parent = layout, bgc = self.green, c = partial(self.multiButtonSelectCommand, name, ["index_l_ik_anim", "middle_l_ik_anim", "ring_l_ik_anim", "pinky_l_ik_anim", "thumb_l_ik_anim"]))
|
|
cmds.formLayout(layout, edit = True, af = [(self.widgets[name + "_leftIkFingersRowPickerButton"], "top", 130), (self.widgets[name + "_leftIkFingersRowPickerButton"], "right", 7)])
|
|
|
|
#Left Finger IK Pole Vectors
|
|
if cmds.objExists(name + ":index_l_ik_anim"):
|
|
self.widgets[name + "_leftIndexIkPvPickerButton"] = cmds.button(w = 10, h = 10, label = "", parent = layout, bgc = self.orange, c = partial(self.buttonSelectCommand, name, "index_l_poleVector"))
|
|
cmds.formLayout(layout, edit = True, af = [(self.widgets[name + "_leftIndexIkPvPickerButton"], "top", 155), (self.widgets[name + "_leftIndexIkPvPickerButton"], "right", 112)])
|
|
|
|
if cmds.objExists(name + ":middle_l_ik_anim"):
|
|
self.widgets[name + "_leftMiddleIkPvPickerButton"] = cmds.button(w = 10, h = 10, label = "", parent = layout, bgc = self.orange, c = partial(self.buttonSelectCommand, name, "middle_l_poleVector"))
|
|
cmds.formLayout(layout, edit = True, af = [(self.widgets[name + "_leftMiddleIkPvPickerButton"], "top", 155), (self.widgets[name + "_leftMiddleIkPvPickerButton"], "right", 87)])
|
|
|
|
if cmds.objExists(name + ":ring_l_ik_anim"):
|
|
self.widgets[name + "_leftRingIkPvPickerButton"] = cmds.button(w = 10, h = 10, label = "", parent = layout, bgc = self.orange, c = partial(self.buttonSelectCommand, name, "ring_l_poleVector"))
|
|
cmds.formLayout(layout, edit = True, af = [(self.widgets[name + "_leftRingIkPvPickerButton"], "top", 155), (self.widgets[name + "_leftRingIkPvPickerButton"], "right", 62)])
|
|
|
|
if cmds.objExists(name + ":pinky_l_ik_anim"):
|
|
self.widgets[name + "_leftPinkyIkPvPickerButton"] = cmds.button(w = 10, h = 10, label = "", parent = layout, bgc = self.orange, c = partial(self.buttonSelectCommand, name, "pinky_l_poleVector"))
|
|
cmds.formLayout(layout, edit = True, af = [(self.widgets[name + "_leftPinkyIkPvPickerButton"], "top", 155), (self.widgets[name + "_leftPinkyIkPvPickerButton"], "right", 37)])
|
|
|
|
if cmds.objExists(name + ":thumb_l_ik_anim"):
|
|
self.widgets[name + "_leftThumbIkPvPickerButton"] = cmds.button(w = 10, h = 10, label = "", parent = layout, bgc = self.orange, c = partial(self.buttonSelectCommand, name, "thumb_l_poleVector"))
|
|
cmds.formLayout(layout, edit = True, af = [(self.widgets[name + "_leftThumbIkPvPickerButton"], "top", 132), (self.widgets[name + "_leftThumbIkPvPickerButton"], "right", 157)])
|
|
|
|
self.widgets[name + "_leftIkFingersPvsPickerButton"] = cmds.button(w = 10, h = 10, label = "", parent = layout, bgc = self.green, c = partial(self.multiButtonSelectCommand, name, ["index_l_poleVector", "middle_l_poleVector", "ring_l_poleVector", "pinky_l_poleVector", "thumb_l_poleVector"]))
|
|
cmds.formLayout(layout, edit = True, af = [(self.widgets[name + "_leftIkFingersPvsPickerButton"], "top", 155), (self.widgets[name + "_leftIkFingersPvsPickerButton"], "right", 12)])
|
|
|
|
|
|
#Left IK Global Control
|
|
self.widgets[name + "_leftIkGlobalCtrlPickerButton"] = cmds.button(w = 20, h = 20, label = "", parent = layout, bgc = self.orange, c = partial(self.buttonSelectCommand, name, "l_global_ik_anim"))
|
|
cmds.formLayout(layout, edit = True, af = [(self.widgets[name + "_leftIkGlobalCtrlPickerButton"], "top", 7), (self.widgets[name + "_leftIkGlobalCtrlPickerButton"], "right", 7)])
|
|
|
|
menu = cmds.popupMenu(b = 3, parent = self.widgets[name + "_leftIkGlobalCtrlPickerButton"])
|
|
spaceMenu = cmds.menuItem(label = "Space Switching", parent = menu, subMenu = True)
|
|
self.widgets[name + "_lIkGlobalCtrl_RadioCollection"] = cmds.radioMenuItemCollection(parent = spaceMenu)
|
|
cmds.menuItem(spaceMenu, edit = True, postMenuCommand = partial(self.getControlSpaces, menu, self.widgets[name + "_lIkGlobalCtrl_RadioCollection"] , "l_global_ik_anim_space_switcher"))
|
|
|
|
|
|
|
|
#Right Pinky
|
|
#get settings off of skeleton settings node to know what it is we need to create
|
|
rightPinkyMeta = cmds.getAttr(name + ":" + "Skeleton_Settings.rightpinkymeta")
|
|
rightPinky1 = cmds.getAttr(name + ":" + "Skeleton_Settings.rightpinky1")
|
|
rightPinky2 = cmds.getAttr(name + ":" + "Skeleton_Settings.rightpinky2")
|
|
rightPinky3 = cmds.getAttr(name + ":" + "Skeleton_Settings.rightpinky3")
|
|
|
|
if rightPinkyMeta:
|
|
self.widgets[name + "_rightPinkyMetacarpalPickerButton"] = cmds.button(w = 20, h = 20, label = "", parent = layout, bgc = self.blue, c = partial(self.buttonSelectCommand, name, "pinky_metacarpal_ctrl_r"))
|
|
cmds.formLayout(layout, edit = True, af = [(self.widgets[name + "_rightPinkyMetacarpalPickerButton"], "top", 30), (self.widgets[name + "_rightPinkyMetacarpalPickerButton"], "left", 32)])
|
|
menu = cmds.popupMenu(b = 3, parent = self.widgets[name + "_rightPinkyMetacarpalPickerButton"])
|
|
cmds.menuItem(label = "Finger FK Mode", parent = menu, c = partial(self.switchFingerMode, name, "pinky", 0, "r"))
|
|
cmds.menuItem(label = "Finger IK Mode", parent = menu, c = partial(self.switchFingerMode, name, "pinky", 1, "r"))
|
|
|
|
if rightPinky1:
|
|
self.widgets[name + "_rightPinky1PickerButton"] = cmds.button(w = 20, h = 20, label = "", parent = layout, bgc = self.blue, c = partial(self.buttonSelectCommand, name, "pinky_finger_fk_ctrl_1_r"))
|
|
cmds.formLayout(layout, edit = True, af = [(self.widgets[name + "_rightPinky1PickerButton"], "top", 55), (self.widgets[name + "_rightPinky1PickerButton"], "left", 32)])
|
|
menu = cmds.popupMenu(b = 3, parent = self.widgets[name + "_rightPinky1PickerButton"])
|
|
cmds.menuItem(label = "Finger FK Mode", parent = menu, c = partial(self.switchFingerMode, name, "pinky", 0, "r"))
|
|
cmds.menuItem(label = "Finger IK Mode", parent = menu, c = partial(self.switchFingerMode, name, "pinky", 1, "r"))
|
|
|
|
if rightPinky2:
|
|
self.widgets[name + "_rightPinky2PickerButton"] = cmds.button(w = 20, h = 20, label = "", parent = layout, bgc = self.blue, c = partial(self.buttonSelectCommand, name, "pinky_finger_fk_ctrl_2_r"))
|
|
cmds.formLayout(layout, edit = True, af = [(self.widgets[name + "_rightPinky2PickerButton"], "top", 80), (self.widgets[name + "_rightPinky2PickerButton"], "left", 32)])
|
|
menu = cmds.popupMenu(b = 3, parent = self.widgets[name + "_rightPinky2PickerButton"])
|
|
cmds.menuItem(label = "Finger FK Mode", parent = menu, c = partial(self.switchFingerMode, name, "pinky", 0, "r"))
|
|
cmds.menuItem(label = "Finger IK Mode", parent = menu, c = partial(self.switchFingerMode, name, "pinky", 1, "r"))
|
|
|
|
if rightPinky3:
|
|
self.widgets[name + "_rightPinky3PickerButton"] = cmds.button(w = 20, h = 20, label = "", parent = layout, bgc = self.blue, c = partial(self.buttonSelectCommand, name, "pinky_finger_fk_ctrl_3_r"))
|
|
cmds.formLayout(layout, edit = True, af = [(self.widgets[name + "_rightPinky3PickerButton"], "top", 105), (self.widgets[name + "_rightPinky3PickerButton"], "left", 32)])
|
|
menu = cmds.popupMenu(b = 3, parent = self.widgets[name + "_rightPinky3PickerButton"])
|
|
cmds.menuItem(label = "Finger FK Mode", parent = menu, c = partial(self.switchFingerMode, name, "pinky", 0, "r"))
|
|
cmds.menuItem(label = "Finger IK Mode", parent = menu, c = partial(self.switchFingerMode, name, "pinky", 1, "r"))
|
|
|
|
|
|
#Right Ring
|
|
#get settings off of skeleton settings node to know what it is we need to create
|
|
rightRingMeta = cmds.getAttr(name + ":" + "Skeleton_Settings.rightringmeta")
|
|
rightRing1 = cmds.getAttr(name + ":" + "Skeleton_Settings.rightring1")
|
|
rightRing2 = cmds.getAttr(name + ":" + "Skeleton_Settings.rightring2")
|
|
rightRing3 = cmds.getAttr(name + ":" + "Skeleton_Settings.rightring3")
|
|
|
|
if rightRingMeta:
|
|
self.widgets[name + "_rightRingMetacarpalPickerButton"] = cmds.button(w = 20, h = 20, label = "", parent = layout, bgc = self.blue, c = partial(self.buttonSelectCommand, name, "ring_metacarpal_ctrl_r"))
|
|
cmds.formLayout(layout, edit = True, af = [(self.widgets[name + "_rightRingMetacarpalPickerButton"], "top", 30), (self.widgets[name + "_rightRingMetacarpalPickerButton"], "left", 57)])
|
|
menu = cmds.popupMenu(b = 3, parent = self.widgets[name + "_rightRingMetacarpalPickerButton"])
|
|
cmds.menuItem(label = "Finger FK Mode", parent = menu, c = partial(self.switchFingerMode, name, "ring", 0, "r"))
|
|
cmds.menuItem(label = "Finger IK Mode", parent = menu, c = partial(self.switchFingerMode, name, "ring", 1, "r"))
|
|
|
|
if rightRing1:
|
|
self.widgets[name + "_rightRing1PickerButton"] = cmds.button(w = 20, h = 20, label = "", parent = layout, bgc = self.blue, c = partial(self.buttonSelectCommand, name, "ring_finger_fk_ctrl_1_r"))
|
|
cmds.formLayout(layout, edit = True, af = [(self.widgets[name + "_rightRing1PickerButton"], "top", 55), (self.widgets[name + "_rightRing1PickerButton"], "left", 57)])
|
|
menu = cmds.popupMenu(b = 3, parent = self.widgets[name + "_rightRing1PickerButton"])
|
|
cmds.menuItem(label = "Finger FK Mode", parent = menu, c = partial(self.switchFingerMode, name, "ring", 0, "r"))
|
|
cmds.menuItem(label = "Finger IK Mode", parent = menu, c = partial(self.switchFingerMode, name, "ring", 1, "r"))
|
|
|
|
if rightRing2:
|
|
self.widgets[name + "_rightRing2PickerButton"] = cmds.button(w = 20, h = 20, label = "", parent = layout, bgc = self.blue, c = partial(self.buttonSelectCommand, name, "ring_finger_fk_ctrl_2_r"))
|
|
cmds.formLayout(layout, edit = True, af = [(self.widgets[name + "_rightRing2PickerButton"], "top", 80), (self.widgets[name + "_rightRing2PickerButton"], "left", 57)])
|
|
menu = cmds.popupMenu(b = 3, parent = self.widgets[name + "_rightRing2PickerButton"])
|
|
cmds.menuItem(label = "Finger FK Mode", parent = menu, c = partial(self.switchFingerMode, name, "ring", 0, "r"))
|
|
cmds.menuItem(label = "Finger IK Mode", parent = menu, c = partial(self.switchFingerMode, name, "ring", 1, "r"))
|
|
|
|
if rightRing3:
|
|
self.widgets[name + "_rightRing3PickerButton"] = cmds.button(w = 20, h = 20, label = "", parent = layout, bgc = self.blue, c = partial(self.buttonSelectCommand, name, "ring_finger_fk_ctrl_3_r"))
|
|
cmds.formLayout(layout, edit = True, af = [(self.widgets[name + "_rightRing3PickerButton"], "top", 105), (self.widgets[name + "_rightRing3PickerButton"], "left", 57)])
|
|
menu = cmds.popupMenu(b = 3, parent = self.widgets[name + "_rightRing3PickerButton"])
|
|
cmds.menuItem(label = "Finger FK Mode", parent = menu, c = partial(self.switchFingerMode, name, "ring", 0, "r"))
|
|
cmds.menuItem(label = "Finger IK Mode", parent = menu, c = partial(self.switchFingerMode, name, "ring", 1, "r"))
|
|
|
|
#Right Middle
|
|
#get settings off of skeleton settings node to know what it is we need to create
|
|
rightMiddleMeta = cmds.getAttr(name + ":" + "Skeleton_Settings.rightmiddlemeta")
|
|
rightMiddle1 = cmds.getAttr(name + ":" + "Skeleton_Settings.rightmiddle1")
|
|
rightMiddle2 = cmds.getAttr(name + ":" + "Skeleton_Settings.rightmiddle2")
|
|
rightMiddle3 = cmds.getAttr(name + ":" + "Skeleton_Settings.rightmiddle3")
|
|
|
|
if rightMiddleMeta:
|
|
self.widgets[name + "_rightMiddleMetacarpalPickerButton"] = cmds.button(w = 20, h = 20, label = "", parent = layout, bgc = self.blue, c = partial(self.buttonSelectCommand, name, "middle_metacarpal_ctrl_r"))
|
|
cmds.formLayout(layout, edit = True, af = [(self.widgets[name + "_rightMiddleMetacarpalPickerButton"], "top", 30), (self.widgets[name + "_rightMiddleMetacarpalPickerButton"], "left", 82)])
|
|
menu = cmds.popupMenu(b = 3, parent = self.widgets[name + "_rightMiddleMetacarpalPickerButton"])
|
|
cmds.menuItem(label = "Finger FK Mode", parent = menu, c = partial(self.switchFingerMode, name, "middle", 0, "r"))
|
|
cmds.menuItem(label = "Finger IK Mode", parent = menu, c = partial(self.switchFingerMode, name, "middle", 1, "r"))
|
|
|
|
if rightMiddle1:
|
|
self.widgets[name + "_rightMiddle1PickerButton"] = cmds.button(w = 20, h = 20, label = "", parent = layout, bgc = self.blue, c = partial(self.buttonSelectCommand, name, "middle_finger_fk_ctrl_1_r"))
|
|
cmds.formLayout(layout, edit = True, af = [(self.widgets[name + "_rightMiddle1PickerButton"], "top", 55), (self.widgets[name + "_rightMiddle1PickerButton"], "left", 82)])
|
|
menu = cmds.popupMenu(b = 3, parent = self.widgets[name + "_rightMiddle1PickerButton"])
|
|
cmds.menuItem(label = "Finger FK Mode", parent = menu, c = partial(self.switchFingerMode, name, "middle", 0, "r"))
|
|
cmds.menuItem(label = "Finger IK Mode", parent = menu, c = partial(self.switchFingerMode, name, "middle", 1, "r"))
|
|
|
|
if rightMiddle2:
|
|
self.widgets[name + "_rightMiddle2PickerButton"] = cmds.button(w = 20, h = 20, label = "", parent = layout, bgc = self.blue, c = partial(self.buttonSelectCommand, name, "middle_finger_fk_ctrl_2_r"))
|
|
cmds.formLayout(layout, edit = True, af = [(self.widgets[name + "_rightMiddle2PickerButton"], "top", 80), (self.widgets[name + "_rightMiddle2PickerButton"], "left", 82)])
|
|
menu = cmds.popupMenu(b = 3, parent = self.widgets[name + "_rightMiddle2PickerButton"])
|
|
cmds.menuItem(label = "Finger FK Mode", parent = menu, c = partial(self.switchFingerMode, name, "middle", 0, "r"))
|
|
cmds.menuItem(label = "Finger IK Mode", parent = menu, c = partial(self.switchFingerMode, name, "middle", 1, "r"))
|
|
|
|
if rightMiddle3:
|
|
self.widgets[name + "_rightMiddle3PickerButton"] = cmds.button(w = 20, h = 20, label = "", parent = layout, bgc = self.blue, c = partial(self.buttonSelectCommand, name, "middle_finger_fk_ctrl_3_r"))
|
|
cmds.formLayout(layout, edit = True, af = [(self.widgets[name + "_rightMiddle3PickerButton"], "top", 105), (self.widgets[name + "_rightMiddle3PickerButton"], "left", 82)])
|
|
menu = cmds.popupMenu(b = 3, parent = self.widgets[name + "_rightMiddle3PickerButton"])
|
|
cmds.menuItem(label = "Finger FK Mode", parent = menu, c = partial(self.switchFingerMode, name, "middle", 0, "r"))
|
|
cmds.menuItem(label = "Finger IK Mode", parent = menu, c = partial(self.switchFingerMode, name, "middle", 1, "r"))
|
|
|
|
|
|
#Right Index
|
|
#get settings off of skeleton settings node to know what it is we need to create
|
|
rightIndexMeta = cmds.getAttr(name + ":" + "Skeleton_Settings.rightindexmeta")
|
|
rightIndex1 = cmds.getAttr(name + ":" + "Skeleton_Settings.rightindex1")
|
|
rightIndex2 = cmds.getAttr(name + ":" + "Skeleton_Settings.rightindex2")
|
|
rightIndex3 = cmds.getAttr(name + ":" + "Skeleton_Settings.rightindex3")
|
|
|
|
if rightIndexMeta:
|
|
self.widgets[name + "_rightIndexMetacarpalPickerButton"] = cmds.button(w = 20, h = 20, label = "", parent = layout, bgc = self.blue, c = partial(self.buttonSelectCommand, name, "index_metacarpal_ctrl_r"))
|
|
cmds.formLayout(layout, edit = True, af = [(self.widgets[name + "_rightIndexMetacarpalPickerButton"], "top", 30), (self.widgets[name + "_rightIndexMetacarpalPickerButton"], "left", 107)])
|
|
menu = cmds.popupMenu(b = 3, parent = self.widgets[name + "_rightIndexMetacarpalPickerButton"])
|
|
cmds.menuItem(label = "Finger FK Mode", parent = menu, c = partial(self.switchFingerMode, name, "index", 0, "r"))
|
|
cmds.menuItem(label = "Finger IK Mode", parent = menu, c = partial(self.switchFingerMode, name, "index", 1, "r"))
|
|
|
|
if rightIndex1:
|
|
self.widgets[name + "_rightIndex1PickerButton"] = cmds.button(w = 20, h = 20, label = "", parent = layout, bgc = self.blue, c = partial(self.buttonSelectCommand, name, "index_finger_fk_ctrl_1_r"))
|
|
cmds.formLayout(layout, edit = True, af = [(self.widgets[name + "_rightIndex1PickerButton"], "top", 55), (self.widgets[name + "_rightIndex1PickerButton"], "left", 107)])
|
|
menu = cmds.popupMenu(b = 3, parent = self.widgets[name + "_rightIndex1PickerButton"])
|
|
cmds.menuItem(label = "Finger FK Mode", parent = menu, c = partial(self.switchFingerMode, name, "index", 0, "r"))
|
|
cmds.menuItem(label = "Finger IK Mode", parent = menu, c = partial(self.switchFingerMode, name, "index", 1, "r"))
|
|
|
|
if rightIndex2:
|
|
self.widgets[name + "_rightIndex2PickerButton"] = cmds.button(w = 20, h = 20, label = "", parent = layout, bgc = self.blue, c = partial(self.buttonSelectCommand, name, "index_finger_fk_ctrl_2_r"))
|
|
cmds.formLayout(layout, edit = True, af = [(self.widgets[name + "_rightIndex2PickerButton"], "top", 80), (self.widgets[name + "_rightIndex2PickerButton"], "left", 107)])
|
|
menu = cmds.popupMenu(b = 3, parent = self.widgets[name + "_rightIndex2PickerButton"])
|
|
cmds.menuItem(label = "Finger FK Mode", parent = menu, c = partial(self.switchFingerMode, name, "index", 0, "r"))
|
|
cmds.menuItem(label = "Finger IK Mode", parent = menu, c = partial(self.switchFingerMode, name, "index", 1, "r"))
|
|
|
|
if rightIndex3:
|
|
self.widgets[name + "_rightIndex3PickerButton"] = cmds.button(w = 20, h = 20, label = "", parent = layout, bgc = self.blue, c = partial(self.buttonSelectCommand, name, "index_finger_fk_ctrl_3_r"))
|
|
cmds.formLayout(layout, edit = True, af = [(self.widgets[name + "_rightIndex3PickerButton"], "top", 105), (self.widgets[name + "_rightIndex3PickerButton"], "left", 107)])
|
|
menu = cmds.popupMenu(b = 3, parent = self.widgets[name + "_rightIndex3PickerButton"])
|
|
cmds.menuItem(label = "Finger FK Mode", parent = menu, c = partial(self.switchFingerMode, name, "index", 0, "r"))
|
|
cmds.menuItem(label = "Finger IK Mode", parent = menu, c = partial(self.switchFingerMode, name, "index", 1, "r"))
|
|
|
|
|
|
#Right Thumb
|
|
#get settings off of skeleton settings node to know what it is we need to create
|
|
rightThumb1 = cmds.getAttr(name + ":" + "Skeleton_Settings.rightthumb1")
|
|
rightThumb2 = cmds.getAttr(name + ":" + "Skeleton_Settings.rightthumb2")
|
|
rightThumb3 = cmds.getAttr(name + ":" + "Skeleton_Settings.rightthumb3")
|
|
|
|
if rightThumb1:
|
|
self.widgets[name + "_rightThumb1PickerButton"] = cmds.button(w = 20, h = 20, label = "", parent = layout, bgc = self.blue, c = partial(self.buttonSelectCommand, name, "thumb_finger_fk_ctrl_1_r"))
|
|
cmds.formLayout(layout, edit = True, af = [(self.widgets[name + "_rightThumb1PickerButton"], "top", 30), (self.widgets[name + "_rightThumb1PickerButton"], "left", 132)])
|
|
menu = cmds.popupMenu(b = 3, parent = self.widgets[name + "_rightThumb1PickerButton"])
|
|
cmds.menuItem(label = "Finger FK Mode", parent = menu, c = partial(self.switchFingerMode, name, "thumb", 0, "r"))
|
|
cmds.menuItem(label = "Finger IK Mode", parent = menu, c = partial(self.switchFingerMode, name, "thumb", 1, "r"))
|
|
|
|
if rightThumb2:
|
|
self.widgets[name + "_rightThumb2PickerButton"] = cmds.button(w = 20, h = 20, label = "", parent = layout, bgc = self.blue, c = partial(self.buttonSelectCommand, name, "thumb_finger_fk_ctrl_2_r"))
|
|
cmds.formLayout(layout, edit = True, af = [(self.widgets[name + "_rightThumb2PickerButton"], "top", 55), (self.widgets[name + "_rightThumb2PickerButton"], "left", 142)])
|
|
menu = cmds.popupMenu(b = 3, parent = self.widgets[name + "_rightThumb2PickerButton"])
|
|
cmds.menuItem(label = "Finger FK Mode", parent = menu, c = partial(self.switchFingerMode, name, "thumb", 0, "r"))
|
|
cmds.menuItem(label = "Finger IK Mode", parent = menu, c = partial(self.switchFingerMode, name, "thumb", 1, "r"))
|
|
|
|
if rightThumb3:
|
|
self.widgets[name + "_rightThumb3PickerButton"] = cmds.button(w = 20, h = 20, label = "", parent = layout, bgc = self.blue, c = partial(self.buttonSelectCommand, name, "thumb_finger_fk_ctrl_3_r"))
|
|
cmds.formLayout(layout, edit = True, af = [(self.widgets[name + "_rightThumb3PickerButton"], "top", 80), (self.widgets[name + "_rightThumb3PickerButton"], "left", 152)])
|
|
menu = cmds.popupMenu(b = 3, parent = self.widgets[name + "_rightThumb3PickerButton"])
|
|
cmds.menuItem(label = "Finger FK Mode", parent = menu, c = partial(self.switchFingerMode, name, "thumb", 0, "r"))
|
|
cmds.menuItem(label = "Finger IK Mode", parent = menu, c = partial(self.switchFingerMode, name, "thumb", 1, "r"))
|
|
|
|
#Right finger row globals
|
|
#get settings off of skeleton settings node to know what it is we need to create
|
|
self.widgets[name + "_rightMetaRowPickerButton"] = cmds.button(w = 20, h = 20, label = "", parent = layout, bgc = self.green, c = partial(self.multiButtonSelectCommand, name, ["index_metacarpal_ctrl_r", "middle_metacarpal_ctrl_r", "ring_metacarpal_ctrl_r", "pinky_metacarpal_ctrl_r"]))
|
|
cmds.formLayout(layout, edit = True, af = [(self.widgets[name + "_rightMetaRowPickerButton"], "top", 30), (self.widgets[name + "_rightMetaRowPickerButton"], "left", 7)])
|
|
|
|
self.widgets[name + "_rightKnuckle1RowPickerButton"] = cmds.button(w = 20, h = 20, label = "", parent = layout, bgc = self.green, c = partial(self.multiButtonSelectCommand, name, ["index_finger_fk_ctrl_1_r", "middle_finger_fk_ctrl_1_r", "ring_finger_fk_ctrl_1_r", "pinky_finger_fk_ctrl_1_r"]))
|
|
cmds.formLayout(layout, edit = True, af = [(self.widgets[name + "_rightKnuckle1RowPickerButton"], "top", 55), (self.widgets[name + "_rightKnuckle1RowPickerButton"], "left", 7)])
|
|
|
|
self.widgets[name + "_rightKnuckle2RowPickerButton"] = cmds.button(w = 20, h = 20, label = "", parent = layout, bgc = self.green, c = partial(self.multiButtonSelectCommand, name, ["index_finger_fk_ctrl_2_r", "middle_finger_fk_ctrl_2_r", "ring_finger_fk_ctrl_2_r", "pinky_finger_fk_ctrl_2_r"]))
|
|
cmds.formLayout(layout, edit = True, af = [(self.widgets[name + "_rightKnuckle2RowPickerButton"], "top", 80), (self.widgets[name + "_rightKnuckle2RowPickerButton"], "left", 7)])
|
|
|
|
self.widgets[name + "_rightKnuckle3RowPickerButton"] = cmds.button(w = 20, h = 20, label = "", parent = layout, bgc = self.green, c = partial(self.multiButtonSelectCommand, name, ["index_finger_fk_ctrl_3_r", "middle_finger_fk_ctrl_3_r", "ring_finger_fk_ctrl_3_r", "pinky_finger_fk_ctrl_3_r"]))
|
|
cmds.formLayout(layout, edit = True, af = [(self.widgets[name + "_rightKnuckle3RowPickerButton"], "top", 105), (self.widgets[name + "_rightKnuckle3RowPickerButton"], "left", 7)])
|
|
|
|
|
|
#Right finger column globals
|
|
#get settings off of skeleton settings node to know what it is we need to create
|
|
self.widgets[name + "_rightIndexColumnPickerButton"] = cmds.button(w = 20, h = 20, label = "", parent = layout, bgc = self.green, c = partial(self.multiButtonSelectCommand, name, ["index_metacarpal_ctrl_r", "index_finger_fk_ctrl_1_r", "index_finger_fk_ctrl_2_r", "index_finger_fk_ctrl_3_r"]))
|
|
cmds.formLayout(layout, edit = True, af = [(self.widgets[name + "_rightIndexColumnPickerButton"], "top", 7), (self.widgets[name + "_rightIndexColumnPickerButton"], "left", 107)])
|
|
|
|
self.widgets[name + "_rightMiddleColumnPickerButton"] = cmds.button(w = 20, h = 20, label = "", parent = layout, bgc = self.green, c = partial(self.multiButtonSelectCommand, name, ["middle_metacarpal_ctrl_r", "middle_finger_fk_ctrl_1_r", "middle_finger_fk_ctrl_2_r", "middle_finger_fk_ctrl_3_r"]))
|
|
cmds.formLayout(layout, edit = True, af = [(self.widgets[name + "_rightMiddleColumnPickerButton"], "top", 7), (self.widgets[name + "_rightMiddleColumnPickerButton"], "left", 82)])
|
|
|
|
self.widgets[name + "_rightRingColumnPickerButton"] = cmds.button(w = 20, h = 20, label = "", parent = layout, bgc = self.green, c = partial(self.multiButtonSelectCommand, name, ["ring_metacarpal_ctrl_r", "ring_finger_fk_ctrl_1_r", "ring_finger_fk_ctrl_2_r", "ring_finger_fk_ctrl_3_r"]))
|
|
cmds.formLayout(layout, edit = True, af = [(self.widgets[name + "_rightRingColumnPickerButton"], "top", 7), (self.widgets[name + "_rightRingColumnPickerButton"], "left", 57)])
|
|
|
|
self.widgets[name + "_rightPinkyColumnPickerButton"] = cmds.button(w = 20, h = 20, label = "", parent = layout, bgc = self.green, c = partial(self.multiButtonSelectCommand, name, ["pinky_metacarpal_ctrl_r", "pinky_finger_fk_ctrl_1_r", "pinky_finger_fk_ctrl_2_r", "pinky_finger_fk_ctrl_3_r"]))
|
|
cmds.formLayout(layout, edit = True, af = [(self.widgets[name + "_rightPinkyColumnPickerButton"], "top", 7), (self.widgets[name + "_rightPinkyColumnPickerButton"], "left", 32)])
|
|
|
|
#Right thumb global
|
|
self.widgets[name + "_rightThumbColumnPickerButton"] = cmds.button(w = 20, h = 20, label = "", parent = layout, bgc = self.green, c = partial(self.multiButtonSelectCommand, name, ["thumb_finger_fk_ctrl_1_r", "thumb_finger_fk_ctrl_2_r", "thumb_finger_fk_ctrl_3_r"]))
|
|
cmds.formLayout(layout, edit = True, af = [(self.widgets[name + "_rightThumbColumnPickerButton"], "top", 7), (self.widgets[name + "_rightThumbColumnPickerButton"], "left", 132)])
|
|
|
|
|
|
#Right Finger IK
|
|
if cmds.objExists(name + ":index_r_ik_anim"):
|
|
self.widgets[name + "_rightIndexFingerIKPickerButton"] = cmds.button(w = 20, h = 20, label = "", parent = layout, bgc = self.orange, c = partial(self.buttonSelectCommand, name, "index_r_ik_anim"))
|
|
cmds.formLayout(layout, edit = True, af = [(self.widgets[name + "_rightIndexFingerIKPickerButton"], "top", 130), (self.widgets[name + "_rightIndexFingerIKPickerButton"], "left", 107)])
|
|
menu = cmds.popupMenu(b = 3, parent = self.widgets[name + "_rightIndexFingerIKPickerButton"])
|
|
cmds.menuItem(label = "Finger FK Mode", parent = menu, c = partial(self.switchFingerMode, name, "index", 0, "r"))
|
|
cmds.menuItem(label = "Finger IK Mode", parent = menu, c = partial(self.switchFingerMode, name, "index", 1, "r"))
|
|
|
|
if cmds.objExists(name + ":middle_r_ik_anim"):
|
|
self.widgets[name + "_rightMiddleFingerIKPickerButton"] = cmds.button(w = 20, h = 20, label = "", parent = layout, bgc = self.orange, c = partial(self.buttonSelectCommand, name, "middle_r_ik_anim"))
|
|
cmds.formLayout(layout, edit = True, af = [(self.widgets[name + "_rightMiddleFingerIKPickerButton"], "top", 130), (self.widgets[name + "_rightMiddleFingerIKPickerButton"], "left", 82)])
|
|
menu = cmds.popupMenu(b = 3, parent = self.widgets[name + "_rightMiddleFingerIKPickerButton"])
|
|
cmds.menuItem(label = "Finger FK Mode", parent = menu, c = partial(self.switchFingerMode, name, "middle", 0, "r"))
|
|
cmds.menuItem(label = "Finger IK Mode", parent = menu, c = partial(self.switchFingerMode, name, "middle", 1, "r"))
|
|
|
|
if cmds.objExists(name + ":ring_r_ik_anim"):
|
|
self.widgets[name + "_rightRingFingerIKPickerButton"] = cmds.button(w = 20, h = 20, label = "", parent = layout, bgc = self.orange, c = partial(self.buttonSelectCommand, name, "ring_r_ik_anim"))
|
|
cmds.formLayout(layout, edit = True, af = [(self.widgets[name + "_rightRingFingerIKPickerButton"], "top", 130), (self.widgets[name + "_rightRingFingerIKPickerButton"], "left", 57)])
|
|
menu = cmds.popupMenu(b = 3, parent = self.widgets[name + "_rightRingFingerIKPickerButton"])
|
|
cmds.menuItem(label = "Finger FK Mode", parent = menu, c = partial(self.switchFingerMode, name, "ring", 0, "r"))
|
|
cmds.menuItem(label = "Finger IK Mode", parent = menu, c = partial(self.switchFingerMode, name, "ring", 1, "r"))
|
|
|
|
if cmds.objExists(name + ":pinky_r_ik_anim"):
|
|
self.widgets[name + "_rightPinkyFingerIKPickerButton"] = cmds.button(w = 20, h = 20, label = "", parent = layout, bgc = self.orange, c = partial(self.buttonSelectCommand, name, "pinky_r_ik_anim"))
|
|
cmds.formLayout(layout, edit = True, af = [(self.widgets[name + "_rightPinkyFingerIKPickerButton"], "top", 130), (self.widgets[name + "_rightPinkyFingerIKPickerButton"], "left", 32)])
|
|
menu = cmds.popupMenu(b = 3, parent = self.widgets[name + "_rightPinkyFingerIKPickerButton"])
|
|
cmds.menuItem(label = "Finger FK Mode", parent = menu, c = partial(self.switchFingerMode, name, "pinky", 0, "r"))
|
|
cmds.menuItem(label = "Finger IK Mode", parent = menu, c = partial(self.switchFingerMode, name, "pinky", 1, "r"))
|
|
|
|
if cmds.objExists(name + ":thumb_r_ik_anim"):
|
|
self.widgets[name + "_rightThumbFingerIKPickerButton"] = cmds.button(w = 20, h = 20, label = "", parent = layout, bgc = self.orange, c = partial(self.buttonSelectCommand, name, "thumb_r_ik_anim"))
|
|
cmds.formLayout(layout, edit = True, af = [(self.widgets[name + "_rightThumbFingerIKPickerButton"], "top", 107), (self.widgets[name + "_rightThumbFingerIKPickerButton"], "left", 152)])
|
|
menu = cmds.popupMenu(b = 3, parent = self.widgets[name + "_rightThumbFingerIKPickerButton"])
|
|
cmds.menuItem(label = "Finger FK Mode", parent = menu, c = partial(self.switchFingerMode, name, "thumb", 0, "r"))
|
|
cmds.menuItem(label = "Finger IK Mode", parent = menu, c = partial(self.switchFingerMode, name, "thumb", 1, "r"))
|
|
|
|
self.widgets[name + "_rightIkFingersRowPickerButton"] = cmds.button(w = 20, h = 20, label = "", parent = layout, bgc = self.green, c = partial(self.multiButtonSelectCommand, name, ["index_r_ik_anim", "middle_r_ik_anim", "ring_r_ik_anim", "pinky_r_ik_anim", "thumb_r_ik_anim"]))
|
|
cmds.formLayout(layout, edit = True, af = [(self.widgets[name + "_rightIkFingersRowPickerButton"], "top", 130), (self.widgets[name + "_rightIkFingersRowPickerButton"], "left", 7)])
|
|
|
|
#Right Finger IK Pole Vectors
|
|
if cmds.objExists(name + ":index_r_ik_anim"):
|
|
self.widgets[name + "_rightIndexIkPvPickerButton"] = cmds.button(w = 10, h = 10, label = "", parent = layout, bgc = self.orange, c = partial(self.buttonSelectCommand, name, "index_r_poleVector"))
|
|
cmds.formLayout(layout, edit = True, af = [(self.widgets[name + "_rightIndexIkPvPickerButton"], "top", 155), (self.widgets[name + "_rightIndexIkPvPickerButton"], "left", 112)])
|
|
|
|
if cmds.objExists(name + ":middle_r_ik_anim"):
|
|
self.widgets[name + "_rightMiddleIkPvPickerButton"] = cmds.button(w = 10, h = 10, label = "", parent = layout, bgc = self.orange, c = partial(self.buttonSelectCommand, name, "middle_r_poleVector"))
|
|
cmds.formLayout(layout, edit = True, af = [(self.widgets[name + "_rightMiddleIkPvPickerButton"], "top", 155), (self.widgets[name + "_rightMiddleIkPvPickerButton"], "left", 87)])
|
|
|
|
if cmds.objExists(name + ":ring_r_ik_anim"):
|
|
self.widgets[name + "_rightRingIkPvPickerButton"] = cmds.button(w = 10, h = 10, label = "", parent = layout, bgc = self.orange, c = partial(self.buttonSelectCommand, name, "ring_r_poleVector"))
|
|
cmds.formLayout(layout, edit = True, af = [(self.widgets[name + "_rightRingIkPvPickerButton"], "top", 155), (self.widgets[name + "_rightRingIkPvPickerButton"], "left", 62)])
|
|
|
|
if cmds.objExists(name + ":pinky_r_ik_anim"):
|
|
self.widgets[name + "_rightPinkyIkPvPickerButton"] = cmds.button(w = 10, h = 10, label = "", parent = layout, bgc = self.orange, c = partial(self.buttonSelectCommand, name, "pinky_r_poleVector"))
|
|
cmds.formLayout(layout, edit = True, af = [(self.widgets[name + "_rightPinkyIkPvPickerButton"], "top", 155), (self.widgets[name + "_rightPinkyIkPvPickerButton"], "left", 37)])
|
|
|
|
if cmds.objExists(name + ":thumb_r_ik_anim"):
|
|
self.widgets[name + "_rightThumbIkPvPickerButton"] = cmds.button(w = 10, h = 10, label = "", parent = layout, bgc = self.orange, c = partial(self.buttonSelectCommand, name, "thumb_r_poleVector"))
|
|
cmds.formLayout(layout, edit = True, af = [(self.widgets[name + "_rightThumbIkPvPickerButton"], "top", 132), (self.widgets[name + "_rightThumbIkPvPickerButton"], "left", 157)])
|
|
|
|
self.widgets[name + "_rightIkFingersPvsPickerButton"] = cmds.button(w = 10, h = 10, label = "", parent = layout, bgc = self.green, c = partial(self.multiButtonSelectCommand, name, ["index_r_poleVector", "middle_r_poleVector", "ring_r_poleVector", "pinky_r_poleVector", "thumb_r_poleVector"]))
|
|
cmds.formLayout(layout, edit = True, af = [(self.widgets[name + "_rightIkFingersPvsPickerButton"], "top", 155), (self.widgets[name + "_rightIkFingersPvsPickerButton"], "left", 12)])
|
|
|
|
|
|
#Right IK Global Control
|
|
self.widgets[name + "_rightIkGlobalCtrlPickerButton"] = cmds.button(w = 20, h = 20, label = "", parent = layout, bgc = self.orange, c = partial(self.buttonSelectCommand, name, "r_global_ik_anim"))
|
|
cmds.formLayout(layout, edit = True, af = [(self.widgets[name + "_rightIkGlobalCtrlPickerButton"], "top", 7), (self.widgets[name + "_rightIkGlobalCtrlPickerButton"], "left", 7)])
|
|
|
|
menu = cmds.popupMenu(b = 3, parent = self.widgets[name + "_rightIkGlobalCtrlPickerButton"])
|
|
spaceMenu = cmds.menuItem(label = "Space Switching", parent = menu, subMenu = True)
|
|
self.widgets[name + "_rIkGlobalCtrl_RadioCollection"] = cmds.radioMenuItemCollection(parent = spaceMenu)
|
|
cmds.menuItem(spaceMenu, edit = True, postMenuCommand = partial(self.getControlSpaces, menu, self.widgets[name + "_rIkGlobalCtrl_RadioCollection"] , "r_global_ik_anim_space_switcher"))
|
|
|
|
|
|
|
|
|
|
# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
|
|
# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
|
|
# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
|
|
# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
|
|
def buttonSelectCommand(self, name, control, *args):
|
|
#when a picker button gets clicked, we need to select the corresponding item(taking into account selection modifiers), and color the button white
|
|
mods = cmds.getModifiers()
|
|
|
|
if (mods & 1) > 0:
|
|
if cmds.objExists(name + ":" + control):
|
|
cmds.select(name + ":" + control, tgl = True)
|
|
|
|
if (mods & 1) == 0:
|
|
if cmds.objExists(name + ":" + control):
|
|
cmds.select(name + ":" + control)
|
|
|
|
|
|
# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
|
|
# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
|
|
# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
|
|
# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
|
|
def clavSelectCommand(self, name, fkControl, ikControl, *args):
|
|
#when a picker button gets clicked, we need to select the corresponding item(taking into account selection modifiers), and color the button white
|
|
|
|
#get the clavicle mode
|
|
clavMode = 1
|
|
try:
|
|
#fk_clavicle_l_anim
|
|
side = fkControl.partition("clavicle_")[2].partition("_")[0]
|
|
clavMode = cmds.getAttr(name + ":Rig_Settings." + side + "ClavMode")
|
|
|
|
except:
|
|
pass
|
|
|
|
|
|
mods = cmds.getModifiers()
|
|
|
|
if clavMode == 0:
|
|
if (mods & 1) > 0:
|
|
if cmds.objExists(name + ":" + fkControl):
|
|
cmds.select(name + ":" + fkControl, tgl = True)
|
|
|
|
if (mods & 1) == 0:
|
|
if cmds.objExists(name + ":" + fkControl):
|
|
cmds.select(name + ":" + fkControl)
|
|
|
|
|
|
if clavMode == 1:
|
|
if (mods & 1) > 0:
|
|
if cmds.objExists(name + ":" + ikControl):
|
|
cmds.select(name + ":" + ikControl, tgl = True)
|
|
|
|
if (mods & 1) == 0:
|
|
if cmds.objExists(name + ":" + ikControl):
|
|
cmds.select(name + ":" + ikControl)
|
|
|
|
|
|
# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
|
|
# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
|
|
# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
|
|
# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
|
|
# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
|
|
def multiButtonSelectCommand(self, name, controls, *args):
|
|
#when a picker button gets clicked, we need to select the corresponding item(taking into account selection modifiers), and color the button white
|
|
mods = cmds.getModifiers()
|
|
|
|
if (mods & 1) > 0:
|
|
selection = cmds.ls(sl = True)
|
|
for control in controls:
|
|
if cmds.objExists(name + ":" + control):
|
|
cmds.select(name + ":" + control, tgl = True)
|
|
|
|
if (mods & 1) == 0:
|
|
cmds.select(clear = True)
|
|
for control in controls:
|
|
if cmds.objExists(name + ":" + control):
|
|
cmds.select(name + ":" + control, add = True)
|
|
|
|
|
|
|
|
# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
|
|
# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
|
|
# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
|
|
# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
|
|
# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
|
|
def switchSpineMode(self, name, mode, *args):
|
|
|
|
match = cmds.menuItem(self.widgets["menuBar_settings_matching"], q = True, checkBox = True)
|
|
if mode == "FK":
|
|
|
|
#if match on switch is checked, match as well
|
|
if match == True:
|
|
self.match_singleFrame("spine", None, "FK", "IK")
|
|
|
|
cmds.setAttr(name + ":Rig_Settings.spine_ik", 0)
|
|
cmds.setAttr(name + ":Rig_Settings.spine_fk", 1)
|
|
cmds.setKeyframe(name + ":Rig_Settings.spine_ik")
|
|
cmds.setKeyframe(name + ":Rig_Settings.spine_fk")
|
|
|
|
|
|
|
|
|
|
if mode == "IK":
|
|
if match == True:
|
|
self.match_singleFrame("spine", None, "IK", "FK")
|
|
|
|
cmds.setAttr(name + ":Rig_Settings.spine_ik", 1)
|
|
cmds.setAttr(name + ":Rig_Settings.spine_fk", 0)
|
|
cmds.setKeyframe(name + ":Rig_Settings.spine_ik")
|
|
cmds.setKeyframe(name + ":Rig_Settings.spine_fk")
|
|
|
|
# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
|
|
# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
|
|
# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
|
|
# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
|
|
# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
|
|
def switchClavMode(self, name, mode, side, *args):
|
|
match = cmds.menuItem(self.widgets["menuBar_settings_matching"], q = True, checkBox = True)
|
|
|
|
if mode == "FK":
|
|
if match == True:
|
|
self.match_singleFrame("clav", side, "FK", "IK")
|
|
|
|
cmds.setAttr(name + ":Rig_Settings." + side + "ClavMode", 0)
|
|
cmds.setKeyframe(name + ":Rig_Settings." + side + "ClavMode")
|
|
|
|
if mode == "IK":
|
|
if match == True:
|
|
self.match_singleFrame("clav", side, "IK", "FK")
|
|
|
|
cmds.setAttr(name + ":Rig_Settings." + side + "ClavMode", 1)
|
|
cmds.setKeyframe(name + ":Rig_Settings." + side + "ClavMode")
|
|
|
|
|
|
# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
|
|
# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
|
|
# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
|
|
# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
|
|
# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
|
|
def switchArmMode(self, name, mode, side, *args):
|
|
match = cmds.menuItem(self.widgets["menuBar_settings_matching"], q = True, checkBox = True)
|
|
|
|
if mode == "FK":
|
|
if match == True:
|
|
self.match_singleFrame("arm", side, "FK", "IK")
|
|
|
|
cmds.setAttr(name + ":Rig_Settings." + side + "ArmMode", 0)
|
|
cmds.setKeyframe(name + ":Rig_Settings." + side + "ArmMode")
|
|
|
|
if mode == "IK":
|
|
if match == True:
|
|
self.match_singleFrame("arm", side, "IK", "FK")
|
|
|
|
cmds.setAttr(name + ":Rig_Settings." + side + "ArmMode", 1)
|
|
cmds.setKeyframe(name + ":Rig_Settings." + side + "ArmMode")
|
|
|
|
# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
|
|
# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
|
|
# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
|
|
# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
|
|
# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
|
|
def switchArmOrientMode(self, name, mode, side, *args):
|
|
|
|
|
|
currentMode = cmds.getAttr(name + ":Rig_Settings." + side + "FkArmOrient")
|
|
|
|
if currentMode != mode:
|
|
|
|
if mode == 2:
|
|
constraint = cmds.parentConstraint(name + ":fk_orient_master_loc_" + side, name + ":fk_orient_world_loc_" + side)[0]
|
|
cmds.setKeyframe(name + ":fk_orient_world_loc_" + side)
|
|
cmds.delete(constraint)
|
|
|
|
if mode == 1:
|
|
constraint = cmds.parentConstraint(name + ":fk_orient_master_loc_" + side, name + ":fk_orient_body_loc_" + side)[0]
|
|
cmds.setKeyframe(name + ":fk_orient_body_loc_" + side)
|
|
cmds.delete(constraint)
|
|
|
|
cmds.setAttr(name + ":Rig_Settings." + side + "FkArmOrient", mode)
|
|
|
|
|
|
# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
|
|
# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
|
|
# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
|
|
# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
|
|
# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
|
|
def switchHeadOrientMode(self, name, mode, *args):
|
|
|
|
currentSelection = cmds.ls(sl = True)
|
|
|
|
currentMode = cmds.getAttr(name + ":head_fk_anim.fkOrientation")
|
|
currentFrame = cmds.currentTime(q = True)
|
|
|
|
|
|
if currentMode != mode:
|
|
|
|
cmds.currentTime(currentFrame - 1)
|
|
cmds.setKeyframe(name + ":head_fk_anim")
|
|
|
|
cmds.currentTime(currentFrame)
|
|
|
|
#create temp locator
|
|
tempLoc = cmds.spaceLocator(name = "headSnapTempLoc")[0]
|
|
constraint = cmds.parentConstraint(name + ":head_fk_anim", tempLoc)[0]
|
|
cmds.delete(constraint)
|
|
|
|
constraint = cmds.orientConstraint(tempLoc, name + ":head_fk_anim")[0]
|
|
|
|
cmds.setAttr(name + ":head_fk_anim.fkOrientation", mode)
|
|
|
|
|
|
cmds.setKeyframe(name + ":head_fk_anim")
|
|
cmds.delete(constraint)
|
|
cmds.delete(tempLoc)
|
|
|
|
if len(currentSelection) > 0:
|
|
cmds.select(currentSelection)
|
|
|
|
|
|
|
|
|
|
# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
|
|
# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
|
|
# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
|
|
# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
|
|
# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
|
|
def switchNeckOrientMode(self, name, mode, *args):
|
|
|
|
currentSelection = cmds.ls(sl = True)
|
|
|
|
currentMode = cmds.getAttr(name + ":neck_01_fk_anim.fkOrientation")
|
|
currentFrame = cmds.currentTime(q = True)
|
|
|
|
|
|
if currentMode != mode:
|
|
|
|
cmds.currentTime(currentFrame - 1)
|
|
cmds.setKeyframe(name + ":neck_01_fk_anim")
|
|
|
|
cmds.currentTime(currentFrame)
|
|
|
|
#create temp locator
|
|
tempLoc = cmds.spaceLocator(name = "neckSnapTempLoc")[0]
|
|
constraint = cmds.parentConstraint(name + ":neck_01_fk_anim", tempLoc)[0]
|
|
cmds.delete(constraint)
|
|
|
|
constraint = cmds.orientConstraint(tempLoc, name + ":neck_01_fk_anim")[0]
|
|
|
|
cmds.setAttr(name + ":neck_01_fk_anim.fkOrientation", mode)
|
|
|
|
|
|
cmds.setKeyframe(name + ":neck_01_fk_anim")
|
|
cmds.delete(constraint)
|
|
cmds.delete(tempLoc)
|
|
|
|
if len(currentSelection) > 0:
|
|
cmds.select(currentSelection)
|
|
# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
|
|
# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
|
|
# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
|
|
# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
|
|
# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
|
|
def switchLegMode(self, name, mode, side, *args):
|
|
|
|
match = cmds.menuItem(self.widgets["menuBar_settings_matching"], q = True, checkBox = True)
|
|
|
|
if mode == "FK":
|
|
if match == True:
|
|
self.match_singleFrame("leg", side, "FK", "IK")
|
|
cmds.setAttr(name + ":Rig_Settings." + side + "LegMode", 0)
|
|
cmds.setKeyframe(name + ":Rig_Settings." + side + "LegMode")
|
|
|
|
if mode == "IK":
|
|
if match == True:
|
|
self.match_singleFrame("leg", side, "IK", "FK")
|
|
cmds.setAttr(name + ":Rig_Settings." + side + "LegMode", 1)
|
|
cmds.setKeyframe(name + ":Rig_Settings." + side + "LegMode")
|
|
|
|
|
|
# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
|
|
# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
|
|
# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
|
|
# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
|
|
# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
|
|
def switchCustomChainMode(self, character, controlPrefix, mode, *args):
|
|
|
|
if mode == "FK":
|
|
cmds.setAttr(character + ":Rig_Settings." + controlPrefix + "_fk", 1)
|
|
cmds.setAttr(character + ":Rig_Settings." + controlPrefix + "_ik", 0)
|
|
cmds.setAttr(character + ":Rig_Settings." + controlPrefix + "_dynamic", 0)
|
|
cmds.setKeyframe(character + ":Rig_Settings." + controlPrefix + "_fk")
|
|
cmds.setKeyframe(character + ":Rig_Settings." + controlPrefix + "_ik")
|
|
cmds.setKeyframe(character + ":Rig_Settings." + controlPrefix + "_dynamic")
|
|
|
|
if mode == "IK":
|
|
cmds.setAttr(character + ":Rig_Settings." + controlPrefix + "_ik", 1)
|
|
cmds.setAttr(character + ":Rig_Settings." + controlPrefix + "_fk", 0)
|
|
cmds.setAttr(character + ":Rig_Settings." + controlPrefix + "_dynamic", 0)
|
|
cmds.setKeyframe(character + ":Rig_Settings." + controlPrefix + "_fk")
|
|
cmds.setKeyframe(character + ":Rig_Settings." + controlPrefix + "_ik")
|
|
cmds.setKeyframe(character + ":Rig_Settings." + controlPrefix + "_dynamic")
|
|
|
|
if mode == "DYNAMIC":
|
|
cmds.setAttr(character + ":Rig_Settings." + controlPrefix + "_dynamic", 1)
|
|
cmds.setAttr(character + ":Rig_Settings." + controlPrefix + "_fk", 0)
|
|
cmds.setAttr(character + ":Rig_Settings." + controlPrefix + "_ik", 0)
|
|
cmds.setKeyframe(character + ":Rig_Settings." + controlPrefix + "_fk")
|
|
cmds.setKeyframe(character + ":Rig_Settings." + controlPrefix + "_ik")
|
|
cmds.setKeyframe(character + ":Rig_Settings." + controlPrefix + "_dynamic")
|
|
|
|
|
|
|
|
|
|
# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
|
|
# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
|
|
# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
|
|
# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
|
|
# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
|
|
def switchFingerMode(self, name, finger, mode, side, *args):
|
|
|
|
cmds.setAttr(name + ":" + finger + "_finger_" + side + "_mode_anim.FK_IK", mode)
|
|
cmds.setKeyframe(name + ":" + finger + "_finger_" + side + "_mode_anim.FK_IK")
|
|
|
|
# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
|
|
# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
|
|
# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
|
|
# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
|
|
# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
|
|
def listView_selAllBelow(self, name, *args):
|
|
|
|
mods = cmds.getModifiers()
|
|
|
|
#get all controls below
|
|
children = cmds.treeView(self.widgets[name + "_treeViewWidget"], q = True, children = args[0])
|
|
|
|
if (mods & 1) > 0:
|
|
for child in children:
|
|
if cmds.objExists(name + ":" + child):
|
|
cmds.select(name + ":" + child, tgl = True)
|
|
#hilight object in listView
|
|
cmds.treeView(self.widgets[name + "_treeViewWidget"], edit = True, selectItem = [child, True])
|
|
|
|
if (mods & 1) == 0:
|
|
cmds.select(clear = True)
|
|
for child in children:
|
|
if cmds.objExists(name + ":" + child):
|
|
cmds.select(name + ":" + child, add = True)
|
|
#hilight object in listView
|
|
cmds.treeView(self.widgets[name + "_treeViewWidget"], edit = True, selectItem = [child, True])
|
|
|
|
#self.listView_ScriptJob(name)
|
|
# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
|
|
# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
|
|
# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
|
|
# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
|
|
# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
|
|
def listViewSelectItem(self, name, *args):
|
|
|
|
mods = cmds.getModifiers()
|
|
|
|
selected = cmds.treeView(self.widgets[name + "_treeViewWidget"], q = True, selectItem = True)
|
|
if (mods & 1) > 0:
|
|
for item in selected:
|
|
if cmds.objExists(name + ":" + item):
|
|
cmds.select(name + ":" + item, tgl = True)
|
|
|
|
if (mods & 1) == 0:
|
|
cmds.select(clear = True)
|
|
|
|
for item in selected:
|
|
if cmds.objExists(name + ":" + item):
|
|
cmds.select(name + ":" + item, add = True)
|
|
|
|
#clearSelection
|
|
|
|
#self.listView_ScriptJob(name)
|
|
# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
|
|
# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
|
|
# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
|
|
# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
|
|
# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
|
|
def listView_ScriptJob(self, *args):
|
|
|
|
self.widgets["listViewScriptJob"] = cmds.scriptJob(event = ["SelectionChanged", self.listView_scriptJobCommand], parent = self.widgets["window"], runOnce = True, kws = True)
|
|
|
|
|
|
# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
|
|
# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
|
|
# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
|
|
# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
|
|
# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
|
|
def listView_scriptJobCommand(self, *args):
|
|
character = cmds.symbolButton(self.widgets["activeCharacterThumb"], q = True, ann = True)
|
|
|
|
|
|
selection = cmds.ls(sl = True)
|
|
selectedItems = cmds.treeView(self.widgets[character + "_treeViewWidget"], q = True, selectItem = True)
|
|
|
|
|
|
if selectedItems != None:
|
|
for item in selectedItems:
|
|
if character + ":" + item not in selection:
|
|
cmds.treeView(self.widgets[character + "_treeViewWidget"], edit = True, selectItem = [item, False])
|
|
|
|
|
|
for item in selection:
|
|
niceName = item.partition(":")[2]
|
|
|
|
if selectedItems != None:
|
|
if niceName not in selectedItems:
|
|
if cmds.treeView(self.widgets[character + "_treeViewWidget"], q = True, itemExists = niceName):
|
|
cmds.treeView(self.widgets[character + "_treeViewWidget"], edit = True, selectItem = [niceName, True])
|
|
|
|
else:
|
|
if cmds.treeView(self.widgets[character + "_treeViewWidget"], q = True, itemExists = niceName):
|
|
cmds.treeView(self.widgets[character + "_treeViewWidget"], edit = True, selectItem = [niceName, True])
|
|
|
|
|
|
|
|
# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
|
|
# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
|
|
# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
|
|
# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
|
|
# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
|
|
def createListView(self, name, layout, *args):
|
|
|
|
#create a scrollLayout that is a child of the passed in layout
|
|
self.widgets[name + "_listViewMainLayout"] = cmds.scrollLayout(w = 400, h = 700, hst = 0, parent = layout)
|
|
#self.formsToHide.append(self.widgets[name + "_listViewMainLayout"] )
|
|
|
|
|
|
#create the tree view widget
|
|
self.widgets[name + "_treeViewWidget"] = cmds.treeView(parent = self.widgets[name + "_listViewMainLayout"], numberOfButtons = 2, abr = True, w = 380, h = 3000, selectionChangedCommand = partial(self.listViewSelectItem, name), pressCommand = [[1, partial(self.listView_selAllBelow, name)], [2, partial(self.toggleVisibilityOnSelectedControlGroups, name)]])
|
|
|
|
|
|
#TOP LEVEL CONTROLS
|
|
cmds.treeView(self.widgets[name + "_treeViewWidget"], e=True, addItem = ("RIG CONTROLS", ""), hb = False)
|
|
cmds.treeView(self.widgets[name + "_treeViewWidget"], e=True, ff = ["RIG CONTROLS", 1], expandItem = ["RIG CONTROLS", False],tc = ["RIG CONTROLS", self.orange[0], self.orange[1], self.orange[2]], bti = [["RIG CONTROLS", 1, "S"], ["RIG CONTROLS", 2, "V"]])
|
|
|
|
cmds.treeView(self.widgets[name + "_treeViewWidget"], e=True, addItem = ("Rig_Settings", "RIG CONTROLS"), hb = True)
|
|
cmds.treeView(self.widgets[name + "_treeViewWidget"], e=True, addItem = ("master_anim", "RIG CONTROLS"), hb = True)
|
|
cmds.treeView(self.widgets[name + "_treeViewWidget"], e=True, addItem = ("offset_anim", "RIG CONTROLS"), hb = True)
|
|
cmds.treeView(self.widgets[name + "_treeViewWidget"], e=True, addItem = ("root_anim", "RIG CONTROLS"), hb = True)
|
|
|
|
#TORSO
|
|
torsoControls = cmds.treeView(self.widgets[name + "_treeViewWidget"], e=True, addItem = ("TORSO CONTROLS", "RIG CONTROLS"), hb = False)
|
|
torsoControls = cmds.treeView(self.widgets[name + "_treeViewWidget"], e=True, ff = ["TORSO CONTROLS", 1], expandItem = ["TORSO CONTROLS", False],tc = ["TORSO CONTROLS", self.orange[0], self.orange[1], self.orange[2]], labelBackgroundColor = ["TORSO CONTROLS", .3, .3, .3], bti = [["TORSO CONTROLS", 1, "S"], ["TORSO CONTROLS", 2, "V"]])
|
|
bodyAnim = cmds.treeView(self.widgets[name + "_treeViewWidget"], e=True, addItem = ("body_anim", "TORSO CONTROLS"), hb = True)
|
|
hipAnim = cmds.treeView(self.widgets[name + "_treeViewWidget"], e=True, addItem = ("hip_anim", "TORSO CONTROLS"), hb = True)
|
|
|
|
fkControls = cmds.treeView(self.widgets[name + "_treeViewWidget"], e=True, addItem = ("SPINE FK CONTROLS", "TORSO CONTROLS"), hb = False)
|
|
torsoControls = cmds.treeView(self.widgets[name + "_treeViewWidget"], e=True, ff = ["SPINE FK CONTROLS", 2], tc = ["SPINE FK CONTROLS", self.blue[0], self.blue[1], self.blue[2]], bti = [["SPINE FK CONTROLS", 1, "S"], ["SPINE FK CONTROLS", 2, "V"]])
|
|
|
|
|
|
for control in ["spine_01_anim", "spine_02_anim", "spine_03_anim", "spine_04_anim", "spine_05_anim"]:
|
|
if cmds.objExists(name + ":" + control):
|
|
cmds.treeView(self.widgets[name + "_treeViewWidget"], e=True, addItem = (control, "SPINE FK CONTROLS"), hb = True)
|
|
|
|
if cmds.objExists(name + ":" + "chest_ik_anim"):
|
|
ikControls = cmds.treeView(self.widgets[name + "_treeViewWidget"], e=True, addItem = ("SPINE IK CONTROLS", "TORSO CONTROLS"), hb = False)
|
|
torsoControls = cmds.treeView(self.widgets[name + "_treeViewWidget"], e=True, ff = ["SPINE IK CONTROLS", 2], tc = ["SPINE IK CONTROLS", self.blue[0], self.blue[1], self.blue[2]], bti = [["SPINE IK CONTROLS", 1, "S"], ["SPINE IK CONTROLS", 2, "V"]])
|
|
|
|
cmds.treeView(self.widgets[name + "_treeViewWidget"], e=True, addItem = ("chest_ik_anim", "SPINE IK CONTROLS"), hb = True)
|
|
cmds.treeView(self.widgets[name + "_treeViewWidget"], e=True, addItem = ("mid_ik_anim", "SPINE IK CONTROLS"), hb = True)
|
|
|
|
#HEAD
|
|
headControls = cmds.treeView(self.widgets[name + "_treeViewWidget"], e=True, addItem = ("HEAD CONTROLS", "RIG CONTROLS"), hb = False)
|
|
cmds.treeView(self.widgets[name + "_treeViewWidget"], e=True, ff = ["HEAD CONTROLS", 1], expandItem = ["HEAD CONTROLS", False],tc = ["HEAD CONTROLS", self.orange[0], self.orange[1], self.orange[2]], labelBackgroundColor = ["HEAD CONTROLS", .4, .4, .4], bti = [["HEAD CONTROLS", 1, "S"], ["HEAD CONTROLS", 2, "V"]])
|
|
|
|
for control in ["neck_01_fk_anim", "neck_02_fk_anim", "neck_03_fk_anim"]:
|
|
if cmds.objExists(name + ":" + control):
|
|
cmds.treeView(self.widgets[name + "_treeViewWidget"], e=True, addItem = (control, "HEAD CONTROLS"), hb = True)
|
|
|
|
headAnim = cmds.treeView(self.widgets[name + "_treeViewWidget"], e=True, addItem = ("head_fk_anim", "HEAD CONTROLS"), hb = True)
|
|
|
|
#LEFT ARM
|
|
lArmControls = cmds.treeView(self.widgets[name + "_treeViewWidget"], e=True, addItem = ("LEFT ARM CONTROLS", "RIG CONTROLS"), hb = False)
|
|
cmds.treeView(self.widgets[name + "_treeViewWidget"], e=True, ff = ["LEFT ARM CONTROLS", 1], expandItem = ["LEFT ARM CONTROLS", False],tc = ["LEFT ARM CONTROLS", self.orange[0], self.orange[1], self.orange[2]], labelBackgroundColor = ["LEFT ARM CONTROLS", .3, .3, .3], bti = [["LEFT ARM CONTROLS", 1, "S"], ["LEFT ARM CONTROLS", 2, "V"]])
|
|
|
|
cmds.treeView(self.widgets[name + "_treeViewWidget"], e=True, addItem = ("clavicle_l_anim", "LEFT ARM CONTROLS"), hb = True)
|
|
cmds.treeView(self.widgets[name + "_treeViewWidget"], e=True, addItem = ("fk_clavicle_l_anim", "LEFT ARM CONTROLS"), hb = True)
|
|
|
|
cmds.treeView(self.widgets[name + "_treeViewWidget"], e=True, addItem = ("L ARM FK CONTROLS", "LEFT ARM CONTROLS"), hb = False)
|
|
cmds.treeView(self.widgets[name + "_treeViewWidget"], e=True, ff = ["L ARM FK CONTROLS", 2], tc = ["L ARM FK CONTROLS", self.blue[0], self.blue[1], self.blue[2]], bti = [["L ARM FK CONTROLS", 1, "S"], ["L ARM FK CONTROLS", 2, "V"]])
|
|
|
|
cmds.treeView(self.widgets[name + "_treeViewWidget"], e=True, addItem = ("fk_arm_l_anim", "L ARM FK CONTROLS"), hb = True)
|
|
cmds.treeView(self.widgets[name + "_treeViewWidget"], e=True, addItem = ("fk_elbow_l_anim", "L ARM FK CONTROLS"), hb = True)
|
|
cmds.treeView(self.widgets[name + "_treeViewWidget"], e=True, addItem = ("fk_wrist_l_anim", "L ARM FK CONTROLS"), hb = True)
|
|
|
|
cmds.treeView(self.widgets[name + "_treeViewWidget"], e=True, addItem = ("L ARM IK CONTROLS", "LEFT ARM CONTROLS"), hb = False)
|
|
cmds.treeView(self.widgets[name + "_treeViewWidget"], e=True, ff = ["L ARM IK CONTROLS", 2], tc = ["L ARM IK CONTROLS", self.blue[0], self.blue[1], self.blue[2]], bti = [["L ARM IK CONTROLS", 1, "S"], ["L ARM IK CONTROLS", 2, "V"]])
|
|
|
|
cmds.treeView(self.widgets[name + "_treeViewWidget"], e=True, addItem = ("ik_elbow_l_anim", "L ARM IK CONTROLS"), hb = True)
|
|
cmds.treeView(self.widgets[name + "_treeViewWidget"], e=True, addItem = ("ik_wrist_l_anim", "L ARM IK CONTROLS"), hb = True)
|
|
|
|
|
|
#RIGHT ARM
|
|
lArmControls = cmds.treeView(self.widgets[name + "_treeViewWidget"], e=True, addItem = ("RIGHT ARM CONTROLS", "RIG CONTROLS"), hb = False)
|
|
cmds.treeView(self.widgets[name + "_treeViewWidget"], e=True, ff = ["RIGHT ARM CONTROLS", 1], expandItem = ["RIGHT ARM CONTROLS", False],tc = ["RIGHT ARM CONTROLS", self.orange[0], self.orange[1], self.orange[2]], labelBackgroundColor = ["RIGHT ARM CONTROLS", .4, .4, .4], bti = [["RIGHT ARM CONTROLS", 1, "S"], ["RIGHT ARM CONTROLS", 2, "V"]])
|
|
|
|
cmds.treeView(self.widgets[name + "_treeViewWidget"], e=True, addItem = ("clavicle_r_anim", "RIGHT ARM CONTROLS"), hb = True)
|
|
cmds.treeView(self.widgets[name + "_treeViewWidget"], e=True, addItem = ("fk_clavicle_r_anim", "RIGHT ARM CONTROLS"), hb = True)
|
|
|
|
cmds.treeView(self.widgets[name + "_treeViewWidget"], e=True, addItem = ("R ARM FK CONTROLS", "RIGHT ARM CONTROLS"), hb = False)
|
|
cmds.treeView(self.widgets[name + "_treeViewWidget"], e=True, ff = ["R ARM FK CONTROLS", 2], tc = ["R ARM FK CONTROLS", self.blue[0], self.blue[1], self.blue[2]], bti = [["R ARM FK CONTROLS", 1, "S"], ["R ARM FK CONTROLS", 2, "V"]])
|
|
|
|
cmds.treeView(self.widgets[name + "_treeViewWidget"], e=True, addItem = ("fk_arm_r_anim", "R ARM FK CONTROLS"), hb = True)
|
|
cmds.treeView(self.widgets[name + "_treeViewWidget"], e=True, addItem = ("fk_elbow_r_anim", "R ARM FK CONTROLS"), hb = True)
|
|
cmds.treeView(self.widgets[name + "_treeViewWidget"], e=True, addItem = ("fk_wrist_r_anim", "R ARM FK CONTROLS"), hb = True)
|
|
|
|
cmds.treeView(self.widgets[name + "_treeViewWidget"], e=True, addItem = ("R ARM IK CONTROLS", "RIGHT ARM CONTROLS"), hb = False)
|
|
cmds.treeView(self.widgets[name + "_treeViewWidget"], e=True, ff = ["R ARM IK CONTROLS", 2], tc = ["R ARM IK CONTROLS", self.blue[0], self.blue[1], self.blue[2]], bti = [["R ARM FK CONTROLS", 1, "S"], ["R ARM FK CONTROLS", 2, "V"]])
|
|
|
|
cmds.treeView(self.widgets[name + "_treeViewWidget"], e=True, addItem = ("ik_elbow_r_anim", "R ARM IK CONTROLS"), hb = True)
|
|
cmds.treeView(self.widgets[name + "_treeViewWidget"], e=True, addItem = ("ik_wrist_r_anim", "R ARM IK CONTROLS"), hb = True)
|
|
|
|
|
|
#LEFT FINGERS
|
|
lFingerControls = cmds.treeView(self.widgets[name + "_treeViewWidget"], e=True, addItem = ("LEFT FINGER CONTROLS", "RIG CONTROLS"), hb = False)
|
|
cmds.treeView(self.widgets[name + "_treeViewWidget"], e=True, ff = ["LEFT FINGER CONTROLS", 1], expandItem = ["LEFT FINGER CONTROLS", False],tc = ["LEFT FINGER CONTROLS", self.orange[0], self.orange[1], self.orange[2]], labelBackgroundColor = ["LEFT FINGER CONTROLS", .3, .3, .3], bti = [["LEFT FINGER CONTROLS", 1, "S"], ["LEFT FINGER CONTROLS", 2, "V"]])
|
|
|
|
cmds.treeView(self.widgets[name + "_treeViewWidget"], e=True, addItem = ("L FINGER FK CONTROLS", "LEFT FINGER CONTROLS"), hb = False)
|
|
cmds.treeView(self.widgets[name + "_treeViewWidget"], e=True, ff = ["L FINGER FK CONTROLS", 2], tc = ["L FINGER FK CONTROLS", self.blue[0], self.blue[1], self.blue[2]], expandItem = ["L FINGER FK CONTROLS", False], bti = [["L FINGER FK CONTROLS", 1, "S"], ["L FINGER FK CONTROLS", 2, "V"]])
|
|
|
|
for finger in ["index", "middle", "ring", "pinky", "thumb"]:
|
|
|
|
cmds.treeView(self.widgets[name + "_treeViewWidget"], e=True, addItem = ("L_" + finger + "_FK", "L FINGER FK CONTROLS"), hb = False)
|
|
cmds.treeView(self.widgets[name + "_treeViewWidget"], e=True, ff = ["L_" + finger + "_FK", 2], tc = ["L_" + finger + "_FK", self.blue[0], self.blue[1], self.blue[2]], bti = [["L_" + finger + "_FK", 1, "S"], ["L_" + finger + "_FK", 2, "V"]])
|
|
|
|
if cmds.objExists(name + ":" + finger + "_metacarpal_ctrl_l"):
|
|
cmds.treeView(self.widgets[name + "_treeViewWidget"], e=True, addItem = (finger + "_metacarpal_ctrl_l", "L_" + finger + "_FK"), hb = True)
|
|
|
|
if cmds.objExists(name + ":" + finger + "_finger_fk_ctrl_1_l"):
|
|
cmds.treeView(self.widgets[name + "_treeViewWidget"], e=True, addItem = (finger + "_finger_fk_ctrl_1_l", "L_" + finger + "_FK"), hb = True)
|
|
|
|
if cmds.objExists(name + ":" + finger + "_finger_fk_ctrl_2_l"):
|
|
cmds.treeView(self.widgets[name + "_treeViewWidget"], e=True, addItem = (finger + "_finger_fk_ctrl_2_l", "L_" + finger + "_FK"), hb = True)
|
|
|
|
if cmds.objExists(name + ":" + finger + "_finger_fk_ctrl_3_l"):
|
|
cmds.treeView(self.widgets[name + "_treeViewWidget"], e=True, addItem = (finger + "_finger_fk_ctrl_3_l", "L_" + finger + "_FK"), hb = True)
|
|
|
|
cmds.treeView(self.widgets[name + "_treeViewWidget"], e=True, addItem = ("L FINGER IK CONTROLS", "LEFT FINGER CONTROLS"), hb = False)
|
|
cmds.treeView(self.widgets[name + "_treeViewWidget"], e=True, ff = ["L FINGER IK CONTROLS", 2], tc = ["L FINGER IK CONTROLS", self.blue[0], self.blue[1], self.blue[2]], expandItem = ["L FINGER IK CONTROLS", False], bti = [["L FINGER IK CONTROLS", 1, "S"], ["L FINGER IK CONTROLS", 2, "V"]])
|
|
|
|
|
|
for finger in ["index", "middle", "ring", "pinky", "thumb"]:
|
|
if cmds.objExists(name + ":" + finger + "_l_ik_anim"):
|
|
cmds.treeView(self.widgets[name + "_treeViewWidget"], e=True, addItem = (finger + "_l_ik_anim", "L FINGER IK CONTROLS"), hb = True)
|
|
|
|
for finger in ["index", "middle", "ring", "pinky", "thumb"]:
|
|
if cmds.objExists(name + ":" + finger + "_l_ik_anim"):
|
|
cmds.treeView(self.widgets[name + "_treeViewWidget"], e=True, addItem = (finger + "_l_poleVector", "L FINGER IK CONTROLS"), hb = True)
|
|
|
|
if cmds.objExists(name + ":" + "l_global_ik_anim"):
|
|
cmds.treeView(self.widgets[name + "_treeViewWidget"], e=True, addItem = ("l_global_ik_anim", "L FINGER IK CONTROLS"), hb = True)
|
|
|
|
|
|
#RIGHT FINGERS
|
|
lFingerControls = cmds.treeView(self.widgets[name + "_treeViewWidget"], e=True, addItem = ("RIGHT FINGER CONTROLS", "RIG CONTROLS"), hb = False)
|
|
cmds.treeView(self.widgets[name + "_treeViewWidget"], e=True, ff = ["RIGHT FINGER CONTROLS", 1], expandItem = ["RIGHT FINGER CONTROLS", False],tc = ["RIGHT FINGER CONTROLS", self.orange[0], self.orange[1], self.orange[2]], labelBackgroundColor = ["RIGHT FINGER CONTROLS", .4, .4, .4], bti = [["RIGHT FINGER CONTROLS", 1, "S"], ["RIGHT FINGER CONTROLS", 2, "V"]])
|
|
|
|
cmds.treeView(self.widgets[name + "_treeViewWidget"], e=True, addItem = ("R FINGER FK CONTROLS", "RIGHT FINGER CONTROLS"), hb = False)
|
|
cmds.treeView(self.widgets[name + "_treeViewWidget"], e=True, ff = ["R FINGER FK CONTROLS", 2], tc = ["R FINGER FK CONTROLS", self.blue[0], self.blue[1], self.blue[2]], expandItem = ["R FINGER FK CONTROLS", False], bti = [["R FINGER FK CONTROLS", 1, "S"], ["R FINGER FK CONTROLS", 2, "V"]])
|
|
|
|
for finger in ["index", "middle", "ring", "pinky", "thumb"]:
|
|
|
|
cmds.treeView(self.widgets[name + "_treeViewWidget"], e=True, addItem = ("R_" + finger + "_FK", "R FINGER FK CONTROLS"), hb = False)
|
|
cmds.treeView(self.widgets[name + "_treeViewWidget"], e=True, ff = ["R_" + finger + "_FK", 2], tc = ["R_" + finger + "_FK", self.blue[0], self.blue[1], self.blue[2]], bti = [["R_" + finger + "_FK", 1, "S"], ["R_" + finger + "_FK", 2, "V"]])
|
|
|
|
if cmds.objExists(name + ":" + finger + "_metacarpal_ctrl_r"):
|
|
cmds.treeView(self.widgets[name + "_treeViewWidget"], e=True, addItem = (finger + "_metacarpal_ctrl_r", "R_" + finger + "_FK"), hb = True)
|
|
|
|
if cmds.objExists(name + ":" + finger + "_finger_fk_ctrl_1_r"):
|
|
cmds.treeView(self.widgets[name + "_treeViewWidget"], e=True, addItem = (finger + "_finger_fk_ctrl_1_r", "R_" + finger + "_FK"), hb = True)
|
|
|
|
if cmds.objExists(name + ":" + finger + "_finger_fk_ctrl_2_r"):
|
|
cmds.treeView(self.widgets[name + "_treeViewWidget"], e=True, addItem = (finger + "_finger_fk_ctrl_2_r", "R_" + finger + "_FK"), hb = True)
|
|
|
|
if cmds.objExists(name + ":" + finger + "_finger_fk_ctrl_3_r"):
|
|
cmds.treeView(self.widgets[name + "_treeViewWidget"], e=True, addItem = (finger + "_finger_fk_ctrl_3_r", "R_" + finger + "_FK"), hb = True)
|
|
|
|
cmds.treeView(self.widgets[name + "_treeViewWidget"], e=True, addItem = ("R FINGER IK CONTROLS", "RIGHT FINGER CONTROLS"), hb = False)
|
|
cmds.treeView(self.widgets[name + "_treeViewWidget"], e=True, ff = ["R FINGER IK CONTROLS", 2], tc = ["R FINGER IK CONTROLS", self.blue[0], self.blue[1], self.blue[2]], expandItem = ["R FINGER IK CONTROLS", False], bti = [["R FINGER IK CONTROLS", 1, "S"], ["R FINGER IK CONTROLS", 2, "V"]])
|
|
|
|
|
|
for finger in ["index", "middle", "ring", "pinky", "thumb"]:
|
|
if cmds.objExists(name + ":" + finger + "_r_ik_anim"):
|
|
cmds.treeView(self.widgets[name + "_treeViewWidget"], e=True, addItem = (finger + "_r_ik_anim", "R FINGER IK CONTROLS"), hb = True)
|
|
|
|
for finger in ["index", "middle", "ring", "pinky", "thumb"]:
|
|
if cmds.objExists(name + ":" + finger + "_r_ik_anim"):
|
|
cmds.treeView(self.widgets[name + "_treeViewWidget"], e=True, addItem = (finger + "_r_poleVector", "R FINGER IK CONTROLS"), hb = True)
|
|
|
|
if cmds.objExists(name + ":" + "r_global_ik_anim"):
|
|
cmds.treeView(self.widgets[name + "_treeViewWidget"], e=True, addItem = ("r_global_ik_anim", "R FINGER IK CONTROLS"), hb = True)
|
|
|
|
|
|
#LEFT LEG
|
|
lLegControls = cmds.treeView(self.widgets[name + "_treeViewWidget"], e=True, addItem = ("LEFT LEG CONTROLS", "RIG CONTROLS"), hb = False)
|
|
cmds.treeView(self.widgets[name + "_treeViewWidget"], e=True, ff = ["LEFT LEG CONTROLS", 1], expandItem = ["LEFT LEG CONTROLS", False],tc = ["LEFT LEG CONTROLS", self.orange[0], self.orange[1], self.orange[2]], labelBackgroundColor = ["LEFT LEG CONTROLS", .3, .3, .3], bti = [["LEFT LEG CONTROLS", 1, "S"], ["LEFT LEG CONTROLS", 2, "V"]])
|
|
|
|
cmds.treeView(self.widgets[name + "_treeViewWidget"], e=True, addItem = ("L LEG FK CONTROLS", "LEFT LEG CONTROLS"), hb = False)
|
|
cmds.treeView(self.widgets[name + "_treeViewWidget"], e=True, ff = ["L LEG FK CONTROLS", 2], tc = ["L LEG FK CONTROLS", self.blue[0], self.blue[1], self.blue[2]], bti = [["L LEG FK CONTROLS", 1, "S"], ["L LEG FK CONTROLS", 2, "V"]])
|
|
|
|
cmds.treeView(self.widgets[name + "_treeViewWidget"], e=True, addItem = ("fk_thigh_l_anim", "L LEG FK CONTROLS"), hb = True)
|
|
cmds.treeView(self.widgets[name + "_treeViewWidget"], e=True, addItem = ("fk_calf_l_anim", "L LEG FK CONTROLS"), hb = True)
|
|
cmds.treeView(self.widgets[name + "_treeViewWidget"], e=True, addItem = ("fk_foot_l_anim", "L LEG FK CONTROLS"), hb = True)
|
|
|
|
if cmds.objExists(name + ":" + "fk_ball_l_anim"):
|
|
cmds.treeView(self.widgets[name + "_treeViewWidget"], e=True, addItem = ("fk_ball_l_anim", "L LEG FK CONTROLS"), hb = True)
|
|
|
|
|
|
cmds.treeView(self.widgets[name + "_treeViewWidget"], e=True, addItem = ("L LEG IK CONTROLS", "LEFT LEG CONTROLS"), hb = False)
|
|
cmds.treeView(self.widgets[name + "_treeViewWidget"], e=True, ff = ["L LEG IK CONTROLS", 2], tc = ["L LEG IK CONTROLS", self.blue[0], self.blue[1], self.blue[2]], bti = [["L LEG IK CONTROLS", 1, "S"], ["L LEG IK CONTROLS", 2, "V"]])
|
|
|
|
cmds.treeView(self.widgets[name + "_treeViewWidget"], e=True, addItem = ("ik_foot_anim_l", "L LEG IK CONTROLS"), hb = True)
|
|
cmds.treeView(self.widgets[name + "_treeViewWidget"], e=True, addItem = ("heel_ctrl_l", "L LEG IK CONTROLS"), hb = True)
|
|
cmds.treeView(self.widgets[name + "_treeViewWidget"], e=True, addItem = ("toe_wiggle_ctrl_l", "L LEG IK CONTROLS"), hb = True)
|
|
cmds.treeView(self.widgets[name + "_treeViewWidget"], e=True, addItem = ("toe_tip_ctrl_l", "L LEG IK CONTROLS"), hb = True)
|
|
|
|
|
|
|
|
#RIGHT LEG
|
|
rLegControls = cmds.treeView(self.widgets[name + "_treeViewWidget"], e=True, addItem = ("RIGHT LEG CONTROLS", "RIG CONTROLS"), hb = False)
|
|
cmds.treeView(self.widgets[name + "_treeViewWidget"], e=True, ff = ["RIGHT LEG CONTROLS", 1], expandItem = ["RIGHT LEG CONTROLS", False],tc = ["RIGHT LEG CONTROLS", self.orange[0], self.orange[1], self.orange[2]], labelBackgroundColor = ["RIGHT LEG CONTROLS", .4, .4, .4], bti = [["RIGHT LEG CONTROLS", 1, "S"], ["RIGHT LEG CONTROLS", 2, "V"]])
|
|
|
|
cmds.treeView(self.widgets[name + "_treeViewWidget"], e=True, addItem = ("R LEG FK CONTROLS", "RIGHT LEG CONTROLS"), hb = False)
|
|
cmds.treeView(self.widgets[name + "_treeViewWidget"], e=True, ff = ["R LEG FK CONTROLS", 2], tc = ["R LEG FK CONTROLS", self.blue[0], self.blue[1], self.blue[2]], bti = [["R LEG FK CONTROLS", 1, "S"], ["R LEG FK CONTROLS", 2, "V"]])
|
|
|
|
cmds.treeView(self.widgets[name + "_treeViewWidget"], e=True, addItem = ("fk_thigh_r_anim", "R LEG FK CONTROLS"), hb = True)
|
|
cmds.treeView(self.widgets[name + "_treeViewWidget"], e=True, addItem = ("fk_calf_r_anim", "R LEG FK CONTROLS"), hb = True)
|
|
cmds.treeView(self.widgets[name + "_treeViewWidget"], e=True, addItem = ("fk_foot_r_anim", "R LEG FK CONTROLS"), hb = True)
|
|
|
|
if cmds.objExists(name + ":" + "fk_ball_r_anim"):
|
|
cmds.treeView(self.widgets[name + "_treeViewWidget"], e=True, addItem = ("fk_ball_r_anim", "R LEG FK CONTROLS"), hb = True)
|
|
|
|
|
|
cmds.treeView(self.widgets[name + "_treeViewWidget"], e=True, addItem = ("R LEG IK CONTROLS", "RIGHT LEG CONTROLS"), hb = False)
|
|
cmds.treeView(self.widgets[name + "_treeViewWidget"], e=True, ff = ["R LEG IK CONTROLS", 2], tc = ["R LEG IK CONTROLS", self.blue[0], self.blue[1], self.blue[2]], bti = [["R LEG IK CONTROLS", 1, "S"], ["R LEG IK CONTROLS", 2, "V"]])
|
|
|
|
cmds.treeView(self.widgets[name + "_treeViewWidget"], e=True, addItem = ("ik_foot_anim_r", "R LEG IK CONTROLS"), hb = True)
|
|
cmds.treeView(self.widgets[name + "_treeViewWidget"], e=True, addItem = ("heel_ctrl_r", "R LEG IK CONTROLS"), hb = True)
|
|
cmds.treeView(self.widgets[name + "_treeViewWidget"], e=True, addItem = ("toe_wiggle_ctrl_r", "R LEG IK CONTROLS"), hb = True)
|
|
cmds.treeView(self.widgets[name + "_treeViewWidget"], e=True, addItem = ("toe_tip_ctrl_r", "R LEG IK CONTROLS"), hb = True)
|
|
|
|
|
|
#LEFT TOES
|
|
lToeControls = cmds.treeView(self.widgets[name + "_treeViewWidget"], e=True, addItem = ("LEFT TOE CONTROLS", "RIG CONTROLS"), hb = False)
|
|
cmds.treeView(self.widgets[name + "_treeViewWidget"], e=True, ff = ["LEFT TOE CONTROLS", 1], expandItem = ["LEFT TOE CONTROLS", False],tc = ["LEFT TOE CONTROLS", self.orange[0], self.orange[1], self.orange[2]], labelBackgroundColor = ["LEFT TOE CONTROLS", .3, .3, .3], bti = [["LEFT TOE CONTROLS", 1, "S"], ["LEFT TOE CONTROLS", 2, "V"]])
|
|
|
|
cmds.treeView(self.widgets[name + "_treeViewWidget"], e=True, addItem = ("L TOE FK CONTROLS", "LEFT TOE CONTROLS"), hb = False)
|
|
cmds.treeView(self.widgets[name + "_treeViewWidget"], e=True, ff = ["L TOE FK CONTROLS", 2], tc = ["L TOE FK CONTROLS", self.blue[0], self.blue[1], self.blue[2]], bti = [["L TOE FK CONTROLS", 1, "S"], ["L TOE FK CONTROLS", 2, "V"]])
|
|
|
|
for toe in ["index", "middle", "ring", "pinky", "bigtoe"]:
|
|
|
|
if cmds.objExists(name + ":" + toe + "_metatarsal_ctrl_l"):
|
|
cmds.treeView(self.widgets[name + "_treeViewWidget"], e=True, addItem = (toe + "_metatarsal_ctrl_l", "L TOE FK CONTROLS"), hb = True)
|
|
|
|
if cmds.objExists(name + ":" + toe + "toe_fk_ctrl_1_l"):
|
|
cmds.treeView(self.widgets[name + "_treeViewWidget"], e=True, addItem = (toe + "toe_fk_ctrl_1_l", "L TOE FK CONTROLS"), hb = True)
|
|
|
|
if cmds.objExists(name + ":" + toe + "toe_fk_ctrl_2_l"):
|
|
cmds.treeView(self.widgets[name + "_treeViewWidget"], e=True, addItem = (toe + "toe_fk_ctrl_2_l", "L TOE FK CONTROLS"), hb = True)
|
|
|
|
cmds.treeView(self.widgets[name + "_treeViewWidget"], e=True, addItem = ("L TOE IK CONTROLS", "LEFT TOE CONTROLS"), hb = False)
|
|
cmds.treeView(self.widgets[name + "_treeViewWidget"], e=True, ff = ["L TOE IK CONTROLS", 2], tc = ["L TOE IK CONTROLS", self.blue[0], self.blue[1], self.blue[2]], bti = [["L TOE IK CONTROLS", 1, "S"], ["L TOE IK CONTROLS", 2, "V"]])
|
|
|
|
for toe in ["index", "middle", "ring", "pinky", "bigtoe"]:
|
|
if cmds.objExists(name + ":" + toe + "_ik_ctrl_l"):
|
|
cmds.treeView(self.widgets[name + "_treeViewWidget"], e=True, addItem = (toe + "_ik_ctrl_l", "L TOE IK CONTROLS"), hb = True)
|
|
|
|
if cmds.objExists(name + ":" + "ik_global_ctrl_l"):
|
|
cmds.treeView(self.widgets[name + "_treeViewWidget"], e=True, addItem = ("ik_global_ctrl_l", "L TOE IK CONTROLS"), hb = True)
|
|
|
|
|
|
#RIGHT TOES
|
|
lToeControls = cmds.treeView(self.widgets[name + "_treeViewWidget"], e=True, addItem = ("RIGHT TOE CONTROLS", "RIG CONTROLS"), hb = False)
|
|
cmds.treeView(self.widgets[name + "_treeViewWidget"], e=True, ff = ["RIGHT TOE CONTROLS", 1], expandItem = ["RIGHT TOE CONTROLS", False],tc = ["RIGHT TOE CONTROLS", self.orange[0], self.orange[1], self.orange[2]], labelBackgroundColor = ["RIGHT TOE CONTROLS", .4, .4, .4], bti = [["RIGHT TOE CONTROLS", 1, "S"], ["RIGHT TOE CONTROLS", 2, "V"]])
|
|
|
|
cmds.treeView(self.widgets[name + "_treeViewWidget"], e=True, addItem = ("R TOE FK CONTROLS", "RIGHT TOE CONTROLS"), hb = False)
|
|
cmds.treeView(self.widgets[name + "_treeViewWidget"], e=True, ff = ["R TOE FK CONTROLS", 2], tc = ["R TOE FK CONTROLS", self.blue[0], self.blue[1], self.blue[2]], bti = [["R TOE FK CONTROLS", 1, "S"], ["R TOE FK CONTROLS", 2, "V"]])
|
|
|
|
for toe in ["index", "middle", "ring", "pinky", "bigtoe"]:
|
|
|
|
if cmds.objExists(name + ":" + toe + "_metatarsal_ctrl_r"):
|
|
cmds.treeView(self.widgets[name + "_treeViewWidget"], e=True, addItem = (toe + "_metatarsal_ctrl_r", "R TOE FK CONTROLS"), hb = True)
|
|
|
|
if cmds.objExists(name + ":" + toe + "toe_fk_ctrl_1_r"):
|
|
cmds.treeView(self.widgets[name + "_treeViewWidget"], e=True, addItem = (toe + "toe_fk_ctrl_1_r", "R TOE FK CONTROLS"), hb = True)
|
|
|
|
if cmds.objExists(name + ":" + toe + "toe_fk_ctrl_2_r"):
|
|
cmds.treeView(self.widgets[name + "_treeViewWidget"], e=True, addItem = (toe + "toe_fk_ctrl_2_r", "R TOE FK CONTROLS"), hb = True)
|
|
|
|
cmds.treeView(self.widgets[name + "_treeViewWidget"], e=True, addItem = ("R TOE IK CONTROLS", "RIGHT TOE CONTROLS"), hb = False)
|
|
cmds.treeView(self.widgets[name + "_treeViewWidget"], e=True, ff = ["R TOE IK CONTROLS", 2], tc = ["R TOE IK CONTROLS", self.blue[0], self.blue[1], self.blue[2]], bti = [["R TOE IK CONTROLS", 1, "S"], ["R TOE IK CONTROLS", 2, "V"]])
|
|
|
|
for toe in ["index", "middle", "ring", "pinky", "bigtoe"]:
|
|
if cmds.objExists(name + ":" + toe + "_ik_ctrl_r"):
|
|
cmds.treeView(self.widgets[name + "_treeViewWidget"], e=True, addItem = (toe + "_ik_ctrl_r", "R TOE IK CONTROLS"), hb = True)
|
|
|
|
if cmds.objExists(name + ":" + "ik_global_ctrl_r"):
|
|
cmds.treeView(self.widgets[name + "_treeViewWidget"], e=True, addItem = ("ik_global_ctrl_r", "R TOE IK CONTROLS"), hb = True)
|
|
|
|
|
|
|
|
#CUSTOM JOINTS
|
|
cmds.treeView(self.widgets[name + "_treeViewWidget"], e=True, addItem = ("CUSTOM LEAF CONTROLS", "RIG CONTROLS"), hb = False)
|
|
cmds.treeView(self.widgets[name + "_treeViewWidget"], e=True, ff = ["CUSTOM LEAF CONTROLS", 1], expandItem = ["CUSTOM LEAF CONTROLS", False],tc = ["CUSTOM LEAF CONTROLS", self.orange[0], self.orange[1], self.orange[2]], labelBackgroundColor = ["CUSTOM LEAF CONTROLS", .3, .3, .3], bti = [["CUSTOM LEAF CONTROLS", 1, "S"], ["CUSTOM LEAF CONTROLS", 2, "V"]])
|
|
|
|
cmds.treeView(self.widgets[name + "_treeViewWidget"], e=True, addItem = ("CUSTOM JIGGLE CONTROLS", "RIG CONTROLS"), hb = False)
|
|
cmds.treeView(self.widgets[name + "_treeViewWidget"], e=True, ff = ["CUSTOM JIGGLE CONTROLS", 1], expandItem = ["CUSTOM JIGGLE CONTROLS", False],tc = ["CUSTOM JIGGLE CONTROLS", self.orange[0], self.orange[1], self.orange[2]], labelBackgroundColor = ["CUSTOM JIGGLE CONTROLS", .4, .4, .4], bti = [["CUSTOM JIGGLE CONTROLS", 1, "S"], ["CUSTOM JIGGLE CONTROLS", 2, "V"]])
|
|
|
|
cmds.treeView(self.widgets[name + "_treeViewWidget"], e=True, addItem = ("CUSTOM CHAIN CONTROLS", "RIG CONTROLS"), hb = False)
|
|
cmds.treeView(self.widgets[name + "_treeViewWidget"], e=True, ff = ["CUSTOM CHAIN CONTROLS", 1], expandItem = ["CUSTOM CHAIN CONTROLS", False],tc = ["CUSTOM CHAIN CONTROLS", self.orange[0], self.orange[1], self.orange[2]], labelBackgroundColor = ["CUSTOM CHAIN CONTROLS", .3, .3, .3], bti = [["CUSTOM CHAIN CONTROLS", 1, "S"], ["CUSTOM CHAIN CONTROLS", 2, "V"]])
|
|
|
|
|
|
|
|
|
|
customJoints = []
|
|
attrs = cmds.listAttr(name + ":" + "Skeleton_Settings")
|
|
for attr in attrs:
|
|
if attr.find("extraJoint") == 0:
|
|
customJoints.append(attr)
|
|
|
|
customJoints = sorted(customJoints)
|
|
|
|
for joint in customJoints:
|
|
attribute = cmds.getAttr(name + ":" + "Skeleton_Settings." + joint, asString = True)
|
|
jointType = attribute.partition("/")[2].partition("/")[0]
|
|
label = attribute.rpartition("/")[2]
|
|
|
|
if jointType == "leaf":
|
|
label = label.partition(" (")[0]
|
|
cmds.treeView(self.widgets[name + "_treeViewWidget"], e=True, addItem = (label + "_anim", "CUSTOM LEAF CONTROLS"), hb = True)
|
|
|
|
if jointType == "jiggle":
|
|
cmds.treeView(self.widgets[name + "_treeViewWidget"], e=True, addItem = (label + "_anim", "CUSTOM JIGGLE CONTROLS"), hb = True)
|
|
|
|
if jointType == "chain" or jointType == "dynamic":
|
|
numJointsInChain = label.partition("(")[2].partition(")")[0]
|
|
label = label.partition(" (")[0]
|
|
|
|
cmds.treeView(self.widgets[name + "_treeViewWidget"], e=True, addItem = (label + " CONTROLS", "CUSTOM CHAIN CONTROLS"), hb = False)
|
|
cmds.treeView(self.widgets[name + "_treeViewWidget"], e=True, ff = [label + " CONTROLS", 1], expandItem = [label + " CONTROLS", False],tc = [label + " CONTROLS", self.orange[0], self.orange[1], self.orange[2]], labelBackgroundColor = [label + " CONTROLS", .3, .3, .3])
|
|
|
|
cmds.treeView(self.widgets[name + "_treeViewWidget"], e=True, addItem = (label + " FK CONTROLS", label + " CONTROLS"), hb = False)
|
|
cmds.treeView(self.widgets[name + "_treeViewWidget"], e=True, ff = [label + " FK CONTROLS", 2], tc = [label + " FK CONTROLS", self.blue[0], self.blue[1], self.blue[2]], bti = [[label + " FK CONTROLS", 1, "S"], [label + " FK CONTROLS", 2, "V"]])
|
|
|
|
cmds.treeView(self.widgets[name + "_treeViewWidget"], e=True, addItem = (label + " IK CONTROLS", label + " CONTROLS"), hb = False)
|
|
cmds.treeView(self.widgets[name + "_treeViewWidget"], e=True, ff = [label + " IK CONTROLS", 2], tc = [label + " IK CONTROLS", self.blue[0], self.blue[1], self.blue[2]], bti = [[label + " IK CONTROLS", 1, "S"], [label + " IK CONTROLS", 2, "V"]])
|
|
|
|
cmds.treeView(self.widgets[name + "_treeViewWidget"], e=True, addItem = (label + " DYNAMIC CONTROLS", label + " CONTROLS"), hb = False)
|
|
cmds.treeView(self.widgets[name + "_treeViewWidget"], e=True, ff = [label + " DYNAMIC CONTROLS", 2], tc = [label + " DYNAMIC CONTROLS", self.blue[0], self.blue[1], self.blue[2]], bti = [[label + " DYNAMIC CONTROLS", 1, "S"], [label + " DYNAMIC CONTROLS", 2, "V"]])
|
|
|
|
|
|
|
|
for i in range(int(numJointsInChain) + 1):
|
|
if cmds.objExists(name + ":" + "fk_" + label + "_0" + str(i) + "_anim"):
|
|
cmds.treeView(self.widgets[name + "_treeViewWidget"], e=True, addItem = ("fk_" + label + "_0" + str(i) + "_anim", label + " FK CONTROLS"), hb = True)
|
|
|
|
#ik controls
|
|
cmds.select("*:" + label + "_ik_*_anim")
|
|
selection = cmds.ls(sl = True)
|
|
for each in selection:
|
|
niceName = each.partition(":")[2]
|
|
try:
|
|
cmds.treeView(self.widgets[name + "_treeViewWidget"], e=True, addItem = (niceName, label + " IK CONTROLS"), hb = True)
|
|
except:
|
|
pass
|
|
|
|
|
|
for i in range(int(numJointsInChain)):
|
|
if cmds.objExists(name + ":" + label + "_cv_" + str(i) + "_anim"):
|
|
cmds.treeView(self.widgets[name + "_treeViewWidget"], e=True, addItem = (label + "_cv_" + str(i) + "_anim", label + " IK CONTROLS"), hb = True)
|
|
|
|
#dynamic controls
|
|
cmds.treeView(self.widgets[name + "_treeViewWidget"], e=True, addItem = (label + "_dyn_anim", label + " DYNAMIC CONTROLS"), hb = True)
|
|
|
|
|
|
#expand
|
|
cmds.treeView(self.widgets[name + "_treeViewWidget"], e=True, expandItem = ["RIG CONTROLS", True])
|
|
|
|
|
|
# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
|
|
# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
|
|
# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
|
|
# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
|
|
# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
|
|
def createRigSettings(self, name, layout, *args):
|
|
|
|
#create a columnLayout that is a child of the passed in layout
|
|
self.widgets[name + "_rigSettingsMainColumn"] = cmds.columnLayout(parent = layout)
|
|
self.formsToHide.append(self.widgets[name + "_rigSettingsMainColumn"])
|
|
|
|
#First create left and right arm frame layouts with all of the settings for the arms
|
|
#rig mode, fk orientation space, ik stretch settings, arm roll settings
|
|
|
|
|
|
#LEFT ARM
|
|
self.widgets[name + "_rigSettings_leftArmFrame"] = cmds.frameLayout(label = "Left Arm", w = 400, h = 30, parent = self.widgets[name + "_rigSettingsMainColumn"], collapse = True, collapsable = True, borderStyle = "in", cc = partial(self.collapseCommand, name, "LeftArmSettings"), ec = partial(self.expandCommand, name, "LeftArmSettings"))
|
|
self.widgets[name + "_rigSettings_leftArmForm"] = cmds.formLayout(w = 400, h = 300, parent = self.widgets[name + "_rigSettings_leftArmFrame"])
|
|
|
|
#rig mode
|
|
text1 = cmds.text(label = "Rig Mode:", font = "boldLabelFont")
|
|
self.widgets[name + "rigSettings_leftArmMode_Collection"] = cmds.iconTextRadioCollection()
|
|
self.widgets[name + "_rigSettings_leftArmFkModeButton"] = cmds.iconTextRadioButton(cl = self.widgets[name + "rigSettings_leftArmMode_Collection"], image = self.mayaToolsDir + "/General/Icons/ART/rigSettingsFkMode_off.bmp",selectionImage = self.mayaToolsDir + "/General/Icons/ART/rigSettingsFkMode_on.bmp", w = 180, h = 50, onc = partial(self.switchArmMode, name, "FK", "l"))
|
|
self.widgets[name + "_rigSettings_leftArmIkModeButton"] = cmds.iconTextRadioButton(cl = self.widgets[name + "rigSettings_leftArmMode_Collection"], image = self.mayaToolsDir + "/General/Icons/ART/rigSettingsIkMode_off.bmp",selectionImage = self.mayaToolsDir + "/General/Icons/ART/rigSettingsIkMode_on.bmp",w = 180, h = 50, onc = partial(self.switchArmMode, name, "IK", "l"))
|
|
|
|
mode = cmds.getAttr(name + ":Rig_Settings.lArmMode")
|
|
|
|
cmds.formLayout(self.widgets[name + "_rigSettings_leftArmForm"], edit = True, af = [(text1, "top", 5),(text1, "left", 10)])
|
|
cmds.formLayout(self.widgets[name + "_rigSettings_leftArmForm"], edit = True, af = [(self.widgets[name + "_rigSettings_leftArmFkModeButton"], "top", 25),(self.widgets[name + "_rigSettings_leftArmFkModeButton"], "left", 10)])
|
|
cmds.formLayout(self.widgets[name + "_rigSettings_leftArmForm"], edit = True, af = [(self.widgets[name + "_rigSettings_leftArmIkModeButton"], "top", 25),(self.widgets[name + "_rigSettings_leftArmIkModeButton"], "right", 20)])
|
|
|
|
if mode == 0:
|
|
cmds.iconTextRadioButton(self.widgets[name + "_rigSettings_leftArmFkModeButton"], edit = True, select = True)
|
|
if mode == 1:
|
|
cmds.iconTextRadioButton(self.widgets[name + "_rigSettings_leftArmIkModeButton"], edit = True, select = True)
|
|
|
|
|
|
#fk orientation space
|
|
text2 = cmds.text(label = "FK Arm Orientation Space:", font = "boldLabelFont")
|
|
self.widgets[name + "rigSettings_leftArmOrient_Collection"] = cmds.iconTextRadioCollection()
|
|
self.widgets[name + "_rigSettings_leftArmFkOrientModeButton"] = cmds.iconTextRadioButton(image = self.mayaToolsDir + "/General/Icons/ART/rigSettingsClav_off.bmp",selectionImage = self.mayaToolsDir + "/General/Icons/ART/rigSettingsClav_on.bmp", w = 115, h = 30, onc = partial(self.switchArmOrientMode, name, 0, "l"))
|
|
self.widgets[name + "_rigSettings_leftArmBodyOrientModeButton"] = cmds.iconTextRadioButton(image = self.mayaToolsDir + "/General/Icons/ART/rigSettingsBody_off.bmp",selectionImage = self.mayaToolsDir + "/General/Icons/ART/rigSettingsBody_on.bmp",w = 115, h = 30, onc = partial(self.switchArmOrientMode, name, 1, "l"))
|
|
self.widgets[name + "_rigSettings_leftArmWorldOrientModeButton"] = cmds.iconTextRadioButton(image = self.mayaToolsDir + "/General/Icons/ART/rigSettingsWorld_off.bmp",selectionImage = self.mayaToolsDir + "/General/Icons/ART/rigSettingsWorld_on.bmp",w = 115, h = 30, onc = partial(self.switchArmOrientMode, name, 2, "l"))
|
|
|
|
|
|
mode = cmds.getAttr(name + ":Rig_Settings.lFkArmOrient")
|
|
|
|
cmds.formLayout(self.widgets[name + "_rigSettings_leftArmForm"], edit = True, af = [(text2, "top", 85),(text2, "left", 10)])
|
|
cmds.formLayout(self.widgets[name + "_rigSettings_leftArmForm"], edit = True, af = [(self.widgets[name + "_rigSettings_leftArmFkOrientModeButton"], "top", 105),(self.widgets[name + "_rigSettings_leftArmFkOrientModeButton"], "left", 10)])
|
|
cmds.formLayout(self.widgets[name + "_rigSettings_leftArmForm"], edit = True, af = [(self.widgets[name + "_rigSettings_leftArmBodyOrientModeButton"], "top", 105),(self.widgets[name + "_rigSettings_leftArmBodyOrientModeButton"], "left", 138)])
|
|
cmds.formLayout(self.widgets[name + "_rigSettings_leftArmForm"], edit = True, af = [(self.widgets[name + "_rigSettings_leftArmWorldOrientModeButton"], "top", 105),(self.widgets[name + "_rigSettings_leftArmWorldOrientModeButton"], "right", 20)])
|
|
|
|
|
|
if mode == 0:
|
|
cmds.iconTextRadioButton(self.widgets[name + "_rigSettings_leftArmFkOrientModeButton"], edit = True, select = True)
|
|
if mode == 1:
|
|
cmds.iconTextRadioButton(self.widgets[name + "_rigSettings_leftArmBodyOrientModeButton"], edit = True, select = True)
|
|
if mode == 2:
|
|
cmds.iconTextRadioButton(self.widgets[name + "_rigSettings_leftArmWorldOrientModeButton"], edit = True, select = True)
|
|
|
|
|
|
#ik stretch settings
|
|
text3 = cmds.text(label = "IK Arm Stretch Settings", font = "boldLabelFont")
|
|
text4 = cmds.text(label = "Stretch")
|
|
text5 = cmds.text(label = "Squash")
|
|
stetchVal = cmds.getAttr(name + ":ik_wrist_l_anim.stretch")
|
|
|
|
try:
|
|
squashVal = cmds.getAttr(name + ":ik_wrist_l_anim.squash")
|
|
except:
|
|
pass
|
|
|
|
try:
|
|
self.widgets[name + "_rigSettings_leftArmIkStretchField"] = cmds.floatField( minValue=0, maxValue=1, value=stetchVal, w = 100)
|
|
except:
|
|
cmds.warning("Left Arm IK stretch above or below the allowed range.")
|
|
|
|
try:
|
|
self.widgets[name + "_rigSettings_leftArmIkStretchBiasField"] = cmds.floatField( minValue=0, maxValue=1, value=squashVal, w = 100 )
|
|
except:
|
|
cmds.warning("Left Arm IK Squash above or below the allowed range.")
|
|
|
|
|
|
cmds.formLayout(self.widgets[name + "_rigSettings_leftArmForm"], edit = True, af = [(text3, "top", 145),(text3, "left", 10)])
|
|
cmds.formLayout(self.widgets[name + "_rigSettings_leftArmForm"], edit = True, af = [(text4, "top", 173),(text4, "left", 10)])
|
|
cmds.formLayout(self.widgets[name + "_rigSettings_leftArmForm"], edit = True, af = [(text5, "top", 173),(text5, "left", 220)])
|
|
|
|
try:
|
|
cmds.formLayout(self.widgets[name + "_rigSettings_leftArmForm"], edit = True, af = [(self.widgets[name + "_rigSettings_leftArmIkStretchField"], "top", 170),(self.widgets[name + "_rigSettings_leftArmIkStretchField"], "left", 55)])
|
|
except:
|
|
pass
|
|
|
|
try:
|
|
cmds.formLayout(self.widgets[name + "_rigSettings_leftArmForm"], edit = True, af = [(self.widgets[name + "_rigSettings_leftArmIkStretchBiasField"], "top", 170),(self.widgets[name + "_rigSettings_leftArmIkStretchBiasField"], "left", 250)])
|
|
except:
|
|
pass
|
|
|
|
try:
|
|
cmds.connectControl( self.widgets[name + "_rigSettings_leftArmIkStretchField"], name + ":ik_wrist_l_anim.stretch" )
|
|
except:
|
|
pass
|
|
|
|
try:
|
|
cmds.connectControl( self.widgets[name + "_rigSettings_leftArmIkStretchBiasField"], name + ":ik_wrist_l_anim.squash")
|
|
except:
|
|
pass
|
|
|
|
#arm roll settings
|
|
text6 = cmds.text(label = "Arm Roll Settings", font = "boldLabelFont")
|
|
text7 = cmds.text(label = "Upper Arm Twist Amount:")
|
|
text8 = cmds.text(label = "Lower Arm Twist Amount:")
|
|
|
|
cmds.formLayout(self.widgets[name + "_rigSettings_leftArmForm"], edit = True, af = [(text6, "top", 200),(text6, "left", 10)])
|
|
cmds.formLayout(self.widgets[name + "_rigSettings_leftArmForm"], edit = True, af = [(text7, "top", 223),(text7, "left", 10)])
|
|
cmds.formLayout(self.widgets[name + "_rigSettings_leftArmForm"], edit = True, af = [(text8, "top", 223),(text8, "left", 220)])
|
|
|
|
if cmds.objExists(name + ":Rig_Settings.lUpperarmTwistAmount"):
|
|
upArmVal = cmds.getAttr(name + ":Rig_Settings.lUpperarmTwistAmount")
|
|
self.widgets[name + "_rigSettings_leftArmUpArmTwistField"] = cmds.floatField( minValue=-1, maxValue=2, value=upArmVal, w = 100)
|
|
cmds.formLayout(self.widgets[name + "_rigSettings_leftArmForm"], edit = True, af = [(self.widgets[name + "_rigSettings_leftArmUpArmTwistField"], "top", 240),(self.widgets[name + "_rigSettings_leftArmUpArmTwistField"], "left", 55)])
|
|
cmds.connectControl( self.widgets[name + "_rigSettings_leftArmUpArmTwistField"], name + ":Rig_Settings.lUpperarmTwistAmount" )
|
|
|
|
text = cmds.text(label = "Twist 1:")
|
|
cmds.formLayout(self.widgets[name + "_rigSettings_leftArmForm"], edit = True, af = [(text, "top", 242),(text, "left", 10)])
|
|
|
|
if cmds.objExists(name + ":Rig_Settings.lUpperarmTwist2Amount"):
|
|
upArmVal = cmds.getAttr(name + ":Rig_Settings.lUpperarmTwist2Amount")
|
|
self.widgets[name + "_rigSettings_leftArmUpArmTwist2Field"] = cmds.floatField( minValue=-1, maxValue=2, value=upArmVal, w = 100)
|
|
cmds.formLayout(self.widgets[name + "_rigSettings_leftArmForm"], edit = True, af = [(self.widgets[name + "_rigSettings_leftArmUpArmTwist2Field"], "top", 260),(self.widgets[name + "_rigSettings_leftArmUpArmTwist2Field"], "left", 55)])
|
|
cmds.connectControl( self.widgets[name + "_rigSettings_leftArmUpArmTwist2Field"], name + ":Rig_Settings.lUpperarmTwist2Amount" )
|
|
|
|
text = cmds.text(label = "Twist 2:")
|
|
cmds.formLayout(self.widgets[name + "_rigSettings_leftArmForm"], edit = True, af = [(text, "top", 262),(text, "left", 10)])
|
|
|
|
if cmds.objExists(name + ":Rig_Settings.lUpperarmTwist3Amount"):
|
|
upArmVal = cmds.getAttr(name + ":Rig_Settings.lUpperarmTwist3Amount")
|
|
self.widgets[name + "_rigSettings_leftArmUpArmTwist3Field"] = cmds.floatField( minValue=-1, maxValue=2, value=upArmVal, w = 100)
|
|
cmds.formLayout(self.widgets[name + "_rigSettings_leftArmForm"], edit = True, af = [(self.widgets[name + "_rigSettings_leftArmUpArmTwist3Field"], "top", 280),(self.widgets[name + "_rigSettings_leftArmUpArmTwist3Field"], "left", 55)])
|
|
cmds.connectControl( self.widgets[name + "_rigSettings_leftArmUpArmTwist3Field"], name + ":Rig_Settings.lUpperarmTwist3Amount" )
|
|
|
|
text = cmds.text(label = "Twist 3:")
|
|
cmds.formLayout(self.widgets[name + "_rigSettings_leftArmForm"], edit = True, af = [(text, "top", 282),(text, "left", 10)])
|
|
|
|
|
|
#lower arm
|
|
if cmds.objExists(name + ":Rig_Settings.lForearmTwistAmount"):
|
|
lowArmVal = cmds.getAttr(name + ":Rig_Settings.lForearmTwistAmount")
|
|
self.widgets[name + "_rigSettings_leftArmLowArmTwistField"] = cmds.floatField( minValue=-1, maxValue=2, value=lowArmVal, w = 100 )
|
|
cmds.formLayout(self.widgets[name + "_rigSettings_leftArmForm"], edit = True, af = [(self.widgets[name + "_rigSettings_leftArmLowArmTwistField"], "top", 240),(self.widgets[name + "_rigSettings_leftArmLowArmTwistField"], "left", 250)])
|
|
cmds.connectControl( self.widgets[name + "_rigSettings_leftArmLowArmTwistField"], name + ":Rig_Settings.lForearmTwistAmount")
|
|
|
|
text = cmds.text(label = "Twist 1:")
|
|
cmds.formLayout(self.widgets[name + "_rigSettings_leftArmForm"], edit = True, af = [(text, "top", 242),(text, "left", 200)])
|
|
|
|
if cmds.objExists(name + ":Rig_Settings.lForearmTwist2Amount"):
|
|
lowArmVal = cmds.getAttr(name + ":Rig_Settings.lForearmTwist2Amount")
|
|
self.widgets[name + "_rigSettings_leftArmLowArmTwist2Field"] = cmds.floatField( minValue=-1, maxValue=2, value=lowArmVal, w = 100)
|
|
cmds.formLayout(self.widgets[name + "_rigSettings_leftArmForm"], edit = True, af = [(self.widgets[name + "_rigSettings_leftArmLowArmTwist2Field"], "top", 260),(self.widgets[name + "_rigSettings_leftArmLowArmTwist2Field"], "left", 250)])
|
|
cmds.connectControl( self.widgets[name + "_rigSettings_leftArmLowArmTwist2Field"], name + ":Rig_Settings.lForearmTwist2Amount" )
|
|
|
|
text = cmds.text(label = "Twist 2:")
|
|
cmds.formLayout(self.widgets[name + "_rigSettings_leftArmForm"], edit = True, af = [(text, "top", 262),(text, "left", 200)])
|
|
|
|
if cmds.objExists(name + ":Rig_Settings.lForearmTwist3Amount"):
|
|
lowArmVal = cmds.getAttr(name + ":Rig_Settings.lForearmTwist3Amount")
|
|
self.widgets[name + "_rigSettings_leftArmLowArmTwist3Field"] = cmds.floatField( minValue=-1, maxValue=2, value=lowArmVal, w = 100)
|
|
cmds.formLayout(self.widgets[name + "_rigSettings_leftArmForm"], edit = True, af = [(self.widgets[name + "_rigSettings_leftArmLowArmTwist3Field"], "top", 280),(self.widgets[name + "_rigSettings_leftArmLowArmTwist3Field"], "left", 250)])
|
|
cmds.connectControl( self.widgets[name + "_rigSettings_leftArmLowArmTwist3Field"], name + ":Rig_Settings.lForearmTwist3Amount" )
|
|
|
|
text = cmds.text(label = "Twist 3:")
|
|
cmds.formLayout(self.widgets[name + "_rigSettings_leftArmForm"], edit = True, af = [(text, "top", 282),(text, "left", 200)])
|
|
|
|
|
|
#create the right click menu for selecting the settings for the left arm
|
|
popupMenu = cmds.popupMenu(b = 3, parent = self.widgets[name + "_rigSettings_leftArmForm"])
|
|
menu = cmds.menuItem(parent = popupMenu, label = "Select Left Arm Rig Settings", c = partial(self.selectRigSettings_Specific, "leftArm"))
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
#RIGHT ARM
|
|
self.widgets[name + "_rigSettings_rightArmFrame"] = cmds.frameLayout(label = "Right Arm", w = 400, h = 30, parent = self.widgets[name + "_rigSettingsMainColumn"], collapse = True, collapsable = True, borderStyle = "in", cc = partial(self.collapseCommand, name, "RightArmSettings"), ec = partial(self.expandCommand, name, "RightArmSettings"))
|
|
self.widgets[name + "_rigSettings_rightArmForm"] = cmds.formLayout(w = 400, h = 300, parent = self.widgets[name + "_rigSettings_rightArmFrame"])
|
|
|
|
#rig mode
|
|
text1 = cmds.text(label = "Rig Mode:", font = "boldLabelFont")
|
|
self.widgets[name + "rigSettings_rightArmMode_Collection"] = cmds.iconTextRadioCollection()
|
|
self.widgets[name + "_rigSettings_rightArmFkModeButton"] = cmds.iconTextRadioButton(image = self.mayaToolsDir + "/General/Icons/ART/rigSettingsFkMode_off.bmp",selectionImage = self.mayaToolsDir + "/General/Icons/ART/rigSettingsFkMode_on.bmp", w = 180, h = 50, onc = partial(self.switchArmMode, name, "FK", "r"))
|
|
self.widgets[name + "_rigSettings_rightArmIkModeButton"] = cmds.iconTextRadioButton(image = self.mayaToolsDir + "/General/Icons/ART/rigSettingsIkMode_off.bmp",selectionImage = self.mayaToolsDir + "/General/Icons/ART/rigSettingsIkMode_on.bmp",w = 180, h = 50, onc = partial(self.switchArmMode, name, "IK", "r"))
|
|
|
|
mode = cmds.getAttr(name + ":Rig_Settings.rArmMode")
|
|
|
|
cmds.formLayout(self.widgets[name + "_rigSettings_rightArmForm"], edit = True, af = [(text1, "top", 5),(text1, "left", 10)])
|
|
cmds.formLayout(self.widgets[name + "_rigSettings_rightArmForm"], edit = True, af = [(self.widgets[name + "_rigSettings_rightArmFkModeButton"], "top", 25),(self.widgets[name + "_rigSettings_rightArmFkModeButton"], "left", 10)])
|
|
cmds.formLayout(self.widgets[name + "_rigSettings_rightArmForm"], edit = True, af = [(self.widgets[name + "_rigSettings_rightArmIkModeButton"], "top", 25),(self.widgets[name + "_rigSettings_rightArmIkModeButton"], "right", 20)])
|
|
|
|
if mode == 0:
|
|
cmds.iconTextRadioButton(self.widgets[name + "_rigSettings_rightArmFkModeButton"], edit = True, select = True)
|
|
if mode == 1:
|
|
cmds.iconTextRadioButton(self.widgets[name + "_rigSettings_rightArmIkModeButton"], edit = True, select = True)
|
|
|
|
|
|
#fk orientation space
|
|
text2 = cmds.text(label = "FK Arm Orientation Space:", font = "boldLabelFont")
|
|
self.widgets[name + "rigSettings_rightArmOrient_Collection"] = cmds.iconTextRadioCollection()
|
|
self.widgets[name + "_rigSettings_rightArmFkOrientModeButton"] = cmds.iconTextRadioButton(image = self.mayaToolsDir + "/General/Icons/ART/rigSettingsClav_off.bmp",selectionImage = self.mayaToolsDir + "/General/Icons/ART/rigSettingsClav_on.bmp", w = 115, h = 30, onc = partial(self.switchArmOrientMode, name, 0, "r"))
|
|
self.widgets[name + "_rigSettings_rightArmBodyOrientModeButton"] = cmds.iconTextRadioButton(image = self.mayaToolsDir + "/General/Icons/ART/rigSettingsBody_off.bmp",selectionImage = self.mayaToolsDir + "/General/Icons/ART/rigSettingsBody_on.bmp",w = 115, h = 30, onc = partial(self.switchArmOrientMode, name, 1, "r"))
|
|
self.widgets[name + "_rigSettings_rightArmWorldOrientModeButton"] = cmds.iconTextRadioButton(image = self.mayaToolsDir + "/General/Icons/ART/rigSettingsWorld_off.bmp",selectionImage = self.mayaToolsDir + "/General/Icons/ART/rigSettingsWorld_on.bmp",w = 115, h = 30, onc = partial(self.switchArmOrientMode, name, 2, "r"))
|
|
|
|
|
|
mode = cmds.getAttr(name + ":Rig_Settings.rFkArmOrient")
|
|
|
|
cmds.formLayout(self.widgets[name + "_rigSettings_rightArmForm"], edit = True, af = [(text2, "top", 85),(text2, "left", 10)])
|
|
cmds.formLayout(self.widgets[name + "_rigSettings_rightArmForm"], edit = True, af = [(self.widgets[name + "_rigSettings_rightArmFkOrientModeButton"], "top", 105),(self.widgets[name + "_rigSettings_rightArmFkOrientModeButton"], "left", 10)])
|
|
cmds.formLayout(self.widgets[name + "_rigSettings_rightArmForm"], edit = True, af = [(self.widgets[name + "_rigSettings_rightArmBodyOrientModeButton"], "top", 105),(self.widgets[name + "_rigSettings_rightArmBodyOrientModeButton"], "left", 138)])
|
|
cmds.formLayout(self.widgets[name + "_rigSettings_rightArmForm"], edit = True, af = [(self.widgets[name + "_rigSettings_rightArmWorldOrientModeButton"], "top", 105),(self.widgets[name + "_rigSettings_rightArmWorldOrientModeButton"], "right", 20)])
|
|
|
|
|
|
if mode == 0:
|
|
cmds.iconTextRadioButton(self.widgets[name + "_rigSettings_rightArmFkOrientModeButton"], edit = True, select = True)
|
|
if mode == 1:
|
|
cmds.iconTextRadioButton(self.widgets[name + "_rigSettings_rightArmBodyOrientModeButton"], edit = True, select = True)
|
|
if mode == 2:
|
|
cmds.iconTextRadioButton(self.widgets[name + "_rigSettings_rightArmWorldOrientModeButton"], edit = True, select = True)
|
|
|
|
|
|
#ik stretch settings
|
|
text3 = cmds.text(label = "IK Arm Stretch Settings", font = "boldLabelFont")
|
|
text4 = cmds.text(label = "Stretch")
|
|
text5 = cmds.text(label = "Squash")
|
|
stetchVal = cmds.getAttr(name + ":ik_wrist_r_anim.stretch")
|
|
|
|
try:
|
|
squashVal = cmds.getAttr(name + ":ik_wrist_r_anim.squash")
|
|
except:
|
|
pass
|
|
|
|
|
|
try:
|
|
self.widgets[name + "_rigSettings_rightArmIkStretchField"] = cmds.floatField( minValue=0, maxValue=1, value=stetchVal, w = 100)
|
|
except:
|
|
cmds.warning("Right Arm IK Stretch above or below the allowed range.")
|
|
|
|
try:
|
|
self.widgets[name + "_rigSettings_rightArmIkStretchBiasField"] = cmds.floatField( minValue=0, maxValue=1, value=squashVal, w = 100 )
|
|
except:
|
|
cmds.warning("Right Arm IK squash above or below the allowed range.")
|
|
|
|
|
|
cmds.formLayout(self.widgets[name + "_rigSettings_rightArmForm"], edit = True, af = [(text3, "top", 145),(text3, "left", 10)])
|
|
cmds.formLayout(self.widgets[name + "_rigSettings_rightArmForm"], edit = True, af = [(text4, "top", 173),(text4, "left", 10)])
|
|
cmds.formLayout(self.widgets[name + "_rigSettings_rightArmForm"], edit = True, af = [(text5, "top", 173),(text5, "left", 220)])
|
|
|
|
try:
|
|
cmds.formLayout(self.widgets[name + "_rigSettings_rightArmForm"], edit = True, af = [(self.widgets[name + "_rigSettings_rightArmIkStretchField"], "top", 170),(self.widgets[name + "_rigSettings_rightArmIkStretchField"], "left", 55)])
|
|
except:
|
|
pass
|
|
|
|
try:
|
|
cmds.formLayout(self.widgets[name + "_rigSettings_rightArmForm"], edit = True, af = [(self.widgets[name + "_rigSettings_rightArmIkStretchBiasField"], "top", 170),(self.widgets[name + "_rigSettings_rightArmIkStretchBiasField"], "left", 250)])
|
|
except:
|
|
pass
|
|
|
|
try:
|
|
cmds.connectControl( self.widgets[name + "_rigSettings_rightArmIkStretchField"], name + ":ik_wrist_r_anim.stretch" )
|
|
except:
|
|
pass
|
|
try:
|
|
cmds.connectControl( self.widgets[name + "_rigSettings_rightArmIkStretchBiasField"], name + ":ik_wrist_r_anim.squash")
|
|
except:
|
|
pass
|
|
|
|
|
|
#arm roll settings
|
|
text6 = cmds.text(label = "Arm Roll Settings", font = "boldLabelFont")
|
|
text7 = cmds.text(label = "Upper Arm Twist Amount:")
|
|
text8 = cmds.text(label = "Lower Arm Twist Amount:")
|
|
cmds.formLayout(self.widgets[name + "_rigSettings_rightArmForm"], edit = True, af = [(text6, "top", 200),(text6, "left", 10)])
|
|
cmds.formLayout(self.widgets[name + "_rigSettings_rightArmForm"], edit = True, af = [(text7, "top", 223),(text7, "left", 10)])
|
|
cmds.formLayout(self.widgets[name + "_rigSettings_rightArmForm"], edit = True, af = [(text8, "top", 223),(text8, "left", 220)])
|
|
|
|
if cmds.objExists(name + ":Rig_Settings.rUpperarmTwistAmount"):
|
|
upArmVal = cmds.getAttr(name + ":Rig_Settings.rUpperarmTwistAmount")
|
|
self.widgets[name + "_rigSettings_rightArmUpArmTwistField"] = cmds.floatField( minValue=-1, maxValue=2, value=upArmVal, w = 100)
|
|
cmds.formLayout(self.widgets[name + "_rigSettings_rightArmForm"], edit = True, af = [(self.widgets[name + "_rigSettings_rightArmUpArmTwistField"], "top", 240),(self.widgets[name + "_rigSettings_rightArmUpArmTwistField"], "left", 55)])
|
|
cmds.connectControl( self.widgets[name + "_rigSettings_rightArmUpArmTwistField"], name + ":Rig_Settings.rUpperarmTwistAmount" )
|
|
|
|
text = cmds.text(label = "Twist 1:")
|
|
cmds.formLayout(self.widgets[name + "_rigSettings_rightArmForm"], edit = True, af = [(text, "top", 242),(text, "left", 10)])
|
|
|
|
if cmds.objExists(name + ":Rig_Settings.rUpperarmTwist2Amount"):
|
|
upArmVal = cmds.getAttr(name + ":Rig_Settings.rUpperarmTwist2Amount")
|
|
self.widgets[name + "_rigSettings_rightArmUpArmTwist2Field"] = cmds.floatField( minValue=-1, maxValue=2, value=upArmVal, w = 100)
|
|
cmds.formLayout(self.widgets[name + "_rigSettings_rightArmForm"], edit = True, af = [(self.widgets[name + "_rigSettings_rightArmUpArmTwist2Field"], "top", 260),(self.widgets[name + "_rigSettings_rightArmUpArmTwist2Field"], "left", 55)])
|
|
cmds.connectControl( self.widgets[name + "_rigSettings_rightArmUpArmTwist2Field"], name + ":Rig_Settings.rUpperarmTwist2Amount" )
|
|
|
|
text = cmds.text(label = "Twist 2:")
|
|
cmds.formLayout(self.widgets[name + "_rigSettings_rightArmForm"], edit = True, af = [(text, "top", 262),(text, "left", 10)])
|
|
|
|
if cmds.objExists(name + ":Rig_Settings.rUpperarmTwist3Amount"):
|
|
upArmVal = cmds.getAttr(name + ":Rig_Settings.rUpperarmTwist3Amount")
|
|
self.widgets[name + "_rigSettings_rightArmUpArmTwist3Field"] = cmds.floatField( minValue=-1, maxValue=2, value=upArmVal, w = 100)
|
|
cmds.formLayout(self.widgets[name + "_rigSettings_rightArmForm"], edit = True, af = [(self.widgets[name + "_rigSettings_rightArmUpArmTwist3Field"], "top", 280),(self.widgets[name + "_rigSettings_rightArmUpArmTwist3Field"], "left", 55)])
|
|
cmds.connectControl( self.widgets[name + "_rigSettings_rightArmUpArmTwist3Field"], name + ":Rig_Settings.rUpperarmTwist3Amount" )
|
|
|
|
text = cmds.text(label = "Twist 3:")
|
|
cmds.formLayout(self.widgets[name + "_rigSettings_rightArmForm"], edit = True, af = [(text, "top", 282),(text, "left", 10)])
|
|
|
|
|
|
#lower arm
|
|
if cmds.objExists(name + ":Rig_Settings.rForearmTwistAmount"):
|
|
lowArmVal = cmds.getAttr(name + ":Rig_Settings.rForearmTwistAmount")
|
|
self.widgets[name + "_rigSettings_rightArmLowArmTwistField"] = cmds.floatField( minValue=-1, maxValue=2, value=lowArmVal, w = 100 )
|
|
cmds.formLayout(self.widgets[name + "_rigSettings_rightArmForm"], edit = True, af = [(self.widgets[name + "_rigSettings_rightArmLowArmTwistField"], "top", 240),(self.widgets[name + "_rigSettings_rightArmLowArmTwistField"], "left", 250)])
|
|
cmds.connectControl( self.widgets[name + "_rigSettings_rightArmLowArmTwistField"], name + ":Rig_Settings.rForearmTwistAmount")
|
|
|
|
text = cmds.text(label = "Twist 1:")
|
|
cmds.formLayout(self.widgets[name + "_rigSettings_rightArmForm"], edit = True, af = [(text, "top", 242),(text, "left", 200)])
|
|
|
|
if cmds.objExists(name + ":Rig_Settings.rForearmTwist2Amount"):
|
|
lowArmVal = cmds.getAttr(name + ":Rig_Settings.rForearmTwist2Amount")
|
|
self.widgets[name + "_rigSettings_rightArmLowArmTwist2Field"] = cmds.floatField( minValue=-1, maxValue=2, value=lowArmVal, w = 100)
|
|
cmds.formLayout(self.widgets[name + "_rigSettings_rightArmForm"], edit = True, af = [(self.widgets[name + "_rigSettings_rightArmLowArmTwist2Field"], "top", 260),(self.widgets[name + "_rigSettings_rightArmLowArmTwist2Field"], "left", 250)])
|
|
cmds.connectControl( self.widgets[name + "_rigSettings_rightArmLowArmTwist2Field"], name + ":Rig_Settings.rForearmTwist2Amount" )
|
|
|
|
text = cmds.text(label = "Twist 2:")
|
|
cmds.formLayout(self.widgets[name + "_rigSettings_rightArmForm"], edit = True, af = [(text, "top", 262),(text, "left", 200)])
|
|
|
|
if cmds.objExists(name + ":Rig_Settings.rForearmTwist3Amount"):
|
|
lowArmVal = cmds.getAttr(name + ":Rig_Settings.rForearmTwist3Amount")
|
|
self.widgets[name + "_rigSettings_rightArmLowArmTwist3Field"] = cmds.floatField( minValue=-1, maxValue=2, value=lowArmVal, w = 100)
|
|
cmds.formLayout(self.widgets[name + "_rigSettings_rightArmForm"], edit = True, af = [(self.widgets[name + "_rigSettings_rightArmLowArmTwist3Field"], "top", 280),(self.widgets[name + "_rigSettings_rightArmLowArmTwist3Field"], "left", 250)])
|
|
cmds.connectControl( self.widgets[name + "_rigSettings_rightArmLowArmTwist3Field"], name + ":Rig_Settings.rForearmTwist3Amount" )
|
|
|
|
text = cmds.text(label = "Twist 3:")
|
|
cmds.formLayout(self.widgets[name + "_rigSettings_rightArmForm"], edit = True, af = [(text, "top", 282),(text, "left", 200)])
|
|
|
|
#create the right click menu for selecting the settings for the left arm
|
|
popupMenu = cmds.popupMenu(b = 3, parent = self.widgets[name + "_rigSettings_rightArmForm"])
|
|
menu = cmds.menuItem(parent = popupMenu, label = "Select Right Arm Rig Settings", c = partial(self.selectRigSettings_Specific, "rightArm"))
|
|
|
|
|
|
|
|
|
|
|
|
|
|
#LEFT LEG
|
|
self.widgets[name + "_rigSettings_leftLegFrame"] = cmds.frameLayout(label = "Left Leg", w = 400, h = 30, parent = self.widgets[name + "_rigSettingsMainColumn"], collapse = True, collapsable = True, borderStyle = "in", cc = partial(self.collapseCommand, name, "LeftLegSettings"), ec = partial(self.expandCommand, name, "LeftLegSettings"))
|
|
self.widgets[name + "_rigSettings_leftLegForm"] = cmds.formLayout(w = 400, h = 300, parent = self.widgets[name + "_rigSettings_leftLegFrame"])
|
|
|
|
#rig mode
|
|
text1 = cmds.text(label = "Rig Mode:", font = "boldLabelFont")
|
|
self.widgets[name + "rigSettings_leftLegMode_Collection"] = cmds.iconTextRadioCollection()
|
|
self.widgets[name + "_rigSettings_leftLegFkModeButton"] = cmds.iconTextRadioButton(image = self.mayaToolsDir + "/General/Icons/ART/rigSettingsFkMode_off.bmp",selectionImage = self.mayaToolsDir + "/General/Icons/ART/rigSettingsFkMode_on.bmp", w = 180, h = 50, onc = partial(self.switchLegMode, name, "FK", "l"))
|
|
self.widgets[name + "_rigSettings_leftLegIkModeButton"] = cmds.iconTextRadioButton(image = self.mayaToolsDir + "/General/Icons/ART/rigSettingsIkMode_off.bmp",selectionImage = self.mayaToolsDir + "/General/Icons/ART/rigSettingsIkMode_on.bmp",w = 180, h = 50, onc = partial(self.switchLegMode, name, "IK", "l"))
|
|
|
|
mode = cmds.getAttr(name + ":Rig_Settings.lLegMode")
|
|
|
|
cmds.formLayout(self.widgets[name + "_rigSettings_leftLegForm"], edit = True, af = [(text1, "top", 5),(text1, "left", 10)])
|
|
cmds.formLayout(self.widgets[name + "_rigSettings_leftLegForm"], edit = True, af = [(self.widgets[name + "_rigSettings_leftLegFkModeButton"], "top", 25),(self.widgets[name + "_rigSettings_leftLegFkModeButton"], "left", 10)])
|
|
cmds.formLayout(self.widgets[name + "_rigSettings_leftLegForm"], edit = True, af = [(self.widgets[name + "_rigSettings_leftLegIkModeButton"], "top", 25),(self.widgets[name + "_rigSettings_leftLegIkModeButton"], "right", 20)])
|
|
|
|
if mode == 0:
|
|
cmds.iconTextRadioButton(self.widgets[name + "_rigSettings_leftLegFkModeButton"], edit = True, select = True)
|
|
if mode == 1:
|
|
cmds.iconTextRadioButton(self.widgets[name + "_rigSettings_leftLegIkModeButton"], edit = True, select = True)
|
|
|
|
|
|
#ik stretch settings
|
|
text3 = cmds.text(label = "IK Leg Stretch Settings", font = "boldLabelFont")
|
|
text4 = cmds.text(label = "Stretch")
|
|
text5 = cmds.text(label = "Squash")
|
|
stetchVal = cmds.getAttr(name + ":ik_foot_anim_l.stretch")
|
|
|
|
try:
|
|
squashVal = cmds.getAttr(name + ":ik_foot_anim_l.squash")
|
|
except:
|
|
pass
|
|
|
|
|
|
try:
|
|
self.widgets[name + "_rigSettings_leftLegIkStretchField"] = cmds.floatField( minValue=0, maxValue=1, value=stetchVal, w = 100)
|
|
except:
|
|
pass
|
|
|
|
try:
|
|
self.widgets[name + "_rigSettings_leftLegIkStretchBiasField"] = cmds.floatField( minValue=0, maxValue=1, value=squashVal, w = 100 )
|
|
except:
|
|
pass
|
|
|
|
cmds.formLayout(self.widgets[name + "_rigSettings_leftLegForm"], edit = True, af = [(text3, "top", 85),(text3, "left", 10)])
|
|
cmds.formLayout(self.widgets[name + "_rigSettings_leftLegForm"], edit = True, af = [(text4, "top", 108),(text4, "left", 10)])
|
|
cmds.formLayout(self.widgets[name + "_rigSettings_leftLegForm"], edit = True, af = [(text5, "top", 108),(text5, "left", 220)])
|
|
|
|
try:
|
|
cmds.formLayout(self.widgets[name + "_rigSettings_leftLegForm"], edit = True, af = [(self.widgets[name + "_rigSettings_leftLegIkStretchField"], "top", 105),(self.widgets[name + "_rigSettings_leftLegIkStretchField"], "left", 55)])
|
|
except:
|
|
pass
|
|
|
|
try:
|
|
cmds.formLayout(self.widgets[name + "_rigSettings_leftLegForm"], edit = True, af = [(self.widgets[name + "_rigSettings_leftLegIkStretchBiasField"], "top", 105),(self.widgets[name + "_rigSettings_leftLegIkStretchBiasField"], "left", 250)])
|
|
except:
|
|
pass
|
|
try:
|
|
cmds.connectControl( self.widgets[name + "_rigSettings_leftLegIkStretchField"], name + ":ik_foot_anim_l.stretch" )
|
|
except:
|
|
pass
|
|
try:
|
|
cmds.connectControl( self.widgets[name + "_rigSettings_leftLegIkStretchBiasField"], name + ":ik_foot_anim_l.squash")
|
|
except:
|
|
pass
|
|
|
|
|
|
#leg roll settings
|
|
text6 = cmds.text(label = "Leg Roll Settings", font = "boldLabelFont")
|
|
text7 = cmds.text(label = "Upper Leg Twist Amount:")
|
|
text8 = cmds.text(label = "Lower Leg Twist Amount:")
|
|
cmds.formLayout(self.widgets[name + "_rigSettings_leftLegForm"], edit = True, af = [(text6, "top", 145),(text6, "left", 10)])
|
|
cmds.formLayout(self.widgets[name + "_rigSettings_leftLegForm"], edit = True, af = [(text7, "top", 173),(text7, "left", 10)])
|
|
cmds.formLayout(self.widgets[name + "_rigSettings_leftLegForm"], edit = True, af = [(text8, "top", 173),(text8, "left", 220)])
|
|
|
|
if cmds.objExists(name + ":Rig_Settings.lThighTwistAmount"):
|
|
upLegVal = cmds.getAttr(name + ":Rig_Settings.lThighTwistAmount")
|
|
self.widgets[name + "_rigSettings_leftLegThighTwistField"] = cmds.floatField( minValue=-1, maxValue=2, value=upLegVal, w = 100)
|
|
cmds.formLayout(self.widgets[name + "_rigSettings_leftLegForm"], edit = True, af = [(self.widgets[name + "_rigSettings_leftLegThighTwistField"], "top", 190),(self.widgets[name + "_rigSettings_leftLegThighTwistField"], "left", 55)])
|
|
cmds.connectControl( self.widgets[name + "_rigSettings_leftLegThighTwistField"], name + ":Rig_Settings.lThighTwistAmount" )
|
|
|
|
text = cmds.text(label = "Twist 1:")
|
|
cmds.formLayout(self.widgets[name + "_rigSettings_leftLegForm"], edit = True, af = [(text, "top", 192),(text, "left", 10)])
|
|
|
|
if cmds.objExists(name + ":Rig_Settings.lThighTwist2Amount"):
|
|
upLegVal = cmds.getAttr(name + ":Rig_Settings.lThighTwist2Amount")
|
|
self.widgets[name + "_rigSettings_leftLegThighTwist2Field"] = cmds.floatField( minValue=-1, maxValue=2, value=upLegVal, w = 100)
|
|
cmds.formLayout(self.widgets[name + "_rigSettings_leftLegForm"], edit = True, af = [(self.widgets[name + "_rigSettings_leftLegThighTwist2Field"], "top", 210),(self.widgets[name + "_rigSettings_leftLegThighTwist2Field"], "left", 55)])
|
|
cmds.connectControl( self.widgets[name + "_rigSettings_leftLegThighTwist2Field"], name + ":Rig_Settings.lThighTwist2Amount" )
|
|
|
|
text = cmds.text(label = "Twist 2:")
|
|
cmds.formLayout(self.widgets[name + "_rigSettings_leftLegForm"], edit = True, af = [(text, "top", 212),(text, "left", 10)])
|
|
|
|
if cmds.objExists(name + ":Rig_Settings.lThighTwist3Amount"):
|
|
upLegVal = cmds.getAttr(name + ":Rig_Settings.lThighTwist3Amount")
|
|
self.widgets[name + "_rigSettings_leftLegThighTwist3Field"] = cmds.floatField( minValue=-1, maxValue=2, value=upLegVal, w = 100)
|
|
cmds.formLayout(self.widgets[name + "_rigSettings_leftLegForm"], edit = True, af = [(self.widgets[name + "_rigSettings_leftLegThighTwist3Field"], "top", 230),(self.widgets[name + "_rigSettings_leftLegThighTwist3Field"], "left", 55)])
|
|
cmds.connectControl( self.widgets[name + "_rigSettings_leftLegThighTwist3Field"], name + ":Rig_Settings.lThighTwist3Amount" )
|
|
|
|
text = cmds.text(label = "Twist 3:")
|
|
cmds.formLayout(self.widgets[name + "_rigSettings_leftLegForm"], edit = True, af = [(text, "top", 232),(text, "left", 10)])
|
|
|
|
|
|
#lower leg
|
|
if cmds.objExists(name + ":Rig_Settings.lCalfTwistAmount"):
|
|
lowLegVal = cmds.getAttr(name + ":Rig_Settings.lCalfTwistAmount")
|
|
self.widgets[name + "_rigSettings_leftLegCalfTwistField"] = cmds.floatField( minValue=-1, maxValue=2, value=lowLegVal, w = 100 )
|
|
cmds.formLayout(self.widgets[name + "_rigSettings_leftLegForm"], edit = True, af = [(self.widgets[name + "_rigSettings_leftLegCalfTwistField"], "top", 190),(self.widgets[name + "_rigSettings_leftLegCalfTwistField"], "left", 250)])
|
|
cmds.connectControl( self.widgets[name + "_rigSettings_leftLegCalfTwistField"], name + ":Rig_Settings.lCalfTwistAmount")
|
|
|
|
text = cmds.text(label = "Twist 1:")
|
|
cmds.formLayout(self.widgets[name + "_rigSettings_leftLegForm"], edit = True, af = [(text, "top", 192),(text, "left", 200)])
|
|
|
|
if cmds.objExists(name + ":Rig_Settings.lCalfTwist2Amount"):
|
|
lowLegVal = cmds.getAttr(name + ":Rig_Settings.lCalfTwist2Amount")
|
|
self.widgets[name + "_rigSettings_leftLegCalfTwist2Field"] = cmds.floatField( minValue=-1, maxValue=2, value=lowLegVal, w = 100)
|
|
cmds.formLayout(self.widgets[name + "_rigSettings_leftLegForm"], edit = True, af = [(self.widgets[name + "_rigSettings_leftLegCalfTwist2Field"], "top", 210),(self.widgets[name + "_rigSettings_leftLegCalfTwist2Field"], "left", 250)])
|
|
cmds.connectControl( self.widgets[name + "_rigSettings_leftLegCalfTwist2Field"], name + ":Rig_Settings.lCalfTwist2Amount" )
|
|
|
|
text = cmds.text(label = "Twist 2:")
|
|
cmds.formLayout(self.widgets[name + "_rigSettings_leftLegForm"], edit = True, af = [(text, "top", 212),(text, "left", 200)])
|
|
|
|
if cmds.objExists(name + ":Rig_Settings.lCalfTwist3Amount"):
|
|
lowLegVal = cmds.getAttr(name + ":Rig_Settings.lCalfTwist3Amount")
|
|
self.widgets[name + "_rigSettings_leftLegCalfTwist3Field"] = cmds.floatField( minValue=-1, maxValue=2, value=lowLegVal, w = 100)
|
|
cmds.formLayout(self.widgets[name + "_rigSettings_leftLegForm"], edit = True, af = [(self.widgets[name + "_rigSettings_leftLegCalfTwist3Field"], "top", 230),(self.widgets[name + "_rigSettings_leftLegCalfTwist3Field"], "left", 250)])
|
|
cmds.connectControl( self.widgets[name + "_rigSettings_leftLegCalfTwist3Field"], name + ":Rig_Settings.lCalfTwist3Amount" )
|
|
|
|
text = cmds.text(label = "Twist 3:")
|
|
cmds.formLayout(self.widgets[name + "_rigSettings_leftLegForm"], edit = True, af = [(text, "top", 232),(text, "left", 200)])
|
|
|
|
#create the right click menu for selecting the settings for the left arm
|
|
popupMenu = cmds.popupMenu(b = 3, parent = self.widgets[name + "_rigSettings_leftLegForm"])
|
|
menu = cmds.menuItem(parent = popupMenu, label = "Select Left Leg Rig Settings", c = partial(self.selectRigSettings_Specific, "leftLeg"))
|
|
|
|
|
|
|
|
|
|
#RIGHT LEG
|
|
self.widgets[name + "_rigSettings_rightLegFrame"] = cmds.frameLayout(label = "Right Leg", w = 400, h = 30, parent = self.widgets[name + "_rigSettingsMainColumn"], collapse = True, collapsable = True, borderStyle = "in", cc = partial(self.collapseCommand, name, "RightLegSettings"), ec = partial(self.expandCommand, name, "RightLegSettings"))
|
|
self.widgets[name + "_rigSettings_rightLegForm"] = cmds.formLayout(w = 400, h = 300, parent = self.widgets[name + "_rigSettings_rightLegFrame"])
|
|
|
|
#rig mode
|
|
text1 = cmds.text(label = "Rig Mode:", font = "boldLabelFont")
|
|
self.widgets[name + "rigSettings_rightLegMode_Collection"] = cmds.iconTextRadioCollection()
|
|
self.widgets[name + "_rigSettings_rightLegFkModeButton"] = cmds.iconTextRadioButton(image = self.mayaToolsDir + "/General/Icons/ART/rigSettingsFkMode_off.bmp",selectionImage = self.mayaToolsDir + "/General/Icons/ART/rigSettingsFkMode_on.bmp", w = 180, h = 50, onc = partial(self.switchLegMode, name, "FK", "r"))
|
|
self.widgets[name + "_rigSettings_rightLegIkModeButton"] = cmds.iconTextRadioButton(image = self.mayaToolsDir + "/General/Icons/ART/rigSettingsIkMode_off.bmp",selectionImage = self.mayaToolsDir + "/General/Icons/ART/rigSettingsIkMode_on.bmp",w = 180, h = 50, onc = partial(self.switchLegMode, name, "IK", "r"))
|
|
|
|
mode = cmds.getAttr(name + ":Rig_Settings.rLegMode")
|
|
|
|
cmds.formLayout(self.widgets[name + "_rigSettings_rightLegForm"], edit = True, af = [(text1, "top", 5),(text1, "left", 10)])
|
|
cmds.formLayout(self.widgets[name + "_rigSettings_rightLegForm"], edit = True, af = [(self.widgets[name + "_rigSettings_rightLegFkModeButton"], "top", 25),(self.widgets[name + "_rigSettings_rightLegFkModeButton"], "left", 10)])
|
|
cmds.formLayout(self.widgets[name + "_rigSettings_rightLegForm"], edit = True, af = [(self.widgets[name + "_rigSettings_rightLegIkModeButton"], "top", 25),(self.widgets[name + "_rigSettings_rightLegIkModeButton"], "right", 20)])
|
|
|
|
if mode == 0:
|
|
cmds.iconTextRadioButton(self.widgets[name + "_rigSettings_rightLegFkModeButton"], edit = True, select = True)
|
|
if mode == 1:
|
|
cmds.iconTextRadioButton(self.widgets[name + "_rigSettings_rightLegIkModeButton"], edit = True, select = True)
|
|
|
|
|
|
#ik stretch settings
|
|
text3 = cmds.text(label = "IK Leg Stretch Settings", font = "boldLabelFont")
|
|
text4 = cmds.text(label = "Stretch")
|
|
text5 = cmds.text(label = "Squash")
|
|
stetchVal = cmds.getAttr(name + ":ik_foot_anim_r.stretch")
|
|
|
|
try:
|
|
squashVal = cmds.getAttr(name + ":ik_foot_anim_r.squash")
|
|
except:
|
|
pass
|
|
|
|
try:
|
|
self.widgets[name + "_rigSettings_rightLegIkStretchField"] = cmds.floatField( minValue=0, maxValue=1, value=stetchVal, w = 100)
|
|
except:
|
|
pass
|
|
|
|
try:
|
|
self.widgets[name + "_rigSettings_rightLegIkStretchBiasField"] = cmds.floatField( minValue=0, maxValue=1, value=squashVal, w = 100 )
|
|
except:
|
|
pass
|
|
|
|
cmds.formLayout(self.widgets[name + "_rigSettings_rightLegForm"], edit = True, af = [(text3, "top", 85),(text3, "left", 10)])
|
|
cmds.formLayout(self.widgets[name + "_rigSettings_rightLegForm"], edit = True, af = [(text4, "top", 108),(text4, "left", 10)])
|
|
cmds.formLayout(self.widgets[name + "_rigSettings_rightLegForm"], edit = True, af = [(text5, "top", 108),(text5, "left", 220)])
|
|
|
|
try:
|
|
cmds.formLayout(self.widgets[name + "_rigSettings_rightLegForm"], edit = True, af = [(self.widgets[name + "_rigSettings_rightLegIkStretchField"], "top", 105),(self.widgets[name + "_rigSettings_rightLegIkStretchField"], "left", 55)])
|
|
except:
|
|
pass
|
|
|
|
try:
|
|
cmds.formLayout(self.widgets[name + "_rigSettings_rightLegForm"], edit = True, af = [(self.widgets[name + "_rigSettings_rightLegIkStretchBiasField"], "top", 105),(self.widgets[name + "_rigSettings_rightLegIkStretchBiasField"], "left", 250)])
|
|
except:
|
|
pass
|
|
|
|
try:
|
|
cmds.connectControl( self.widgets[name + "_rigSettings_rightLegIkStretchField"], name + ":ik_foot_anim_r.stretch" )
|
|
except:
|
|
pass
|
|
try:
|
|
cmds.connectControl( self.widgets[name + "_rigSettings_rightLegIkStretchBiasField"], name + ":ik_foot_anim_r.squash")
|
|
except:
|
|
pass
|
|
|
|
#leg roll settings
|
|
text6 = cmds.text(label = "Leg Roll Settings", font = "boldLabelFont")
|
|
text7 = cmds.text(label = "Upper Leg Twist Amount:")
|
|
text8 = cmds.text(label = "Lower Leg Twist Amount:")
|
|
cmds.formLayout(self.widgets[name + "_rigSettings_rightLegForm"], edit = True, af = [(text6, "top", 145),(text6, "left", 10)])
|
|
cmds.formLayout(self.widgets[name + "_rigSettings_rightLegForm"], edit = True, af = [(text7, "top", 173),(text7, "left", 10)])
|
|
cmds.formLayout(self.widgets[name + "_rigSettings_rightLegForm"], edit = True, af = [(text8, "top", 173),(text8, "left", 220)])
|
|
|
|
|
|
if cmds.objExists(name + ":Rig_Settings.rThighTwistAmount"):
|
|
upLegVal = cmds.getAttr(name + ":Rig_Settings.rThighTwistAmount")
|
|
self.widgets[name + "_rigSettings_rightLegThighTwistField"] = cmds.floatField( minValue=-1, maxValue=2, value=upLegVal, w = 100)
|
|
cmds.formLayout(self.widgets[name + "_rigSettings_rightLegForm"], edit = True, af = [(self.widgets[name + "_rigSettings_rightLegThighTwistField"], "top", 190),(self.widgets[name + "_rigSettings_rightLegThighTwistField"], "left", 55)])
|
|
cmds.connectControl( self.widgets[name + "_rigSettings_rightLegThighTwistField"], name + ":Rig_Settings.rThighTwistAmount" )
|
|
|
|
text = cmds.text(label = "Twist 1:")
|
|
cmds.formLayout(self.widgets[name + "_rigSettings_rightLegForm"], edit = True, af = [(text, "top", 192),(text, "left", 10)])
|
|
|
|
if cmds.objExists(name + ":Rig_Settings.rThighTwist2Amount"):
|
|
upLegVal = cmds.getAttr(name + ":Rig_Settings.rThighTwist2Amount")
|
|
self.widgets[name + "_rigSettings_rightLegThighTwist2Field"] = cmds.floatField( minValue=-1, maxValue=2, value=upLegVal, w = 100)
|
|
cmds.formLayout(self.widgets[name + "_rigSettings_rightLegForm"], edit = True, af = [(self.widgets[name + "_rigSettings_rightLegThighTwist2Field"], "top", 210),(self.widgets[name + "_rigSettings_rightLegThighTwist2Field"], "left", 55)])
|
|
cmds.connectControl( self.widgets[name + "_rigSettings_rightLegThighTwist2Field"], name + ":Rig_Settings.rThighTwist2Amount" )
|
|
|
|
text = cmds.text(label = "Twist 2:")
|
|
cmds.formLayout(self.widgets[name + "_rigSettings_rightLegForm"], edit = True, af = [(text, "top", 212),(text, "left", 10)])
|
|
|
|
if cmds.objExists(name + ":Rig_Settings.rThighTwist3Amount"):
|
|
upLegVal = cmds.getAttr(name + ":Rig_Settings.rThighTwist3Amount")
|
|
self.widgets[name + "_rigSettings_rightLegThighTwist3Field"] = cmds.floatField( minValue=-1, maxValue=2, value=upLegVal, w = 100)
|
|
cmds.formLayout(self.widgets[name + "_rigSettings_rightLegForm"], edit = True, af = [(self.widgets[name + "_rigSettings_rightLegThighTwist3Field"], "top", 230),(self.widgets[name + "_rigSettings_rightLegThighTwist3Field"], "left", 55)])
|
|
cmds.connectControl( self.widgets[name + "_rigSettings_rightLegThighTwist3Field"], name + ":Rig_Settings.rThighTwist3Amount" )
|
|
|
|
text = cmds.text(label = "Twist 3:")
|
|
cmds.formLayout(self.widgets[name + "_rigSettings_rightLegForm"], edit = True, af = [(text, "top", 232),(text, "left", 10)])
|
|
|
|
|
|
#lower leg
|
|
if cmds.objExists(name + ":Rig_Settings.rCalfTwistAmount"):
|
|
lowLegVal = cmds.getAttr(name + ":Rig_Settings.rCalfTwistAmount")
|
|
self.widgets[name + "_rigSettings_rightLegCalfTwistField"] = cmds.floatField( minValue=-1, maxValue=2, value=lowLegVal, w = 100 )
|
|
cmds.formLayout(self.widgets[name + "_rigSettings_rightLegForm"], edit = True, af = [(self.widgets[name + "_rigSettings_rightLegCalfTwistField"], "top", 190),(self.widgets[name + "_rigSettings_rightLegCalfTwistField"], "left", 250)])
|
|
cmds.connectControl( self.widgets[name + "_rigSettings_rightLegCalfTwistField"], name + ":Rig_Settings.rCalfTwistAmount")
|
|
|
|
text = cmds.text(label = "Twist 1:")
|
|
cmds.formLayout(self.widgets[name + "_rigSettings_rightLegForm"], edit = True, af = [(text, "top", 192),(text, "left", 200)])
|
|
|
|
if cmds.objExists(name + ":Rig_Settings.rCalfTwist2Amount"):
|
|
lowLegVal = cmds.getAttr(name + ":Rig_Settings.rCalfTwist2Amount")
|
|
self.widgets[name + "_rigSettings_rightLegCalfTwist2Field"] = cmds.floatField( minValue=-1, maxValue=2, value=lowLegVal, w = 100)
|
|
cmds.formLayout(self.widgets[name + "_rigSettings_rightLegForm"], edit = True, af = [(self.widgets[name + "_rigSettings_rightLegCalfTwist2Field"], "top", 210),(self.widgets[name + "_rigSettings_rightLegCalfTwist2Field"], "left", 250)])
|
|
cmds.connectControl( self.widgets[name + "_rigSettings_rightLegCalfTwist2Field"], name + ":Rig_Settings.rCalfTwist2Amount" )
|
|
|
|
text = cmds.text(label = "Twist 2:")
|
|
cmds.formLayout(self.widgets[name + "_rigSettings_rightLegForm"], edit = True, af = [(text, "top", 212),(text, "left", 200)])
|
|
|
|
if cmds.objExists(name + ":Rig_Settings.rCalfTwist3Amount"):
|
|
lowLegVal = cmds.getAttr(name + ":Rig_Settings.rCalfTwist3Amount")
|
|
self.widgets[name + "_rigSettings_rightLegCalfTwist3Field"] = cmds.floatField( minValue=-1, maxValue=2, value=lowLegVal, w = 100)
|
|
cmds.formLayout(self.widgets[name + "_rigSettings_rightLegForm"], edit = True, af = [(self.widgets[name + "_rigSettings_rightLegCalfTwist3Field"], "top", 230),(self.widgets[name + "_rigSettings_rightLegCalfTwist3Field"], "left", 250)])
|
|
cmds.connectControl( self.widgets[name + "_rigSettings_rightLegCalfTwist3Field"], name + ":Rig_Settings.rCalfTwist3Amount" )
|
|
|
|
text = cmds.text(label = "Twist 3:")
|
|
cmds.formLayout(self.widgets[name + "_rigSettings_rightLegForm"], edit = True, af = [(text, "top", 232),(text, "left", 200)])
|
|
|
|
|
|
#create the right click menu for selecting the settings for the left arm
|
|
popupMenu = cmds.popupMenu(b = 3, parent = self.widgets[name + "_rigSettings_rightLegForm"])
|
|
menu = cmds.menuItem(parent = popupMenu, label = "Select Right Leg Rig Settings", c = partial(self.selectRigSettings_Specific, "rightLeg"))
|
|
|
|
|
|
|
|
#SPINE SETTINGS
|
|
if cmds.objExists(name + ":chest_ik_anim"):
|
|
self.widgets[name + "_rigSettings_spineFrame"] = cmds.frameLayout(label = "Spine", w = 400, h = 30, parent = self.widgets[name + "_rigSettingsMainColumn"], collapse = True, collapsable = True, borderStyle = "in", cc = partial(self.collapseCommand, name, "SpineSettings"), ec = partial(self.expandCommand, name, "SpineSettings"))
|
|
self.widgets[name + "_rigSettings_spineForm"] = cmds.formLayout(w = 400, h = 300, parent = self.widgets[name + "_rigSettings_spineFrame"])
|
|
|
|
|
|
#rig mode
|
|
text1 = cmds.text(label = "Rig Mode:", font = "boldLabelFont")
|
|
self.widgets[name + "rigSettings_spine_Collection"] = cmds.iconTextRadioCollection()
|
|
self.widgets[name + "_rigSettings_spineFkModeButton"] = cmds.iconTextRadioButton(image = self.mayaToolsDir + "/General/Icons/ART/rigSettingsFkMode_off.bmp",selectionImage = self.mayaToolsDir + "/General/Icons/ART/rigSettingsFkMode_on.bmp", w = 180, h = 50, onc = partial(self.switchSpineMode, name, "FK"))
|
|
self.widgets[name + "_rigSettings_spineIkModeButton"] = cmds.iconTextRadioButton(image = self.mayaToolsDir + "/General/Icons/ART/rigSettingsIkMode_off.bmp",selectionImage = self.mayaToolsDir + "/General/Icons/ART/rigSettingsIkMode_on.bmp",w = 180, h = 50, onc = partial(self.switchSpineMode, name, "IK"))
|
|
|
|
mode1 = cmds.getAttr(name + ":Rig_Settings.spine_fk")
|
|
mode2 = cmds.getAttr(name + ":Rig_Settings.spine_ik")
|
|
|
|
cmds.formLayout(self.widgets[name + "_rigSettings_spineForm"], edit = True, af = [(text1, "top", 5),(text1, "left", 10)])
|
|
cmds.formLayout(self.widgets[name + "_rigSettings_spineForm"], edit = True, af = [(self.widgets[name + "_rigSettings_spineFkModeButton"], "top", 25),(self.widgets[name + "_rigSettings_spineFkModeButton"], "left", 10)])
|
|
cmds.formLayout(self.widgets[name + "_rigSettings_spineForm"], edit = True, af = [(self.widgets[name + "_rigSettings_spineIkModeButton"], "top", 25),(self.widgets[name + "_rigSettings_spineIkModeButton"], "right", 20)])
|
|
|
|
if mode1 > mode2:
|
|
cmds.iconTextRadioButton(self.widgets[name + "_rigSettings_spineFkModeButton"], edit = True, select = True)
|
|
else:
|
|
cmds.iconTextRadioButton(self.widgets[name + "_rigSettings_spineIkModeButton"], edit = True, select = True)
|
|
|
|
|
|
if cmds.objExists(name + ":chest_ik_anim"):
|
|
|
|
#ik stretch settings
|
|
text3 = cmds.text(label = "IK Spine Settings", font = "boldLabelFont")
|
|
text4 = cmds.text(label = "Stretch")
|
|
text5 = cmds.text(label = "Twist Amount")
|
|
stetchVal = cmds.getAttr(name + ":chest_ik_anim.stretch")
|
|
twistVal = cmds.getAttr(name + ":chest_ik_anim.twist_amount")
|
|
self.widgets[name + "_rigSettings_chestIkStretchField"] = cmds.floatField( minValue=-1, maxValue=2, value=stetchVal, w = 100)
|
|
self.widgets[name + "_rigSettings_chestIkTwistField"] = cmds.floatField( minValue=-1, maxValue=5, value=twistVal, w = 100)
|
|
|
|
cmds.formLayout(self.widgets[name + "_rigSettings_spineForm"], edit = True, af = [(text3, "top", 85),(text3, "left", 10)])
|
|
cmds.formLayout(self.widgets[name + "_rigSettings_spineForm"], edit = True, af = [(text4, "top", 108),(text4, "left", 10)])
|
|
cmds.formLayout(self.widgets[name + "_rigSettings_spineForm"], edit = True, af = [(text5, "top", 108),(text5, "left", 210)])
|
|
cmds.formLayout(self.widgets[name + "_rigSettings_spineForm"], edit = True, af = [(self.widgets[name + "_rigSettings_chestIkStretchField"], "top", 105),(self.widgets[name + "_rigSettings_chestIkStretchField"], "left", 55)])
|
|
cmds.formLayout(self.widgets[name + "_rigSettings_spineForm"], edit = True, af = [(self.widgets[name + "_rigSettings_chestIkTwistField"], "top", 105),(self.widgets[name + "_rigSettings_chestIkTwistField"], "left", 280)])
|
|
|
|
|
|
cmds.connectControl( self.widgets[name + "_rigSettings_chestIkStretchField"], name + ":chest_ik_anim.stretch" )
|
|
cmds.connectControl( self.widgets[name + "_rigSettings_chestIkTwistField"], name + ":chest_ik_anim.twist_amount" )
|
|
|
|
#create the right click menu for selecting the settings for the left arm
|
|
popupMenu = cmds.popupMenu(b = 3, parent = self.widgets[name + "_rigSettings_spineForm"])
|
|
menu = cmds.menuItem(parent = popupMenu, label = "Select Spine Settings", c = partial(self.selectRigSettings_Specific, "spine"))
|
|
|
|
|
|
|
|
|
|
#HEAD SETTINGS
|
|
self.widgets[name + "_rigSettings_headFrame"] = cmds.frameLayout(label = "Head", w = 400, h = 30, parent = self.widgets[name + "_rigSettingsMainColumn"], collapse = True, collapsable = True, borderStyle = "in", cc = partial(self.collapseCommand, name, "HeadSettings"), ec = partial(self.expandCommand, name, "HeadSettings"))
|
|
self.widgets[name + "_rigSettings_headForm"] = cmds.formLayout(w = 400, h = 300, parent = self.widgets[name + "_rigSettings_headFrame"])
|
|
|
|
|
|
#fk orientation space
|
|
text1 = cmds.text(label = "Head Orientation Space:", font = "boldLabelFont")
|
|
self.widgets[name + "rigSettings_headOrient_Collection"] = cmds.iconTextRadioCollection()
|
|
self.widgets[name + "_rigSettings_headFkOrientModeButton"] = cmds.iconTextRadioButton(image = self.mayaToolsDir + "/General/Icons/ART/headSettingsNeck_off.bmp",selectionImage = self.mayaToolsDir + "/General/Icons/ART/headSettingsNeck_on.bmp", w = 70, h = 30, onc = partial(self.switchHeadOrientMode, name, 0))
|
|
self.widgets[name + "_rigSettings_headShoulderOrientModeButton"] = cmds.iconTextRadioButton(image = self.mayaToolsDir + "/General/Icons/ART/headSettingsChest_off.bmp",selectionImage = self.mayaToolsDir + "/General/Icons/ART/headSettingsChest_on.bmp",w = 70, h = 30, onc = partial(self.switchHeadOrientMode, name, 1))
|
|
self.widgets[name + "_rigSettings_headBodyOrientModeButton"] = cmds.iconTextRadioButton(image = self.mayaToolsDir + "/General/Icons/ART/headSettingsBody_off.bmp",selectionImage = self.mayaToolsDir + "/General/Icons/ART/headSettingsBody_on.bmp",w = 70, h = 30, onc = partial(self.switchHeadOrientMode, name, 2))
|
|
self.widgets[name + "_rigSettings_headWorldOrientModeButton"] = cmds.iconTextRadioButton(image = self.mayaToolsDir + "/General/Icons/ART/headSettingsWorld_off.bmp",selectionImage = self.mayaToolsDir + "/General/Icons/ART/headSettingsWorld_on.bmp",w = 70, h = 30, onc = partial(self.switchHeadOrientMode, name, 3))
|
|
|
|
|
|
mode = cmds.getAttr(name + ":head_fk_anim.fkOrientation")
|
|
|
|
cmds.formLayout(self.widgets[name + "_rigSettings_headForm"], edit = True, af = [(text1, "top", 5),(text1, "left", 10)])
|
|
cmds.formLayout(self.widgets[name + "_rigSettings_headForm"], edit = True, af = [(self.widgets[name + "_rigSettings_headFkOrientModeButton"], "top", 25),(self.widgets[name + "_rigSettings_headFkOrientModeButton"], "left", 10)])
|
|
cmds.formLayout(self.widgets[name + "_rigSettings_headForm"], edit = True, af = [(self.widgets[name + "_rigSettings_headShoulderOrientModeButton"], "top", 25),(self.widgets[name + "_rigSettings_headShoulderOrientModeButton"], "left", 95)])
|
|
cmds.formLayout(self.widgets[name + "_rigSettings_headForm"], edit = True, af = [(self.widgets[name + "_rigSettings_headBodyOrientModeButton"], "top", 25),(self.widgets[name + "_rigSettings_headBodyOrientModeButton"], "left", 180)])
|
|
cmds.formLayout(self.widgets[name + "_rigSettings_headForm"], edit = True, af = [(self.widgets[name + "_rigSettings_headWorldOrientModeButton"], "top", 25),(self.widgets[name + "_rigSettings_headWorldOrientModeButton"], "left", 265)])
|
|
|
|
|
|
if mode == 0:
|
|
cmds.iconTextRadioButton(self.widgets[name + "_rigSettings_headFkOrientModeButton"], edit = True, select = True)
|
|
if mode == 1:
|
|
cmds.iconTextRadioButton(self.widgets[name + "_rigSettings_headShoulderOrientModeButton"], edit = True, select = True)
|
|
if mode == 2:
|
|
cmds.iconTextRadioButton(self.widgets[name + "_rigSettings_headBodyOrientModeButton"], edit = True, select = True)
|
|
if mode == 3:
|
|
cmds.iconTextRadioButton(self.widgets[name + "_rigSettings_headWorldOrientModeButton"], edit = True, select = True)
|
|
|
|
|
|
|
|
#create the right click menu for selecting the settings for the left arm
|
|
popupMenu = cmds.popupMenu(b = 3, parent = self.widgets[name + "_rigSettings_headForm"])
|
|
menu = cmds.menuItem(parent = popupMenu, label = "Select Head Settings", c = partial(self.selectRigSettings_Specific, "head"))
|
|
|
|
|
|
|
|
try:
|
|
#NECK SETTINGS
|
|
self.widgets[name + "_rigSettings_neckFrame"] = cmds.frameLayout(label = "Neck", w = 400, h = 30, parent = self.widgets[name + "_rigSettingsMainColumn"], collapse = True, collapsable = True, borderStyle = "in", cc = partial(self.collapseCommand, name, "NeckSettings"), ec = partial(self.expandCommand, name, "NeckSettings"))
|
|
self.widgets[name + "_rigSettings_neckForm"] = cmds.formLayout(w = 400, h = 300, parent = self.widgets[name + "_rigSettings_neckFrame"])
|
|
|
|
|
|
#fk orientation space
|
|
text1 = cmds.text(label = "Neck Orientation Space:", font = "boldLabelFont")
|
|
self.widgets[name + "rigSettings_neckOrient_Collection"] = cmds.iconTextRadioCollection()
|
|
self.widgets[name + "_rigSettings_neckShoulderOrientModeButton"] = cmds.iconTextRadioButton(image = self.mayaToolsDir + "/General/Icons/ART/headSettingsChest_off.bmp",selectionImage = self.mayaToolsDir + "/General/Icons/ART/headSettingsChest_on.bmp",w = 70, h = 30, onc = partial(self.switchNeckOrientMode, name, 0))
|
|
self.widgets[name + "_rigSettings_neckBodyOrientModeButton"] = cmds.iconTextRadioButton(image = self.mayaToolsDir + "/General/Icons/ART/headSettingsBody_off.bmp",selectionImage = self.mayaToolsDir + "/General/Icons/ART/headSettingsBody_on.bmp",w = 70, h = 30, onc = partial(self.switchNeckOrientMode, name, 1))
|
|
self.widgets[name + "_rigSettings_neckWorldOrientModeButton"] = cmds.iconTextRadioButton(image = self.mayaToolsDir + "/General/Icons/ART/headSettingsWorld_off.bmp",selectionImage = self.mayaToolsDir + "/General/Icons/ART/headSettingsWorld_on.bmp",w = 70, h = 30, onc = partial(self.switchNeckOrientMode, name, 2))
|
|
|
|
|
|
mode = cmds.getAttr(name + ":neck_01_fk_anim.fkOrientation")
|
|
|
|
cmds.formLayout(self.widgets[name + "_rigSettings_neckForm"], edit = True, af = [(text1, "top", 5),(text1, "left", 10)])
|
|
cmds.formLayout(self.widgets[name + "_rigSettings_neckForm"], edit = True, af = [(self.widgets[name + "_rigSettings_neckShoulderOrientModeButton"], "top", 25),(self.widgets[name + "_rigSettings_neckShoulderOrientModeButton"], "left", 95)])
|
|
cmds.formLayout(self.widgets[name + "_rigSettings_neckForm"], edit = True, af = [(self.widgets[name + "_rigSettings_neckBodyOrientModeButton"], "top", 25),(self.widgets[name + "_rigSettings_neckBodyOrientModeButton"], "left", 180)])
|
|
cmds.formLayout(self.widgets[name + "_rigSettings_neckForm"], edit = True, af = [(self.widgets[name + "_rigSettings_neckWorldOrientModeButton"], "top", 25),(self.widgets[name + "_rigSettings_neckWorldOrientModeButton"], "left", 265)])
|
|
|
|
|
|
if mode == 0:
|
|
cmds.iconTextRadioButton(self.widgets[name + "_rigSettings_neckShoulderOrientModeButton"], edit = True, select = True)
|
|
if mode == 1:
|
|
cmds.iconTextRadioButton(self.widgets[name + "_rigSettings_neckBodyOrientModeButton"], edit = True, select = True)
|
|
if mode == 2:
|
|
cmds.iconTextRadioButton(self.widgets[name + "_rigSettings_neckWorldOrientModeButton"], edit = True, select = True)
|
|
|
|
|
|
|
|
#create the right click menu for selecting the settings for the left arm
|
|
popupMenu = cmds.popupMenu(b = 3, parent = self.widgets[name + "_rigSettings_neckForm"])
|
|
menu = cmds.menuItem(parent = popupMenu, label = "Select Neck Settings", c = partial(self.selectRigSettings_Specific, "neck"))
|
|
|
|
except:
|
|
pass
|
|
|
|
|
|
|
|
|
|
|
|
#AUTO CONTROL SETTINGS
|
|
self.widgets[name + "_rigSettings_autoControlsFrame"] = cmds.frameLayout(label = "Auto Controls", w = 400, h = 30, parent = self.widgets[name + "_rigSettingsMainColumn"], collapse = True, collapsable = True, borderStyle = "in", cc = partial(self.collapseCommand, name, "AutoControlsSettings"), ec = partial(self.expandCommand, name, "AutoControlsSettings"))
|
|
self.widgets[name + "_rigSettings_autoControlsForm"] = cmds.formLayout(w = 400, h = 300, parent = self.widgets[name + "_rigSettings_autoControlsFrame"])
|
|
|
|
|
|
text1 = cmds.text(label ="Auto Hips:", font = "boldLabelFont")
|
|
text2 = cmds.text(label ="Auto Spine:", font = "boldLabelFont")
|
|
text3 = cmds.text(label ="Auto Left Clavicle:", font = "boldLabelFont")
|
|
text4 = cmds.text(label ="Auto Right Clavicle:", font = "boldLabelFont")
|
|
|
|
self.widgets[name + "_rigSettings_autoHipsField"] = cmds.floatField( minValue=0, maxValue=1, w = 100)
|
|
self.widgets[name + "_rigSettings_autoSpineField"] = cmds.floatField( minValue=0, maxValue=1, w = 100)
|
|
self.widgets[name + "_rigSettings_autoClavLeftField"] = cmds.floatField( minValue=0, maxValue=1, w = 100)
|
|
self.widgets[name + "_rigSettings_autoClavRightField"] = cmds.floatField( minValue=0, maxValue=1, w = 100)
|
|
|
|
cmds.formLayout(self.widgets[name + "_rigSettings_autoControlsForm"], edit = True, af = [(text1, "top", 8),(text1, "left", 10)])
|
|
cmds.formLayout(self.widgets[name + "_rigSettings_autoControlsForm"], edit = True, af = [(text2, "top", 38),(text2, "left", 10)])
|
|
cmds.formLayout(self.widgets[name + "_rigSettings_autoControlsForm"], edit = True, af = [(text3, "top", 68),(text3, "left", 10)])
|
|
cmds.formLayout(self.widgets[name + "_rigSettings_autoControlsForm"], edit = True, af = [(text4, "top", 98),(text4, "left", 10)])
|
|
|
|
cmds.formLayout(self.widgets[name + "_rigSettings_autoControlsForm"], edit = True, af = [(self.widgets[name + "_rigSettings_autoHipsField"], "top", 5),(self.widgets[name + "_rigSettings_autoHipsField"], "left", 150)])
|
|
cmds.formLayout(self.widgets[name + "_rigSettings_autoControlsForm"], edit = True, af = [(self.widgets[name + "_rigSettings_autoSpineField"], "top", 35),(self.widgets[name + "_rigSettings_autoSpineField"], "left", 150)])
|
|
cmds.formLayout(self.widgets[name + "_rigSettings_autoControlsForm"], edit = True, af = [(self.widgets[name + "_rigSettings_autoClavLeftField"], "top", 65),(self.widgets[name + "_rigSettings_autoClavLeftField"], "left", 150)])
|
|
cmds.formLayout(self.widgets[name + "_rigSettings_autoControlsForm"], edit = True, af = [(self.widgets[name + "_rigSettings_autoClavRightField"], "top", 95),(self.widgets[name + "_rigSettings_autoClavRightField"], "left", 150)])
|
|
|
|
|
|
cmds.connectControl( self.widgets[name + "_rigSettings_autoHipsField"], name + ":hip_anim.autoHips" )
|
|
cmds.connectControl( self.widgets[name + "_rigSettings_autoSpineField"], name + ":chest_ik_anim.autoSpine" )
|
|
cmds.connectControl( self.widgets[name + "_rigSettings_autoClavLeftField"], name + ":clavicle_l_anim.autoShoulders" )
|
|
cmds.connectControl( self.widgets[name + "_rigSettings_autoClavRightField"], name + ":clavicle_r_anim.autoShoulders" )
|
|
|
|
|
|
#create the right click menu for selecting the settings for the left arm
|
|
popupMenu = cmds.popupMenu(b = 3, parent = self.widgets[name + "_rigSettings_autoControlsForm"])
|
|
menu = cmds.menuItem(parent = popupMenu, label = "Select Auto Control Settings", c = partial(self.selectRigSettings_Specific, "auto"))
|
|
|
|
|
|
|
|
|
|
#LEFT FINGER SETTINGS
|
|
self.widgets[name + "_rigSettings_leftFingersFrame"] = cmds.frameLayout(label = "Left Fingers", w = 400, parent = self.widgets[name + "_rigSettingsMainColumn"], collapse = True, collapsable = True, borderStyle = "in")
|
|
self.widgets[name + "_rigSettings_leftFingersColumn"] = cmds.columnLayout(parent = self.widgets[name + "_rigSettings_leftFingersFrame"])
|
|
|
|
for finger in ["index", "middle", "ring", "pinky", "thumb"]:
|
|
self.widgets[name + "_rigSettings_leftFingersFrame_" + finger] = cmds.frameLayout(label = " " + finger, w = 400, h = 60, parent = self.widgets[name + "_rigSettings_leftFingersColumn"], collapse = False, collapsable = False, borderStyle = "in")
|
|
self.widgets[name + "_rigSettings_leftFingersForm_" + finger] = cmds.formLayout(parent = self.widgets[name + "_rigSettings_leftFingersFrame_" + finger])
|
|
|
|
text = cmds.text(label = "FK Sticky:", parent = self.widgets[name + "_rigSettings_leftFingersForm_" + finger])
|
|
self.widgets[name + "_" + finger + "_fkStickyFloatFieldL"] = cmds.floatField( minValue=0, maxValue=1, w = 100)
|
|
|
|
cmds.formLayout(self.widgets[name + "_rigSettings_leftFingersForm_" + finger], edit = True, af = [(text, "top", 8),(text, "left", 10)])
|
|
cmds.formLayout(self.widgets[name + "_rigSettings_leftFingersForm_" + finger], edit = True, af = [(self.widgets[name + "_" + finger + "_fkStickyFloatFieldL"], "top", 5),(self.widgets[name + "_" + finger + "_fkStickyFloatFieldL"], "left", 100)])
|
|
|
|
cmds.connectControl(self.widgets[name + "_" + finger + "_fkStickyFloatFieldL"], name + ":" + finger + "_finger_fk_ctrl_1_l.sticky" )
|
|
|
|
|
|
if cmds.objExists(name + ":" + finger + "_l_ik_anim"):
|
|
#rig mode
|
|
cmds.frameLayout(self.widgets[name + "_rigSettings_leftFingersFrame_" + finger], edit = True, h = 120)
|
|
text1 = cmds.text(label = "Rig Mode:", font = "boldLabelFont")
|
|
self.widgets[name + "rigSettings_LeftFinger_" + finger + "_Mode_Collection"] = cmds.iconTextRadioCollection()
|
|
self.widgets[name + "rigSettings_LeftFinger_" + finger + "_FkModeButton"] = cmds.iconTextRadioButton(image = self.mayaToolsDir + "/General/Icons/ART/rigSettingsFkMode_off.bmp",selectionImage = self.mayaToolsDir + "/General/Icons/ART/rigSettingsFkMode_on.bmp", w = 180, h = 50, onc = partial(self.switchFingerMode, name, finger, 0, "l"))
|
|
self.widgets[name + "rigSettings_LeftFinger_" + finger + "_IkModeButton"] = cmds.iconTextRadioButton(image = self.mayaToolsDir + "/General/Icons/ART/rigSettingsIkMode_off.bmp",selectionImage = self.mayaToolsDir + "/General/Icons/ART/rigSettingsIkMode_on.bmp",w = 180, h = 50, onc = partial(self.switchFingerMode, name, finger, 1, "l"))
|
|
|
|
mode = cmds.getAttr(name + ":" + finger + "_finger_l_mode_anim.FK_IK")
|
|
|
|
cmds.formLayout(self.widgets[name + "_rigSettings_leftFingersForm_" + finger], edit = True, af = [(text1, "top", 30),(text1, "left", 10)])
|
|
cmds.formLayout(self.widgets[name + "_rigSettings_leftFingersForm_" + finger], edit = True, af = [(self.widgets[name + "rigSettings_LeftFinger_" + finger + "_FkModeButton"], "top", 45),(self.widgets[name + "rigSettings_LeftFinger_" + finger + "_FkModeButton"], "left", 10)])
|
|
cmds.formLayout(self.widgets[name + "_rigSettings_leftFingersForm_" + finger], edit = True, af = [(self.widgets[name + "rigSettings_LeftFinger_" + finger + "_IkModeButton"], "top", 45),(self.widgets[name + "rigSettings_LeftFinger_" + finger + "_IkModeButton"], "right", 20)])
|
|
|
|
if mode == 0:
|
|
cmds.iconTextRadioButton(self.widgets[name + "rigSettings_LeftFinger_" + finger + "_FkModeButton"], edit = True, select = True)
|
|
if mode == 1:
|
|
cmds.iconTextRadioButton(self.widgets[name + "rigSettings_LeftFinger_" + finger + "_IkModeButton"], edit = True, select = True)
|
|
|
|
|
|
|
|
#create the right click menu for selecting the settings for the left arm
|
|
popupMenu = cmds.popupMenu(b = 3, parent = self.widgets[name + "_rigSettings_leftFingersFrame"])
|
|
menu = cmds.menuItem(parent = popupMenu, label = "Select Left Finger Settings", c = partial(self.selectRigSettings_Specific, "leftFingers"))
|
|
|
|
|
|
#RIGHT FINGER SETTINGS
|
|
spacer = cmds.text(label = "", parent = self.widgets[name + "_rigSettingsMainColumn"], h = 10)
|
|
self.widgets[name + "_rigSettings_rightFingersFrame"] = cmds.frameLayout(label = "Right Fingers", w = 400, parent = self.widgets[name + "_rigSettingsMainColumn"], collapse = True, collapsable = True, borderStyle = "in")
|
|
self.widgets[name + "_rigSettings_rightFingersColumn"] = cmds.columnLayout(parent = self.widgets[name + "_rigSettings_rightFingersFrame"])
|
|
|
|
for finger in ["index", "middle", "ring", "pinky", "thumb"]:
|
|
self.widgets[name + "_rigSettings_rightFingersFrame_" + finger] = cmds.frameLayout(label = " " + finger, w = 400, h = 60, parent = self.widgets[name + "_rigSettings_rightFingersColumn"], collapse = False, collapsable = False, borderStyle = "in")
|
|
self.widgets[name + "_rigSettings_rightFingersForm_" + finger] = cmds.formLayout(parent = self.widgets[name + "_rigSettings_rightFingersFrame_" + finger])
|
|
|
|
text = cmds.text(label = "FK Sticky:", parent = self.widgets[name + "_rigSettings_rightFingersForm_" + finger])
|
|
self.widgets[name + "_" + finger + "_fkStickyFloatFieldR"] = cmds.floatField( minValue=0, maxValue=1, w = 100)
|
|
|
|
cmds.formLayout(self.widgets[name + "_rigSettings_rightFingersForm_" + finger], edit = True, af = [(text, "top", 8),(text, "left", 10)])
|
|
cmds.formLayout(self.widgets[name + "_rigSettings_rightFingersForm_" + finger], edit = True, af = [(self.widgets[name + "_" + finger + "_fkStickyFloatFieldR"], "top", 5),(self.widgets[name + "_" + finger + "_fkStickyFloatFieldR"], "left", 100)])
|
|
|
|
cmds.connectControl(self.widgets[name + "_" + finger + "_fkStickyFloatFieldR"], name + ":" + finger + "_finger_fk_ctrl_1_r.sticky" )
|
|
|
|
|
|
if cmds.objExists(name + ":" + finger + "_r_ik_anim"):
|
|
#rig mode
|
|
cmds.frameLayout(self.widgets[name + "_rigSettings_rightFingersFrame_" + finger], edit = True, h = 120)
|
|
text1 = cmds.text(label = "Rig Mode:", font = "boldLabelFont")
|
|
self.widgets[name + "rigSettings_RightFinger_" + finger + "_Mode_Collection"] = cmds.iconTextRadioCollection()
|
|
self.widgets[name + "rigSettings_RightFinger_" + finger + "_FkModeButton"] = cmds.iconTextRadioButton(image = self.mayaToolsDir + "/General/Icons/ART/rigSettingsFkMode_off.bmp",selectionImage = self.mayaToolsDir + "/General/Icons/ART/rigSettingsFkMode_on.bmp", w = 180, h = 50, onc = partial(self.switchFingerMode, name, finger, 0, "r"))
|
|
self.widgets[name + "rigSettings_RightFinger_" + finger + "_IkModeButton"] = cmds.iconTextRadioButton(image = self.mayaToolsDir + "/General/Icons/ART/rigSettingsIkMode_off.bmp",selectionImage = self.mayaToolsDir + "/General/Icons/ART/rigSettingsIkMode_on.bmp",w = 180, h = 50, onc = partial(self.switchFingerMode, name, finger, 1, "r"))
|
|
|
|
mode = cmds.getAttr(name + ":" + finger + "_finger_r_mode_anim.FK_IK")
|
|
|
|
cmds.formLayout(self.widgets[name + "_rigSettings_rightFingersForm_" + finger], edit = True, af = [(text1, "top", 30),(text1, "left", 10)])
|
|
cmds.formLayout(self.widgets[name + "_rigSettings_rightFingersForm_" + finger], edit = True, af = [(self.widgets[name + "rigSettings_RightFinger_" + finger + "_FkModeButton"], "top", 45),(self.widgets[name + "rigSettings_RightFinger_" + finger + "_FkModeButton"], "left", 10)])
|
|
cmds.formLayout(self.widgets[name + "_rigSettings_rightFingersForm_" + finger], edit = True, af = [(self.widgets[name + "rigSettings_RightFinger_" + finger + "_IkModeButton"], "top", 45),(self.widgets[name + "rigSettings_RightFinger_" + finger + "_IkModeButton"], "right", 20)])
|
|
|
|
if mode == 0:
|
|
cmds.iconTextRadioButton(self.widgets[name + "rigSettings_RightFinger_" + finger + "_FkModeButton"], edit = True, select = True)
|
|
if mode == 1:
|
|
cmds.iconTextRadioButton(self.widgets[name + "rigSettings_RightFinger_" + finger + "_IkModeButton"], edit = True, select = True)
|
|
|
|
|
|
#create the right click menu for selecting the settings for the left arm
|
|
popupMenu = cmds.popupMenu(b = 3, parent = self.widgets[name + "_rigSettings_rightFingersFrame"])
|
|
menu = cmds.menuItem(parent = popupMenu, label = "Select Right Finger Settings", c = partial(self.selectRigSettings_Specific, "rightFingers"))
|
|
|
|
#CUSTOM JOINT CHAINS
|
|
spacer = cmds.text(label = "", parent = self.widgets[name + "_rigSettingsMainColumn"], h = 10)
|
|
self.widgets[name + "_rigSettings_customJointChainsFrame"] = cmds.frameLayout(label = "Custom Joint Chains", w = 400, parent = self.widgets[name + "_rigSettingsMainColumn"], collapse = True, collapsable = True, borderStyle = "in")
|
|
self.widgets[name + "_rigSettings_customJointChainsColumn"] = cmds.rowColumnLayout(nc = 2, cat = [(1, "both", 5), (2, "both", 5)],parent = self.widgets[name + "_rigSettings_customJointChainsFrame"])
|
|
|
|
|
|
customJoints = []
|
|
attrs = cmds.listAttr(name + ":" + "Skeleton_Settings")
|
|
for attr in attrs:
|
|
if attr.find("extraJoint") == 0:
|
|
customJoints.append(attr)
|
|
|
|
for joint in customJoints:
|
|
attribute = cmds.getAttr(name + ":" + "Skeleton_Settings." + joint, asString = True)
|
|
jointType = attribute.partition("/")[2].partition("/")[0]
|
|
label = attribute.rpartition("/")[2]
|
|
|
|
if jointType == "chain" or jointType == "dynamic":
|
|
numJointsInChain = label.partition("(")[2].partition(")")[0]
|
|
label = label.partition(" (")[0]
|
|
|
|
|
|
#rig mode
|
|
cmds.text(label = "")
|
|
cmds.text(label = "")
|
|
text = cmds.text(label = label + " rig settings:", font = "boldLabelFont")
|
|
cmds.text(label = "")
|
|
cmds.text(label = "")
|
|
cmds.text(label = "")
|
|
|
|
self.widgets[name + "rigSettings_customJoints_" + label + "_Collection"] = cmds.iconTextRadioCollection()
|
|
self.widgets[name + "_rigSettings_customJoints_" + label + "fkModeButton"] = cmds.iconTextRadioButton(image = self.mayaToolsDir + "/General/Icons/ART/rigSettingsFkMode_off.bmp",selectionImage = self.mayaToolsDir + "/General/Icons/ART/rigSettingsFkMode_on.bmp", w = 180, h = 50, onc = partial(self.switchCustomChainMode, name, label, "FK"))
|
|
self.widgets[name + "_rigSettings_customJoints_" + label + "ikModeButton"] = cmds.iconTextRadioButton(image = self.mayaToolsDir + "/General/Icons/ART/rigSettingsIkMode_off.bmp",selectionImage = self.mayaToolsDir + "/General/Icons/ART/rigSettingsIkMode_on.bmp", w = 180, h = 50, onc = partial(self.switchCustomChainMode, name, label, "IK"))
|
|
self.widgets[name + "_rigSettings_customJoints_" + label + "dynModeButton"] = cmds.iconTextRadioButton(image = self.mayaToolsDir + "/General/Icons/ART/rigSettingsDynMode_off.bmp",selectionImage = self.mayaToolsDir + "/General/Icons/ART/rigSettingsDynMode_on.bmp", w = 180, h = 50, onc = partial(self.switchCustomChainMode, name, label, "DYNAMIC"))
|
|
|
|
mode1 = cmds.getAttr(name + ":Rig_Settings." + label + "_fk")
|
|
mode2 = cmds.getAttr(name + ":Rig_Settings." + label + "_ik")
|
|
mode3 = cmds.getAttr(name + ":Rig_Settings." + label + "_dynamic")
|
|
|
|
cmds.iconTextRadioButton(self.widgets[name + "_rigSettings_customJoints_" + label + "fkModeButton"], edit = True, select = mode1)
|
|
cmds.iconTextRadioButton(self.widgets[name + "_rigSettings_customJoints_" + label + "ikModeButton"], edit = True, select = mode2)
|
|
cmds.iconTextRadioButton(self.widgets[name + "_rigSettings_customJoints_" + label + "dynModeButton"], edit = True, select = mode3)
|
|
|
|
|
|
|
|
# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
|
|
# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
|
|
# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
|
|
# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
|
|
# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
|
|
def selectionScriptJob(self):
|
|
#reset all button colors
|
|
self.resetButtonColors()
|
|
|
|
|
|
#look at selection and get the buttonName attr value
|
|
selection = cmds.ls(sl = True)
|
|
for each in selection:
|
|
if "." not in each:
|
|
if cmds.objExists(each + ".buttonName"):
|
|
button = cmds.getAttr(each + ".buttonName")
|
|
|
|
#color those buttons white
|
|
cmds.button(button, edit = True, bgc = self.white)
|
|
|
|
|
|
self.listView_ScriptJob()
|
|
|
|
|
|
|
|
|
|
|
|
# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
|
|
# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
|
|
# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
|
|
# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
|
|
# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
|
|
def resetButtonColors(self):
|
|
characters = self.getCharacters()
|
|
|
|
#reset all button colors
|
|
for character in characters:
|
|
cmds.button(self.widgets[character + "_headPickerButton"], edit = True, bgc = self.blue)
|
|
|
|
if cmds.objExists(character + ":neck_01_fk_anim"):
|
|
cmds.button(self.widgets[character + "_neck1_PickerButton"], edit = True, bgc = self.blue)
|
|
|
|
if cmds.objExists(character + ":neck_02_fk_anim"):
|
|
cmds.button(self.widgets[character + "_neck2_PickerButton"], edit = True, bgc = self.blue)
|
|
|
|
if cmds.objExists(character + ":neck_03_fk_anim"):
|
|
cmds.button(self.widgets[character + "_neck3_PickerButton"], edit = True, bgc = self.blue)
|
|
|
|
if cmds.objExists(character + ":spine_01_anim"):
|
|
cmds.button(self.widgets[character + "_spine1_PickerButton"], edit = True, bgc = self.blue)
|
|
|
|
if cmds.objExists(character + ":spine_02_anim"):
|
|
cmds.button(self.widgets[character + "_spine2_PickerButton"], edit = True, bgc = self.blue)
|
|
|
|
if cmds.objExists(character + ":spine_03_anim"):
|
|
cmds.button(self.widgets[character + "_spine3_PickerButton"], edit = True, bgc = self.blue)
|
|
|
|
if cmds.objExists(character + ":spine_04_anim"):
|
|
cmds.button(self.widgets[character + "_spine4_PickerButton"], edit = True, bgc = self.blue)
|
|
|
|
if cmds.objExists(character + ":spine_05_anim"):
|
|
cmds.button(self.widgets[character + "_spine5_PickerButton"], edit = True, bgc = self.blue)
|
|
|
|
if cmds.objExists(character + ":mid_ik_anim"):
|
|
cmds.button(self.widgets[character + "_ikSpineMidPickerButton"], edit = True, bgc = self.orange)
|
|
|
|
if cmds.objExists(character + ":chest_ik_anim"):
|
|
cmds.button(self.widgets[character + "_ikSpineTopPickerButton"], edit = True, bgc = self.orange)
|
|
|
|
cmds.button(self.widgets[character + "_bodyPickerButton"], edit = True, bgc = self.orange)
|
|
|
|
cmds.button(self.widgets[character + "_pelvisPickerButton"], edit = True, bgc = self.blue)
|
|
|
|
cmds.button(self.widgets[character + "_leftClavPickerButton"], edit = True, bgc = self.blue)
|
|
|
|
cmds.button(self.widgets[character + "_rightClavPickerButton"], edit = True, bgc = self.blue)
|
|
|
|
cmds.button(self.widgets[character + "_leftShoulderPickerButton"], edit = True, bgc = self.blue)
|
|
|
|
cmds.button(self.widgets[character + "_rightShoulderPickerButton"], edit = True, bgc = self.blue)
|
|
|
|
cmds.button(self.widgets[character + "_leftElbowPickerButton"], edit = True, bgc = self.blue)
|
|
|
|
cmds.button(self.widgets[character + "_rightElbowPickerButton"], edit = True, bgc = self.blue)
|
|
|
|
cmds.button(self.widgets[character + "_leftHandPickerButton"], edit = True, bgc = self.blue)
|
|
|
|
cmds.button(self.widgets[character + "_rightHandPickerButton"], edit = True, bgc = self.blue)
|
|
|
|
cmds.button(self.widgets[character + "_leftIkElbowPickerButton"], edit = True, bgc = self.orange)
|
|
|
|
cmds.button(self.widgets[character + "_rightIkElbowPickerButton"], edit = True, bgc = self.orange)
|
|
|
|
cmds.button(self.widgets[character + "_leftIkHandPickerButton"], edit = True, bgc = self.orange)
|
|
|
|
cmds.button(self.widgets[character + "_rightIkHandPickerButton"], edit = True, bgc = self.orange)
|
|
|
|
cmds.button(self.widgets[character + "_leftThighPickerButton"], edit = True, bgc = self.blue)
|
|
|
|
cmds.button(self.widgets[character + "_rightThighPickerButton"], edit = True, bgc = self.blue)
|
|
|
|
cmds.button(self.widgets[character + "_leftFkKneePickerButton"], edit = True, bgc = self.blue)
|
|
|
|
cmds.button(self.widgets[character + "_rightFkKneePickerButton"], edit = True, bgc = self.blue)
|
|
|
|
cmds.button(self.widgets[character + "_leftFkAnklePickerButton"], edit = True, bgc = self.blue)
|
|
|
|
cmds.button(self.widgets[character + "_rightFkAnklePickerButton"], edit = True, bgc = self.blue)
|
|
|
|
if cmds.objExists(character + ":fk_ball_l_anim"):
|
|
cmds.button(self.widgets[character + "_leftFkBallPickerButton"], edit = True, bgc = self.blue)
|
|
|
|
if cmds.objExists(character + ":fk_ball_r_anim"):
|
|
cmds.button(self.widgets[character + "_rightFkBallPickerButton"], edit = True, bgc = self.blue)
|
|
|
|
cmds.button(self.widgets[character + "_leftIkFootPickerButton"], edit = True, bgc = self.orange)
|
|
|
|
cmds.button(self.widgets[character + "_rightIkFootPickerButton"], edit = True, bgc = self.orange)
|
|
|
|
cmds.button(self.widgets[character + "_leftIkHeelPickerButton"], edit = True, bgc = self.orange)
|
|
|
|
cmds.button(self.widgets[character + "_rightIkHeelPickerButton"], edit = True, bgc = self.orange)
|
|
|
|
cmds.button(self.widgets[character + "_leftIkToeWigglePickerButton"], edit = True, bgc = self.orange)
|
|
|
|
cmds.button(self.widgets[character + "_rightIkToeWigglePickerButton"], edit = True, bgc = self.orange)
|
|
|
|
cmds.button(self.widgets[character + "_leftIkToePickerButton"], edit = True, bgc = self.orange)
|
|
|
|
cmds.button(self.widgets[character + "_rightIkToePickerButton"], edit = True, bgc = self.orange)
|
|
|
|
cmds.button(self.widgets[character + "_masterPickerButton"], edit = True, bgc = self.orange)
|
|
|
|
cmds.button(self.widgets[character + "_offsetPickerButton"], edit = True, bgc = self.blue)
|
|
|
|
cmds.button(self.widgets[character + "_rootPickerButton"], edit = True, bgc = self.purple)
|
|
|
|
cmds.button(self.widgets[character + "_headGroupPickerButton"], edit = True, bgc = self.green)
|
|
|
|
cmds.button(self.widgets[character + "_leftArmGroupPickerButton"], edit = True, bgc = self.green)
|
|
|
|
cmds.button(self.widgets[character + "_rightArmGroupPickerButton"], edit = True, bgc = self.green)
|
|
|
|
cmds.button(self.widgets[character + "_spineGroupPickerButton"], edit = True, bgc = self.green)
|
|
|
|
cmds.button(self.widgets[character + "_leftLegGroupPickerButton"], edit = True, bgc = self.green)
|
|
|
|
cmds.button(self.widgets[character + "_rightLegGroupPickerButton"], edit = True, bgc = self.green)
|
|
|
|
if cmds.objExists(character + ":upperarm_l_twist_anim"):
|
|
cmds.button(self.widgets[character + "_leftArmRollPickerButton"], edit = True, bgc = self.purple)
|
|
|
|
if cmds.objExists(character + ":upperarm_l_twist_2_anim"):
|
|
cmds.button(self.widgets[character + "_leftArmRoll2PickerButton"], edit = True, bgc = self.purple)
|
|
|
|
if cmds.objExists(character + ":upperarm_l_twist_3_anim"):
|
|
cmds.button(self.widgets[character + "_leftArmRoll3PickerButton"], edit = True, bgc = self.purple)
|
|
|
|
if cmds.objExists(character + ":upperarm_r_twist_anim"):
|
|
cmds.button(self.widgets[character + "_rightArmRollPickerButton"], edit = True, bgc = self.purple)
|
|
|
|
if cmds.objExists(character + ":upperarm_r_twist_2_anim"):
|
|
cmds.button(self.widgets[character + "_rightArmRoll2PickerButton"], edit = True, bgc = self.purple)
|
|
|
|
if cmds.objExists(character + ":upperarm_r_twist_3_anim"):
|
|
cmds.button(self.widgets[character + "_rightArmRoll3PickerButton"], edit = True, bgc = self.purple)
|
|
|
|
if cmds.objExists(character + ":lowerarm_l_twist_anim"):
|
|
cmds.button(self.widgets[character + "_leftForeTwistPickerButton"], edit = True, bgc = self.purple)
|
|
|
|
if cmds.objExists(character + ":lowerarm_l_twist2_anim"):
|
|
cmds.button(self.widgets[character + "_leftForeTwist2PickerButton"], edit = True, bgc = self.purple)
|
|
|
|
if cmds.objExists(character + ":lowerarm_l_twist3_anim"):
|
|
cmds.button(self.widgets[character + "_leftForeTwist3PickerButton"], edit = True, bgc = self.purple)
|
|
|
|
if cmds.objExists(character + ":lowerarm_r_twist_anim"):
|
|
cmds.button(self.widgets[character + "_rightForeTwistPickerButton"], edit = True, bgc = self.purple)
|
|
|
|
if cmds.objExists(character + ":lowerarm_r_twist2_anim"):
|
|
cmds.button(self.widgets[character + "_rightForeTwist2PickerButton"], edit = True, bgc = self.purple)
|
|
|
|
if cmds.objExists(character + ":lowerarm_r_twist3_anim"):
|
|
cmds.button(self.widgets[character + "_rightForeTwist3PickerButton"], edit = True, bgc = self.purple)
|
|
|
|
|
|
if cmds.objExists(character + ":l_thigh_twist_01_anim"):
|
|
cmds.button(self.widgets[character + "_leftThighTwistPickerButton"], edit = True, bgc = self.purple)
|
|
|
|
if cmds.objExists(character + ":l_thigh_twist_02_anim"):
|
|
cmds.button(self.widgets[character + "_leftThighTwist2PickerButton"], edit = True, bgc = self.purple)
|
|
|
|
if cmds.objExists(character + ":l_thigh_twist_03_anim"):
|
|
cmds.button(self.widgets[character + "_leftThighTwist3PickerButton"], edit = True, bgc = self.purple)
|
|
|
|
if cmds.objExists(character + ":r_thigh_twist_01_anim"):
|
|
cmds.button(self.widgets[character + "_rightThighTwistPickerButton"], edit = True, bgc = self.purple)
|
|
|
|
if cmds.objExists(character + ":r_thigh_twist_02_anim"):
|
|
cmds.button(self.widgets[character + "_rightThighTwist2PickerButton"], edit = True, bgc = self.purple)
|
|
|
|
if cmds.objExists(character + ":r_thigh_twist_03_anim"):
|
|
cmds.button(self.widgets[character + "_rightThighTwist3PickerButton"], edit = True, bgc = self.purple)
|
|
|
|
if cmds.objExists(character + ":calf_l_twist_anim"):
|
|
cmds.button(self.widgets[character + "_leftCalfTwistPickerButton"], edit = True, bgc = self.purple)
|
|
|
|
if cmds.objExists(character + ":calf_l_twist2_anim"):
|
|
cmds.button(self.widgets[character + "_leftCalfTwist2PickerButton"], edit = True, bgc = self.purple)
|
|
|
|
if cmds.objExists(character + ":calf_l_twist3_anim"):
|
|
cmds.button(self.widgets[character + "_leftCalfTwist3PickerButton"], edit = True, bgc = self.purple)
|
|
|
|
if cmds.objExists(character + ":calf_r_twist_anim"):
|
|
cmds.button(self.widgets[character + "_rightCalfTwistPickerButton"], edit = True, bgc = self.purple)
|
|
|
|
if cmds.objExists(character + ":calf_r_twist2_anim"):
|
|
cmds.button(self.widgets[character + "_rightCalfTwist2PickerButton"], edit = True, bgc = self.purple)
|
|
|
|
if cmds.objExists(character + ":calf_r_twist3_anim"):
|
|
cmds.button(self.widgets[character + "_rightCalfTwist3PickerButton"], edit = True, bgc = self.purple)
|
|
|
|
|
|
|
|
|
|
|
|
if cmds.objExists(character + ":pinky_metacarpal_ctrl_l"):
|
|
cmds.button(self.widgets[character + "_leftPinkyMetacarpalPickerButton"], edit = True, bgc = self.blue)
|
|
|
|
if cmds.objExists(character + ":pinky_finger_fk_ctrl_1_l"):
|
|
cmds.button(self.widgets[character + "_leftPinky1PickerButton"], edit = True, bgc = self.blue)
|
|
|
|
if cmds.objExists(character + ":pinky_finger_fk_ctrl_2_l"):
|
|
cmds.button(self.widgets[character + "_leftPinky2PickerButton"], edit = True, bgc = self.blue)
|
|
|
|
if cmds.objExists(character + ":pinky_finger_fk_ctrl_3_l"):
|
|
cmds.button(self.widgets[character + "_leftPinky3PickerButton"], edit = True, bgc = self.blue)
|
|
|
|
|
|
if cmds.objExists(character + ":ring_metacarpal_ctrl_l"):
|
|
cmds.button(self.widgets[character + "_leftRingMetacarpalPickerButton"], edit = True, bgc = self.blue)
|
|
|
|
if cmds.objExists(character + ":ring_finger_fk_ctrl_1_l"):
|
|
cmds.button(self.widgets[character + "_leftRing1PickerButton"], edit = True, bgc = self.blue)
|
|
|
|
if cmds.objExists(character + ":ring_finger_fk_ctrl_2_l"):
|
|
cmds.button(self.widgets[character + "_leftRing2PickerButton"], edit = True, bgc = self.blue)
|
|
|
|
if cmds.objExists(character + ":ring_finger_fk_ctrl_3_l"):
|
|
cmds.button(self.widgets[character + "_leftRing3PickerButton"], edit = True, bgc = self.blue)
|
|
|
|
|
|
if cmds.objExists(character + ":middle_metacarpal_ctrl_l"):
|
|
cmds.button(self.widgets[character + "_leftMiddleMetacarpalPickerButton"], edit = True, bgc = self.blue)
|
|
|
|
if cmds.objExists(character + ":middle_finger_fk_ctrl_1_l"):
|
|
cmds.button(self.widgets[character + "_leftMiddle1PickerButton"], edit = True, bgc = self.blue)
|
|
|
|
if cmds.objExists(character + ":middle_finger_fk_ctrl_2_l"):
|
|
cmds.button(self.widgets[character + "_leftMiddle2PickerButton"], edit = True, bgc = self.blue)
|
|
|
|
if cmds.objExists(character + ":middle_finger_fk_ctrl_3_l"):
|
|
cmds.button(self.widgets[character + "_leftMiddle3PickerButton"], edit = True, bgc = self.blue)
|
|
|
|
|
|
if cmds.objExists(character + ":index_metacarpal_ctrl_l"):
|
|
cmds.button(self.widgets[character + "_leftIndexMetacarpalPickerButton"], edit = True, bgc = self.blue)
|
|
|
|
if cmds.objExists(character + ":index_finger_fk_ctrl_1_l"):
|
|
cmds.button(self.widgets[character + "_leftIndex1PickerButton"], edit = True, bgc = self.blue)
|
|
|
|
if cmds.objExists(character + ":index_finger_fk_ctrl_2_l"):
|
|
cmds.button(self.widgets[character + "_leftIndex2PickerButton"], edit = True, bgc = self.blue)
|
|
|
|
if cmds.objExists(character + ":index_finger_fk_ctrl_3_l"):
|
|
cmds.button(self.widgets[character + "_leftIndex3PickerButton"], edit = True, bgc = self.blue)
|
|
|
|
|
|
if cmds.objExists(character + ":thumb_finger_fk_ctrl_1_l"):
|
|
cmds.button(self.widgets[character + "_leftThumb1PickerButton"], edit = True, bgc = self.blue)
|
|
|
|
if cmds.objExists(character + ":thumb_finger_fk_ctrl_2_l"):
|
|
cmds.button(self.widgets[character + "_leftThumb2PickerButton"], edit = True, bgc = self.blue)
|
|
|
|
if cmds.objExists(character + ":thumb_finger_fk_ctrl_3_l"):
|
|
cmds.button(self.widgets[character + "_leftThumb3PickerButton"], edit = True, bgc = self.blue)
|
|
|
|
|
|
cmds.button(self.widgets[character + "_leftMetaRowPickerButton"], edit = True, bgc = self.green)
|
|
cmds.button(self.widgets[character + "_leftKnuckle1RowPickerButton"], edit = True, bgc = self.green)
|
|
cmds.button(self.widgets[character + "_leftKnuckle2RowPickerButton"], edit = True, bgc = self.green)
|
|
cmds.button(self.widgets[character + "_leftKnuckle3RowPickerButton"], edit = True, bgc = self.green)
|
|
|
|
cmds.button(self.widgets[character + "_leftIndexColumnPickerButton"], edit = True, bgc = self.green)
|
|
cmds.button(self.widgets[character + "_leftMiddleColumnPickerButton"], edit = True, bgc = self.green)
|
|
cmds.button(self.widgets[character + "_leftRingColumnPickerButton"], edit = True, bgc = self.green)
|
|
cmds.button(self.widgets[character + "_leftPinkyColumnPickerButton"], edit = True, bgc = self.green)
|
|
|
|
cmds.button(self.widgets[character + "_leftThumbColumnPickerButton"], edit = True, bgc = self.green)
|
|
|
|
|
|
|
|
createLeftIKRow = False
|
|
if cmds.objExists(character + ":index_l_ik_anim"):
|
|
cmds.button(self.widgets[character + "_leftIndexFingerIKPickerButton"], edit = True, bgc = self.orange)
|
|
cmds.button(self.widgets[character + "_leftIndexIkPvPickerButton"], edit = True, bgc = self.orange)
|
|
createLeftIKRow = True
|
|
|
|
if cmds.objExists(character + ":middle_l_ik_anim"):
|
|
cmds.button(self.widgets[character + "_leftMiddleFingerIKPickerButton"], edit = True, bgc = self.orange)
|
|
cmds.button(self.widgets[character + "_leftMiddleIkPvPickerButton"], edit = True, bgc = self.orange)
|
|
createLeftIKRow = True
|
|
|
|
if cmds.objExists(character + ":ring_l_ik_anim"):
|
|
cmds.button(self.widgets[character + "_leftRingFingerIKPickerButton"], edit = True, bgc = self.orange)
|
|
cmds.button(self.widgets[character + "_leftRingIkPvPickerButton"], edit = True, bgc = self.orange)
|
|
createLeftIKRow = True
|
|
|
|
if cmds.objExists(character + ":pinky_l_ik_anim"):
|
|
cmds.button(self.widgets[character + "_leftPinkyFingerIKPickerButton"], edit = True, bgc = self.orange)
|
|
cmds.button(self.widgets[character + "_leftPinkyIkPvPickerButton"], edit = True, bgc = self.orange)
|
|
createLeftIKRow = True
|
|
|
|
if cmds.objExists(character + ":thumb_l_ik_anim"):
|
|
cmds.button(self.widgets[character + "_leftThumbFingerIKPickerButton"], edit = True, bgc = self.orange)
|
|
cmds.button(self.widgets[character + "_leftThumbIkPvPickerButton"], edit = True, bgc = self.orange)
|
|
createLeftIKRow = True
|
|
|
|
if createLeftIKRow:
|
|
cmds.button(self.widgets[character + "_leftIkFingersRowPickerButton"], edit = True, bgc = self.green)
|
|
cmds.button(self.widgets[character + "_leftIkFingersPvsPickerButton"], edit = True, bgc = self.green)
|
|
|
|
|
|
if cmds.objExists(character + ":l_global_ik_anim"):
|
|
cmds.button(self.widgets[character + "_leftIkGlobalCtrlPickerButton"], edit = True, bgc = self.orange)
|
|
|
|
|
|
|
|
if cmds.objExists(character + ":pinky_metacarpal_ctrl_r"):
|
|
cmds.button(self.widgets[character + "_rightPinkyMetacarpalPickerButton"], edit = True, bgc = self.blue)
|
|
|
|
if cmds.objExists(character + ":pinky_finger_fk_ctrl_1_r"):
|
|
cmds.button(self.widgets[character + "_rightPinky1PickerButton"], edit = True, bgc = self.blue)
|
|
|
|
if cmds.objExists(character + ":pinky_finger_fk_ctrl_2_r"):
|
|
cmds.button(self.widgets[character + "_rightPinky2PickerButton"], edit = True, bgc = self.blue)
|
|
|
|
if cmds.objExists(character + ":pinky_finger_fk_ctrl_3_r"):
|
|
cmds.button(self.widgets[character + "_rightPinky3PickerButton"], edit = True, bgc = self.blue)
|
|
|
|
|
|
if cmds.objExists(character + ":ring_metacarpal_ctrl_r"):
|
|
cmds.button(self.widgets[character + "_rightRingMetacarpalPickerButton"], edit = True, bgc = self.blue)
|
|
|
|
if cmds.objExists(character + ":ring_finger_fk_ctrl_1_r"):
|
|
cmds.button(self.widgets[character + "_rightRing1PickerButton"], edit = True, bgc = self.blue)
|
|
|
|
if cmds.objExists(character + ":ring_finger_fk_ctrl_2_r"):
|
|
cmds.button(self.widgets[character + "_rightRing2PickerButton"], edit = True, bgc = self.blue)
|
|
|
|
if cmds.objExists(character + ":ring_finger_fk_ctrl_3_r"):
|
|
cmds.button(self.widgets[character + "_rightRing3PickerButton"], edit = True, bgc = self.blue)
|
|
|
|
|
|
if cmds.objExists(character + ":middle_metacarpal_ctrl_r"):
|
|
cmds.button(self.widgets[character + "_rightMiddleMetacarpalPickerButton"], edit = True, bgc = self.blue)
|
|
|
|
if cmds.objExists(character + ":middle_finger_fk_ctrl_1_r"):
|
|
cmds.button(self.widgets[character + "_rightMiddle1PickerButton"], edit = True, bgc = self.blue)
|
|
|
|
if cmds.objExists(character + ":middle_finger_fk_ctrl_2_r"):
|
|
cmds.button(self.widgets[character + "_rightMiddle2PickerButton"], edit = True, bgc = self.blue)
|
|
|
|
if cmds.objExists(character + ":middle_finger_fk_ctrl_3_r"):
|
|
cmds.button(self.widgets[character + "_rightMiddle3PickerButton"], edit = True, bgc = self.blue)
|
|
|
|
|
|
if cmds.objExists(character + ":index_metacarpal_ctrl_r"):
|
|
cmds.button(self.widgets[character + "_rightIndexMetacarpalPickerButton"], edit = True, bgc = self.blue)
|
|
|
|
if cmds.objExists(character + ":index_finger_fk_ctrl_1_r"):
|
|
cmds.button(self.widgets[character + "_rightIndex1PickerButton"], edit = True, bgc = self.blue)
|
|
|
|
if cmds.objExists(character + ":index_finger_fk_ctrl_2_r"):
|
|
cmds.button(self.widgets[character + "_rightIndex2PickerButton"], edit = True, bgc = self.blue)
|
|
|
|
if cmds.objExists(character + ":index_finger_fk_ctrl_3_r"):
|
|
cmds.button(self.widgets[character + "_rightIndex3PickerButton"], edit = True, bgc = self.blue)
|
|
|
|
|
|
if cmds.objExists(character + ":thumb_finger_fk_ctrl_1_r"):
|
|
cmds.button(self.widgets[character + "_rightThumb1PickerButton"], edit = True, bgc = self.blue)
|
|
|
|
if cmds.objExists(character + ":thumb_finger_fk_ctrl_2_r"):
|
|
cmds.button(self.widgets[character + "_rightThumb2PickerButton"], edit = True, bgc = self.blue)
|
|
|
|
if cmds.objExists(character + ":thumb_finger_fk_ctrl_3_r"):
|
|
cmds.button(self.widgets[character + "_rightThumb3PickerButton"], edit = True, bgc = self.blue)
|
|
|
|
|
|
|
|
cmds.button(self.widgets[character + "_rightMetaRowPickerButton"], edit = True, bgc = self.green)
|
|
cmds.button(self.widgets[character + "_rightKnuckle1RowPickerButton"], edit = True, bgc = self.green)
|
|
cmds.button(self.widgets[character + "_rightKnuckle2RowPickerButton"], edit = True, bgc = self.green)
|
|
cmds.button(self.widgets[character + "_rightKnuckle3RowPickerButton"], edit = True, bgc = self.green)
|
|
|
|
cmds.button(self.widgets[character + "_rightIndexColumnPickerButton"], edit = True, bgc = self.green)
|
|
cmds.button(self.widgets[character + "_rightMiddleColumnPickerButton"], edit = True, bgc = self.green)
|
|
cmds.button(self.widgets[character + "_rightRingColumnPickerButton"], edit = True, bgc = self.green)
|
|
cmds.button(self.widgets[character + "_rightPinkyColumnPickerButton"], edit = True, bgc = self.green)
|
|
|
|
cmds.button(self.widgets[character + "_rightThumbColumnPickerButton"], edit = True, bgc = self.green)
|
|
|
|
|
|
createRightIKRow = False
|
|
if cmds.objExists(character + ":index_r_ik_anim"):
|
|
cmds.button(self.widgets[character + "_rightIndexFingerIKPickerButton"], edit = True, bgc = self.orange)
|
|
cmds.button(self.widgets[character + "_rightIndexIkPvPickerButton"], edit = True, bgc = self.orange)
|
|
createRightIKRow = True
|
|
|
|
if cmds.objExists(character + ":middle_r_ik_anim"):
|
|
cmds.button(self.widgets[character + "_rightMiddleFingerIKPickerButton"], edit = True, bgc = self.orange)
|
|
cmds.button(self.widgets[character + "_rightMiddleIkPvPickerButton"], edit = True, bgc = self.orange)
|
|
createRightIKRow = True
|
|
|
|
if cmds.objExists(character + ":ring_r_ik_anim"):
|
|
cmds.button(self.widgets[character + "_rightRingFingerIKPickerButton"], edit = True, bgc = self.orange)
|
|
cmds.button(self.widgets[character + "_rightRingIkPvPickerButton"], edit = True, bgc = self.orange)
|
|
createRightIKRow = True
|
|
|
|
if cmds.objExists(character + ":pinky_r_ik_anim"):
|
|
cmds.button(self.widgets[character + "_rightPinkyFingerIKPickerButton"], edit = True, bgc = self.orange)
|
|
cmds.button(self.widgets[character + "_rightPinkyIkPvPickerButton"], edit = True, bgc = self.orange)
|
|
createRightIKRow = True
|
|
|
|
if cmds.objExists(character + ":thumb_r_ik_anim"):
|
|
cmds.button(self.widgets[character + "_rightThumbFingerIKPickerButton"], edit = True, bgc = self.orange)
|
|
cmds.button(self.widgets[character + "_rightThumbIkPvPickerButton"], edit = True, bgc = self.orange)
|
|
createRightIKRow = True
|
|
|
|
if createRightIKRow:
|
|
cmds.button(self.widgets[character + "_rightIkFingersRowPickerButton"], edit = True, bgc = self.green)
|
|
cmds.button(self.widgets[character + "_rightIkFingersPvsPickerButton"], edit = True, bgc = self.green)
|
|
|
|
|
|
if cmds.objExists(character + ":r_global_ik_anim"):
|
|
cmds.button(self.widgets[character + "_rightIkGlobalCtrlPickerButton"], edit = True, bgc = self.orange)
|
|
|
|
|
|
# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
|
|
# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
|
|
# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
|
|
# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
|
|
# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
|
|
def collapseCommand(self, name, layout, *args):
|
|
|
|
if layout == "Body":
|
|
cmds.frameLayout(self.widgets[name + "_bodyFrame"], edit = True, h = 30)
|
|
|
|
|
|
if layout == "Fingers":
|
|
cmds.frameLayout(self.widgets[name + "_fingersFrame"], edit = True, h = 30)
|
|
|
|
|
|
if layout == "Toes":
|
|
cmds.frameLayout(self.widgets[name + "_toesFrame"], edit = True, h = 30)
|
|
|
|
|
|
if layout == "Layers":
|
|
cmds.frameLayout(self.widgets[name + "_layersFrame"], edit = True, h = 30)
|
|
|
|
if layout == "LeftArmSettings":
|
|
cmds.frameLayout(self.widgets[name + "_rigSettings_leftArmFrame"], edit = True, h = 30)
|
|
|
|
if layout == "RightArmSettings":
|
|
cmds.frameLayout(self.widgets[name + "_rigSettings_rightArmFrame"], edit = True, h = 30)
|
|
|
|
if layout == "LeftLegSettings":
|
|
cmds.frameLayout(self.widgets[name + "_rigSettings_leftLegFrame"], edit = True, h = 30)
|
|
|
|
if layout == "RightLegSettings":
|
|
cmds.frameLayout(self.widgets[name + "_rigSettings_rightLegFrame"], edit = True, h = 30)
|
|
|
|
if layout == "SpineSettings":
|
|
cmds.frameLayout(self.widgets[name + "_rigSettings_spineFrame"], edit = True, h = 30)
|
|
|
|
if layout == "HeadSettings":
|
|
cmds.frameLayout(self.widgets[name + "_rigSettings_headFrame"], edit = True, h = 30)
|
|
|
|
if layout == "NeckSettings":
|
|
cmds.frameLayout(self.widgets[name + "_rigSettings_neckFrame"], edit = True, h = 30)
|
|
|
|
if layout == "AutoControlsSettings":
|
|
cmds.frameLayout(self.widgets[name + "_rigSettings_autoControlsFrame"], edit = True, h = 30)
|
|
|
|
# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
|
|
# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
|
|
# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
|
|
# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
|
|
# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
|
|
def expandCommand(self, name, layout, height = None, *args):
|
|
|
|
if layout == "Body":
|
|
cmds.frameLayout(self.widgets[name + "_bodyFrame"], edit = True, h = 470)
|
|
|
|
|
|
if layout == "Fingers":
|
|
cmds.frameLayout(self.widgets[name + "_fingersFrame"], edit = True, h = 205)
|
|
|
|
|
|
if layout == "Toes":
|
|
cmds.frameLayout(self.widgets[name + "_toesFrame"], edit = True, h = 220)
|
|
|
|
if layout == "Layers":
|
|
cmds.frameLayout(self.widgets[name + "_layersFrame"], edit = True, h = 300)
|
|
|
|
if layout == "LeftArmSettings":
|
|
cmds.frameLayout(self.widgets[name + "_rigSettings_leftArmFrame"], edit = True, h = 330)
|
|
|
|
if layout == "RightArmSettings":
|
|
cmds.frameLayout(self.widgets[name + "_rigSettings_rightArmFrame"], edit = True, h = 330)
|
|
|
|
if layout == "LeftLegSettings":
|
|
cmds.frameLayout(self.widgets[name + "_rigSettings_leftLegFrame"], edit = True, h = 280)
|
|
|
|
if layout == "RightLegSettings":
|
|
cmds.frameLayout(self.widgets[name + "_rigSettings_rightLegFrame"], edit = True, h = 280)
|
|
|
|
if layout == "SpineSettings":
|
|
cmds.frameLayout(self.widgets[name + "_rigSettings_spineFrame"], edit = True, h = 150)
|
|
|
|
if layout == "HeadSettings":
|
|
cmds.frameLayout(self.widgets[name + "_rigSettings_headFrame"], edit = True, h = 100)
|
|
|
|
if layout == "NeckSettings":
|
|
cmds.frameLayout(self.widgets[name + "_rigSettings_neckFrame"], edit = True, h = 100)
|
|
|
|
if layout == "AutoControlsSettings":
|
|
cmds.frameLayout(self.widgets[name + "_rigSettings_autoControlsFrame"], edit = True, h = 150)
|
|
|
|
|
|
# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
|
|
# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
|
|
# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
|
|
# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
|
|
# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
|
|
def selectRigSettings_Specific(self, limb, *args):
|
|
character = cmds.symbolButton(self.widgets["activeCharacterThumb"], q = True, ann = True)
|
|
|
|
|
|
if limb == "leftArm":
|
|
cmds.select(character + ":Rig_Settings")
|
|
cmds.select(character + ":ik_wrist_l_anim", add = True)
|
|
|
|
if limb == "rightArm":
|
|
cmds.select(character + ":Rig_Settings")
|
|
cmds.select(character + ":ik_wrist_r_anim", add = True)
|
|
|
|
if limb == "leftLeg":
|
|
cmds.select(character + ":Rig_Settings")
|
|
cmds.select(character + ":ik_foot_anim_l", add = True)
|
|
|
|
if limb == "rightLeg":
|
|
cmds.select(character + ":Rig_Settings")
|
|
cmds.select(character + ":ik_foot_anim_r", add = True)
|
|
|
|
|
|
if limb == "spine":
|
|
cmds.select(character + ":Rig_Settings")
|
|
|
|
if cmds.objExists(character + ":chest_ik_anim"):
|
|
cmds.select(character + ":chest_ik_anim", add = True)
|
|
|
|
if limb == "head":
|
|
cmds.select(character + ":head_fk_anim")
|
|
|
|
if limb == "neck":
|
|
cmds.select(character + ":neck_01_fk_anim")
|
|
|
|
if limb == "auto":
|
|
cmds.select(character + ":clavicle_l_anim")
|
|
cmds.select(character + ":clavicle_r_anim", add = True)
|
|
cmds.select(character + ":hip_anim", add = True)
|
|
cmds.select(character + ":chest_ik_anim", add = True)
|
|
|
|
if limb == "leftFingers":
|
|
cmds.select(clear = True)
|
|
for finger in ["index", "middle", "ring", "pinky", "thumb"]:
|
|
if cmds.objExists(character + ":" + finger + "_finger_fk_ctrl_1_l"):
|
|
cmds.select(character + ":" + finger + "_finger_fk_ctrl_1_l", add = True)
|
|
|
|
if cmds.objExists(character + ":" + finger + "_finger_l_mode_anim"):
|
|
cmds.select(character + ":" + finger + "_finger_l_mode_anim", add = True)
|
|
|
|
|
|
if limb == "rightFingers":
|
|
cmds.select(clear = True)
|
|
for finger in ["index", "middle", "ring", "pinky", "thumb"]:
|
|
if cmds.objExists(character + ":" + finger + "_finger_fk_ctrl_1_r"):
|
|
cmds.select(character + ":" + finger + "_finger_fk_ctrl_1_r", add = True)
|
|
|
|
if cmds.objExists(character + ":" + finger + "_finger_r_mode_anim"):
|
|
cmds.select(character + ":" + finger + "_finger_r_mode_anim", add = True)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
|
|
# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
|
|
# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
|
|
# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
|
|
# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
|
|
def selectRigSettings(self, *args):
|
|
character = cmds.symbolButton(self.widgets["activeCharacterThumb"], q = True, ann = True)
|
|
mods = cmds.getModifiers()
|
|
|
|
|
|
if (mods & 1) > 0:
|
|
cmds.select(character + ":Rig_Settings", tgl = True)
|
|
|
|
if (mods & 1) == 0:
|
|
cmds.select(character + ":Rig_Settings")
|
|
|
|
|
|
# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
|
|
# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
|
|
# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
|
|
# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
|
|
# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
|
|
def findCustomSelectionSets(self, *args):
|
|
|
|
if os.path.exists(self.mayaToolsDir + "/General/ART/system/selectionSets.txt"):
|
|
f = open(self.mayaToolsDir + "/General/ART/system/selectionSets.txt", 'r')
|
|
sets = cPickle.load(f)
|
|
f.close()
|
|
numSets = len(sets)
|
|
|
|
|
|
#make sure menuItem doesn't already exist
|
|
children = cmds.lsUI(mi = True)
|
|
for child in children:
|
|
if cmds.menuItem(child, q = True, docTag = True) == "customSelectionSet":
|
|
cmds.deleteUI(child)
|
|
|
|
for i in range(int(numSets)):
|
|
label = sets[i][0]
|
|
controls = sets[i][1:]
|
|
|
|
#add them to both the select sub menu and the selection sets menu
|
|
menu = cmds.menuItem(parent = self.widgets["selectionSetsCustom"], label = label, docTag = "customSelectionSet", ann = str(sets[i]), c = partial(self.selectFromCustomSet, controls))
|
|
cmds.menuItem(optionBox = True, parent = self.widgets["selectionSetsCustom"], c = partial(self.printSelectionInfo, controls, i))
|
|
|
|
menu = cmds.menuItem(parent = self.widgets["selectionSetMenuPopUp"], label = label, docTag = "customSelectionSet", ann = str(sets[i]), c = partial(self.selectFromCustomSet, controls))
|
|
cmds.menuItem(optionBox = True, parent = self.widgets["selectionSetMenuPopUp"], c = partial(self.printSelectionInfo, controls, i))
|
|
|
|
|
|
|
|
# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
|
|
# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
|
|
# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
|
|
# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
|
|
# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
|
|
def printSelectionInfo(self, controls, removeIndex, *args):
|
|
|
|
string = "Controls in this selection set:\n\n"
|
|
for control in controls:
|
|
string += control + " | "
|
|
|
|
result = cmds.confirmDialog(title = "Selection Details", message = string, button = ["Close", "Rename Set", "Remove This Set"], defaultButton = "Rename Set", cancelButton = "Close", dismissString = "Close", icon = "information")
|
|
|
|
if result == "Remove This Set":
|
|
|
|
if os.path.exists(self.mayaToolsDir + "/General/ART/system/selectionSets.txt"):
|
|
f = open(self.mayaToolsDir + "/General/ART/system/selectionSets.txt", 'r')
|
|
sets = cPickle.load(f)
|
|
f.close()
|
|
|
|
#remove the desired set
|
|
sets.pop(removeIndex)
|
|
|
|
f = open(self.mayaToolsDir + "/General/ART/system/selectionSets.txt", 'w')
|
|
cPickle.dump(sets, f)
|
|
f.close()
|
|
|
|
|
|
if result == "Rename Set":
|
|
|
|
if os.path.exists(self.mayaToolsDir + "/General/ART/system/selectionSets.txt"):
|
|
f = open(self.mayaToolsDir + "/General/ART/system/selectionSets.txt", 'r')
|
|
sets = cPickle.load(f)
|
|
f.close()
|
|
|
|
#rename index 0 of the desired set
|
|
cmds.promptDialog(title = "Rename", message = "New Name:")
|
|
newName = cmds.promptDialog(q = True, text = True)
|
|
sets[removeIndex][0] = newName
|
|
|
|
f = open(self.mayaToolsDir + "/General/ART/system/selectionSets.txt", 'w')
|
|
cPickle.dump(sets, f)
|
|
f.close()
|
|
|
|
|
|
# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
|
|
# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
|
|
# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
|
|
# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
|
|
# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
|
|
def createSelectionSet(self, *args):
|
|
|
|
selection = cmds.ls(sl = True)
|
|
if len(selection) > 0:
|
|
|
|
#strip off the namespace of each selected item(if it has one, if not, don't include that item)
|
|
setList = []
|
|
controls = ["Selection Set"]
|
|
for each in selection:
|
|
if each.find(":") != -1:
|
|
control = each.rpartition(":")[2]
|
|
controls.append(control)
|
|
|
|
|
|
#store this data to file in ART/system
|
|
if os.path.exists(self.mayaToolsDir + "/General/ART/system/selectionSets.txt"):
|
|
f = open(self.mayaToolsDir + "/General/ART/system/selectionSets.txt", 'r')
|
|
existingSetList = cPickle.load(f)
|
|
f.close()
|
|
|
|
f = open(self.mayaToolsDir + "/General/ART/system/selectionSets.txt", 'w')
|
|
existingSetList.append(controls)
|
|
cPickle.dump(existingSetList, f)
|
|
|
|
|
|
|
|
else:
|
|
f = open(self.mayaToolsDir + "/General/ART/system/selectionSets.txt", 'w')
|
|
setList.append(controls)
|
|
cPickle.dump(setList, f)
|
|
|
|
f.close()
|
|
|
|
|
|
#reload
|
|
self.findCustomSelectionSets()
|
|
|
|
|
|
|
|
|
|
else:
|
|
cmds.warning("Nothing selected to create a selection set from.")
|
|
|
|
|
|
|
|
# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
|
|
# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
|
|
# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
|
|
# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
|
|
# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
|
|
def selectFromCustomSet(self, controls, *args):
|
|
character = cmds.symbolButton(self.widgets["activeCharacterThumb"], q = True, ann = True)
|
|
|
|
cmds.select(clear = True)
|
|
|
|
for each in controls:
|
|
if cmds.objExists(character + ":" + each):
|
|
cmds.select(character + ":" + each, add = True)
|
|
|
|
# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
|
|
# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
|
|
# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
|
|
# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
|
|
# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
|
|
def selectEverything(self, *args):
|
|
character = cmds.symbolButton(self.widgets["activeCharacterThumb"], q = True, ann = True)
|
|
controls = list(self.controls)
|
|
controls.append("Rig_Settings")
|
|
|
|
#need to find all space switch nodes for the current character
|
|
cmds.select(character + ":*_space_switcher_follow")
|
|
nodes = cmds.ls(sl = True)
|
|
spaceSwitchers = []
|
|
for node in nodes:
|
|
if node.find("invis") == -1:
|
|
spaceSwitchers.append(node)
|
|
|
|
|
|
selectNodes = []
|
|
for control in spaceSwitchers:
|
|
spaceSwitchNode = control.rpartition("_follow")[0]
|
|
selectNodes.append(spaceSwitchNode)
|
|
|
|
cmds.select(clear = True)
|
|
|
|
|
|
for control in controls:
|
|
if cmds.objExists(character + ":" + control):
|
|
cmds.select(character + ":" + control, add = True)
|
|
|
|
for node in ["fk_orient_world_loc_l", "fk_orient_world_loc_r", "fk_orient_body_loc_l", "fk_orient_body_loc_r", "head_fk_orient_neck", "head_fk_orient_shoulder", "head_fk_orient_body", "head_fk_orient_world"]:
|
|
if cmds.objExists(character + ":" + node):
|
|
cmds.select(character + ":" + node, add = True)
|
|
|
|
for node in selectNodes:
|
|
cmds.select(node, add = True)
|
|
|
|
|
|
|
|
|
|
# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
|
|
# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
|
|
# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
|
|
# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
|
|
# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
|
|
def selectAll(self, *args):
|
|
character = cmds.symbolButton(self.widgets["activeCharacterThumb"], q = True, ann = True)
|
|
controls = list(self.controls)
|
|
controls.append("Rig_Settings")
|
|
|
|
for control in controls:
|
|
if cmds.objExists(character + ":" + control):
|
|
cmds.select(character + ":" + control, add = True)
|
|
|
|
cmds.warning("Custom Controls and Toes not implemented yet into select all")
|
|
|
|
# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
|
|
# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
|
|
# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
|
|
# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
|
|
# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
|
|
def resetAll(self, *args):
|
|
character = cmds.symbolButton(self.widgets["activeCharacterThumb"], q = True, ann = True)
|
|
|
|
avoidAttrs = ["global_scale", "scaleX", "scaleY", "scaleZ", "stretch", "twist_amount", "bias", "spine_01_twistAmount", "spine_02_twistAmount", "spine_03_twistAmount", "spine_04_twistAmount", "spine_05_twistAmount", "sticky", "fkOrientation"]
|
|
|
|
#reset fk arm orientation
|
|
cmds.setAttr(character + ":Rig_Settings.lFkArmOrient", 0)
|
|
cmds.setAttr(character + ":Rig_Settings.rFkArmOrient", 0)
|
|
|
|
for control in self.controls:
|
|
|
|
|
|
if cmds.objExists(character + ":" + control):
|
|
attrs = cmds.listAttr(character + ":" + control, keyable = True, unlocked = True)
|
|
if attrs != None:
|
|
for attr in attrs:
|
|
if attr not in avoidAttrs:
|
|
cmds.setAttr(character + ":" + control + "." + attr, 0)
|
|
|
|
if attr in ["global_scale", "scaleX", "scaleY", "scaleZ"]:
|
|
cmds.setAttr(character + ":" + control + "." + attr, 1)
|
|
|
|
cmds.warning("Custom Controls and Toes not implemented yet into reset all")
|
|
|
|
# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
|
|
# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
|
|
# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
|
|
# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
|
|
# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
|
|
def resetSelection(self, *args):
|
|
|
|
character = cmds.symbolButton(self.widgets["activeCharacterThumb"], q = True, ann = True)
|
|
selection = cmds.ls(sl = True)
|
|
|
|
|
|
for each in selection:
|
|
if each.find(character + ":") == 0:
|
|
attrs = cmds.listAttr(each, keyable = True, unlocked = True)
|
|
avoidAttrs = ["global_scale", "scaleX", "scaleY", "scaleZ", "stretch", "twist_amount", "bias", "spine_01_twistAmount", "spine_02_twistAmount", "spine_03_twistAmount", "spine_04_twistAmount", "spine_05_twistAmount", "sticky", "fkOrientation"]
|
|
|
|
|
|
if attrs != None:
|
|
for attr in attrs:
|
|
if attr not in avoidAttrs:
|
|
cmds.setAttr(each + "." + attr, 0)
|
|
|
|
if attr in ["global_scale", "scaleX", "scaleY", "scaleZ"]:
|
|
cmds.setAttr(each + "." + attr, 1)
|
|
|
|
# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
|
|
# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
|
|
# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
|
|
# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
|
|
# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
|
|
def importMotion(self, *args):
|
|
|
|
import ART_importMotion
|
|
reload(ART_importMotion)
|
|
ART_importMotion.ImportMotionUI()
|
|
|
|
# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
|
|
# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
|
|
# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
|
|
# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
|
|
# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
|
|
def exportMotion(self, *args):
|
|
|
|
import ART_exportMotion
|
|
reload(ART_exportMotion)
|
|
ART_exportMotion.ExportMotionUI()
|
|
|
|
|
|
# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
|
|
# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
|
|
# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
|
|
# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
|
|
# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
|
|
def setHeadSpace(self, mode, *args):
|
|
character = cmds.symbolButton(self.widgets["activeCharacterThumb"], q = True, ann = True)
|
|
|
|
if mode == 0:
|
|
cmds.menuItem(self.widgets["neckSpaceRB"], edit = True, rb = True)
|
|
cmds.setAttr(character + ":" + "head_fk_anim.fkOrientation", 0)
|
|
|
|
if mode == 1:
|
|
cmds.menuItem(self.widgets["shoulderSpaceRB"], edit = True, rb = True)
|
|
cmds.setAttr(character + ":" + "head_fk_anim.fkOrientation", 1)
|
|
|
|
if mode == 2:
|
|
cmds.menuItem(self.widgets["bodySpaceRB"], edit = True, rb = True)
|
|
cmds.setAttr(character + ":" + "head_fk_anim.fkOrientation", 2)
|
|
|
|
if mode == 3:
|
|
cmds.menuItem(self.widgets["worldSpaceRB"], edit = True, rb = True)
|
|
cmds.setAttr(character + ":" + "head_fk_anim.fkOrientation", 3)
|
|
|
|
|
|
# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
|
|
# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
|
|
# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
|
|
# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
|
|
# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
|
|
def getHeadSpace(self, *args):
|
|
|
|
character = cmds.symbolButton(self.widgets["activeCharacterThumb"], q = True, ann = True)
|
|
space = cmds.getAttr(character + ":" + "head_fk_anim.fkOrientation")
|
|
|
|
if space == 0:
|
|
cmds.menuItem(self.widgets["neckSpaceRB"], edit = True, rb = True)
|
|
|
|
if space == 1:
|
|
cmds.menuItem(self.widgets["shoulderSpaceRB"], edit = True, rb = True)
|
|
|
|
if space == 2:
|
|
cmds.menuItem(self.widgets["bodySpaceRB"], edit = True, rb = True)
|
|
|
|
if space == 3:
|
|
cmds.menuItem(self.widgets["worldSpaceRB"], edit = True, rb = True)
|
|
|
|
|
|
|
|
# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
|
|
# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
|
|
# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
|
|
# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
|
|
# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
|
|
def getNeckSpace(self, *args):
|
|
|
|
character = cmds.symbolButton(self.widgets["activeCharacterThumb"], q = True, ann = True)
|
|
space = cmds.getAttr(character + ":" + "neck_01_fk_anim.fkOrientation")
|
|
|
|
if space == 0:
|
|
cmds.menuItem(self.widgets["neckOrientShoulderSpaceRB"], edit = True, rb = True)
|
|
|
|
if space == 1:
|
|
cmds.menuItem(self.widgets["neckOrientBodySpaceRB"], edit = True, rb = True)
|
|
|
|
if space == 2:
|
|
cmds.menuItem(self.widgets["neckOrientWorldSpaceRB"], edit = True, rb = True)
|
|
|
|
# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
|
|
# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
|
|
# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
|
|
# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
|
|
# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
|
|
def setControlSpace(self, spaceSwitchNode, attr, *args):
|
|
character = cmds.symbolButton(self.widgets["activeCharacterThumb"], q = True, ann = True)
|
|
|
|
#get match and match method settings
|
|
matching = cmds.menuItem(self.widgets["spaceSwitch_MatchToggleCB"], q = True, cb = True)
|
|
matchToControl = cmds.menuItem(self.widgets["spaceSwitch_MatchMethodCB"], q = True, cb = True)
|
|
|
|
|
|
|
|
if attr == None:
|
|
|
|
if matching:
|
|
#create temp locator to snap the space switch node to
|
|
control = character + ":" + spaceSwitchNode.rpartition("_space")[0]
|
|
currentTime = cmds.currentTime(q = True)
|
|
|
|
#set pre-frame key
|
|
if matchToControl == False:
|
|
cmds.setKeyframe(character + ":" + spaceSwitchNode, t = (currentTime - 1))
|
|
cmds.setKeyframe(control, t = (currentTime - 1))
|
|
|
|
else:
|
|
cmds.setKeyframe(character + ":" + spaceSwitchNode, t = (currentTime - 1))
|
|
cmds.setKeyframe(control, t = (currentTime - 1))
|
|
cmds.currentTime(currentTime - 1)
|
|
loc = cmds.spaceLocator()[0]
|
|
constraint = cmds.parentConstraint(control, loc)[0]
|
|
cmds.delete(constraint)
|
|
|
|
constraint = cmds.parentConstraint(loc, control)[0]
|
|
cmds.setKeyframe(control, t = (cmds.currentTime(q = True)))
|
|
cmds.delete(constraint)
|
|
cmds.delete(loc)
|
|
|
|
|
|
#create our temp loc
|
|
tempLoc = cmds.spaceLocator()
|
|
cmds.currentTime(currentTime)
|
|
|
|
#constrain temp loc
|
|
if matchToControl == False:
|
|
constraint = cmds.parentConstraint(character + ":" + spaceSwitchNode, tempLoc[0])[0]
|
|
|
|
else:
|
|
constraint = cmds.parentConstraint(control, tempLoc[0])[0]
|
|
cmds.delete(constraint)
|
|
|
|
|
|
#match and switch space
|
|
|
|
attrs = []
|
|
try:
|
|
attrs.extend(cmds.listAttr(character + ":" + spaceSwitchNode, string = "space_*"))
|
|
except:
|
|
pass
|
|
|
|
try:
|
|
attrs.extend(cmds.listAttr(control, string = "space_*"))
|
|
except:
|
|
pass
|
|
|
|
for attribute in attrs:
|
|
if cmds.objExists(character + ":" + spaceSwitchNode+ "." + attribute):
|
|
cmds.setAttr(character + ":" + spaceSwitchNode+ "." + attribute, 0)
|
|
|
|
if cmds.objExists(control + "." + attribute):
|
|
cmds.setAttr(control + "." + attribute, 0)
|
|
|
|
|
|
if matchToControl == False:
|
|
constraint = cmds.parentConstraint(tempLoc[0], character + ":" + spaceSwitchNode)[0]
|
|
cmds.setKeyframe(character + ":" + spaceSwitchNode, t = currentTime)
|
|
cmds.setKeyframe(control, t = currentTime)
|
|
cmds.delete(constraint)
|
|
cmds.delete(tempLoc)
|
|
cmds.select(clear = True)
|
|
|
|
else:
|
|
try:
|
|
constraint = cmds.parentConstraint(tempLoc[0], control)[0]
|
|
except:
|
|
constraint = cmds.pointConstraint(tempLoc[0], control)[0]
|
|
|
|
|
|
#zero out space node
|
|
for attr in [".tx", ".ty", ".tz", ".rx", ".ry", ".rz"]:
|
|
cmds.setAttr(character + ":" + spaceSwitchNode + attr, 0)
|
|
|
|
|
|
cmds.setKeyframe(control, t = currentTime)
|
|
cmds.delete(constraint)
|
|
cmds.delete(tempLoc)
|
|
cmds.select(clear = True)
|
|
|
|
|
|
#if we are not matching, just set attrs
|
|
else:
|
|
currentTime = cmds.currentTime(q = True)
|
|
cmds.setKeyframe(character + ":" + spaceSwitchNode, t = (currentTime - 1))
|
|
|
|
attrs = []
|
|
try:
|
|
attrs.extend(cmds.listAttr(character + ":" + spaceSwitchNode, string = "space_*"))
|
|
except:
|
|
pass
|
|
|
|
try:
|
|
attrs.extend(cmds.listAttr(control, string = "space_*"))
|
|
except:
|
|
pass
|
|
|
|
for attr in attrs:
|
|
|
|
if cmds.objExists(character + ":" + spaceSwitchNode+ "." + attribute):
|
|
cmds.setAttr(character + ":" + spaceSwitchNode+ "." + attribute, 0)
|
|
|
|
if cmds.objExists(control + "." + attribute):
|
|
cmds.setAttr(control + "." + attribute, 0)
|
|
|
|
cmds.setKeyframe(character + ":" + spaceSwitchNode, t = currentTime)
|
|
cmds.setKeyframe(control, t = currentTime)
|
|
|
|
|
|
|
|
|
|
#if switching to a space other than default
|
|
else:
|
|
|
|
if matching:
|
|
#create temp locator to snap the space switch node to
|
|
control = character + ":" + spaceSwitchNode.rpartition("_space")[0]
|
|
currentTime = cmds.currentTime(q = True)
|
|
|
|
#set pre-frame key
|
|
if matchToControl == False:
|
|
cmds.currentTime(currentTime - 1)
|
|
cmds.setKeyframe(character + ":" + spaceSwitchNode)
|
|
cmds.setKeyframe(control)
|
|
|
|
else:
|
|
cmds.currentTime(currentTime - 1)
|
|
cmds.setKeyframe(character + ":" + spaceSwitchNode)
|
|
cmds.setKeyframe(control)
|
|
cmds.currentTime(currentTime - 1)
|
|
loc = cmds.spaceLocator()[0]
|
|
|
|
try:
|
|
constraint = cmds.parentConstraint(control, loc)[0]
|
|
except:
|
|
constraint = cmds.pointConstraint(control, loc)[0]
|
|
cmds.delete(constraint)
|
|
|
|
try:
|
|
constraint = cmds.parentConstraint(loc, control)[0]
|
|
|
|
except:
|
|
constraint = cmds.pointConstraint(loc, control)[0]
|
|
|
|
cmds.setKeyframe(control, t = (cmds.currentTime(q = True)))
|
|
cmds.delete(constraint)
|
|
cmds.delete(loc)
|
|
|
|
|
|
|
|
#create our temp loc
|
|
tempLoc = cmds.spaceLocator()[0]
|
|
cmds.currentTime(currentTime)
|
|
|
|
#constrain temp loc
|
|
if matchToControl == False:
|
|
constraint = cmds.parentConstraint(character + ":" + spaceSwitchNode, tempLoc)[0]
|
|
else:
|
|
constraint = cmds.parentConstraint(control, tempLoc)[0]
|
|
cmds.delete(constraint)
|
|
|
|
|
|
|
|
#match and switch space
|
|
attrs = []
|
|
try:
|
|
attrs.extend(cmds.listAttr(character + ":" + spaceSwitchNode, string = "space_*"))
|
|
except:
|
|
pass
|
|
|
|
try:
|
|
attrs.extend(cmds.listAttr(control, string = "space_*"))
|
|
except:
|
|
pass
|
|
|
|
|
|
for attribute in attrs:
|
|
cmds.currentTime(currentTime)
|
|
|
|
if cmds.objExists(character + ":" + spaceSwitchNode + "." + attribute):
|
|
cmds.setAttr(character + ":" + spaceSwitchNode + "." + attribute, 0)
|
|
cmds.setKeyframe(character + ":" + spaceSwitchNode, t = currentTime)
|
|
|
|
if cmds.objExists(control + "." + attribute):
|
|
cmds.setAttr(control + "." + attribute, 0)
|
|
cmds.setKeyframe(control, t = currentTime)
|
|
|
|
if cmds.objExists(character + ":" + spaceSwitchNode + "." + attr):
|
|
cmds.setAttr(character + ":" + spaceSwitchNode + "." + attr, 1)
|
|
cmds.setKeyframe(character + ":" + spaceSwitchNode, attribute = attr, t = currentTime)
|
|
|
|
if cmds.objExists(control + "." + attr):
|
|
cmds.setAttr(control + "." + attr, 1)
|
|
cmds.setKeyframe(control, attribute = attr, t = currentTime)
|
|
|
|
|
|
if matchToControl == False:
|
|
constraint = cmds.parentConstraint(tempLoc, character + ":" + spaceSwitchNode)[0]
|
|
cmds.setKeyframe(character + ":" + spaceSwitchNode, t = currentTime)
|
|
cmds.delete(constraint)
|
|
cmds.delete(tempLoc)
|
|
cmds.select(clear = True)
|
|
|
|
else:
|
|
try:
|
|
constraint = cmds.parentConstraint(tempLoc, control)[0]
|
|
except:
|
|
constraint = cmds.pointConstraint(tempLoc, control)[0]
|
|
|
|
#zero out space node
|
|
for attribute in [".tx", ".ty", ".tz", ".rx", ".ry", ".rz"]:
|
|
cmds.setAttr(character + ":" + spaceSwitchNode + attribute, 0)
|
|
|
|
cmds.setKeyframe(control, t = currentTime)
|
|
cmds.delete(constraint)
|
|
cmds.delete(tempLoc)
|
|
cmds.select(clear = True)
|
|
|
|
|
|
#if we are not matching, just set attrs
|
|
else:
|
|
currentTime = cmds.currentTime(q = True)
|
|
cmds.setKeyframe(character + ":" + spaceSwitchNode, t = (currentTime - 1))
|
|
cmds.setKeyframe(control, t = (currentTime - 1))
|
|
|
|
attrs = []
|
|
try:
|
|
attrs.extend(cmds.listAttr(character + ":" + spaceSwitchNode, string = "space_*"))
|
|
except:
|
|
pass
|
|
|
|
try:
|
|
attrs.extend(cmds.listAttr(control, string = "space_*"))
|
|
except:
|
|
pass
|
|
|
|
|
|
for attribute in attrs:
|
|
if cmds.objExists(character + ":" + spaceSwitchNode+ "." + attribute):
|
|
cmds.setAttr(character + ":" + spaceSwitchNode+ "." + attribute, 0)
|
|
|
|
if cmds.objExists(control + "." + attribute):
|
|
cmds.setAttr(control + "." + attribute, 0)
|
|
|
|
if cmds.objExists(character + ":" + spaceSwitchNode+ "." + attr):
|
|
cmds.setAttr(character + ":" + spaceSwitchNode + "." + attr, 1)
|
|
cmds.setKeyframe(character + ":" + spaceSwitchNode, attribute = attr, t = currentTime)
|
|
|
|
if cmds.objExists(control + "." + attribute):
|
|
cmds.setAttr(control + "." + attr, 1)
|
|
cmds.setKeyframe(control, attribute = attr, t = currentTime)
|
|
|
|
|
|
#set the current time back
|
|
cmds.currentTime(currentTime)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
|
|
# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
|
|
# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
|
|
# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
|
|
# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
|
|
def getControlSpaces(self, popupMenu, radioCollection, spaceSwitchNode, *args):
|
|
character = cmds.symbolButton(self.widgets["activeCharacterThumb"], q = True, ann = True)
|
|
|
|
#delete any existing children of the radioCollection
|
|
menuItems = cmds.lsUI(mi = True)
|
|
for item in menuItems:
|
|
if cmds.menuItem(item,q = True, docTag = True) == str(radioCollection):
|
|
cmds.deleteUI(item)
|
|
|
|
#add spaces to radio menu item collection
|
|
if cmds.objExists(character + ":" + spaceSwitchNode):
|
|
children = cmds.popupMenu(popupMenu, q = True, itemArray = True)
|
|
|
|
for child in children:
|
|
|
|
label = cmds.menuItem(child, q = True, label = True)
|
|
if label == "Space Switching":
|
|
parentSpace = cmds.listRelatives(character + ":" + spaceSwitchNode + "_follow", parent = True)[0]
|
|
parentSpace = parentSpace.partition(":")[2]
|
|
|
|
#add the default space
|
|
defMenu = cmds.menuItem(label = "default [" + parentSpace + "]", parent = child, cl = radioCollection, rb = False, docTag = str(radioCollection), c = partial(self.setControlSpace, spaceSwitchNode, None))
|
|
|
|
|
|
#add the rest of the spaces foud on the space switch node
|
|
control = spaceSwitchNode.partition("_space")[0]
|
|
attrs = []
|
|
|
|
try:
|
|
attrs.extend(cmds.listAttr(character + ":" + spaceSwitchNode, string = "space_*"))
|
|
except:
|
|
pass
|
|
|
|
try:
|
|
attrs.extend(cmds.listAttr(character + ":" + control, string = "space_*"))
|
|
except:
|
|
pass
|
|
|
|
|
|
found = False
|
|
for attr in attrs:
|
|
label = attr.partition("space_")[2]
|
|
|
|
if cmds.objExists(character + ":" + spaceSwitchNode + "." + attr):
|
|
value = cmds.getAttr(character + ":" + spaceSwitchNode + "." + attr)
|
|
|
|
if cmds.objExists(character + ":" + control + "." + attr):
|
|
value = cmds.getAttr(character + ":" + control + "." + attr)
|
|
|
|
if value == True:
|
|
found = True
|
|
|
|
cmds.menuItem(label = label, parent = child, cl = radioCollection, rb = value, docTag = str(radioCollection), c = partial(self.setControlSpace, spaceSwitchNode, attr))
|
|
|
|
if found == False:
|
|
cmds.menuItem(defMenu, edit = True, rb = True)
|
|
|
|
|
|
# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
|
|
# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
|
|
# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
|
|
# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
|
|
# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
|
|
def spaceSwitcher(self, *args):
|
|
if cmds.symbolButton(self.widgets["activeCharacterThumb"], q= True, exists = True):
|
|
character = cmds.symbolButton(self.widgets["activeCharacterThumb"], q = True, ann = True)
|
|
import ART_spaceSwitcher
|
|
reload(ART_spaceSwitcher)
|
|
ART_spaceSwitcher.SpaceSwitcher(character, self)
|
|
|
|
else:
|
|
cmds.deleteUI("spaceSwitcherUI")
|
|
|
|
|
|
# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
|
|
# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
|
|
# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
|
|
# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
|
|
# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
|
|
def createSpace(self, *args):
|
|
if cmds.symbolButton(self.widgets["activeCharacterThumb"], q= True, exists = True):
|
|
character = cmds.symbolButton(self.widgets["activeCharacterThumb"], q = True, ann = True)
|
|
|
|
import ART_spaceSwitcher
|
|
reload(ART_spaceSwitcher)
|
|
inst = ART_spaceSwitcher.SpaceSwitcher(character, self)
|
|
cmds.deleteUI("spaceSwitcherUI")
|
|
inst.createSpaceSwitcherSpace()
|
|
|
|
else:
|
|
cmds.warning("No Animation UI detected")
|
|
|
|
|
|
|
|
|
|
# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
|
|
# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
|
|
# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
|
|
# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
|
|
# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
|
|
def poseEditor(self, *args):
|
|
|
|
character = cmds.symbolButton(self.widgets["activeCharacterThumb"], q = True, ann = True)
|
|
|
|
import ART_poseEditor
|
|
reload(ART_poseEditor)
|
|
ART_poseEditor.PoseEditor_UI(character, self)
|
|
|
|
|
|
|
|
# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
|
|
# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
|
|
# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
|
|
# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
|
|
# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
|
|
def copyPose(self, *args):
|
|
|
|
#grab selection
|
|
selection = cmds.ls(sl = True)
|
|
|
|
#get attributes from each object in selection
|
|
poseData = []
|
|
|
|
for each in selection:
|
|
control = each.partition(":")[2]
|
|
controlInfo = [control]
|
|
attrs = cmds.listAttr(each, keyable = True)
|
|
|
|
for attr in attrs:
|
|
value = cmds.getAttr(each + "." + attr)
|
|
controlInfo.append(value)
|
|
|
|
poseData.append(controlInfo)
|
|
|
|
|
|
#write pose data to file
|
|
f = open(self.mayaToolsDir + "/poseCache.txt", 'w')
|
|
cPickle.dump(poseData, f)
|
|
f.close
|
|
|
|
|
|
#change the annotation of the button to have the clipboard contents
|
|
string = "Pose Clipboard Contents:\n\n"
|
|
|
|
for pose in poseData:
|
|
control = pose[0]
|
|
string += control + "\n"
|
|
|
|
cmds.symbolButton(self.widgets["pickerPoseTools"], edit = True, ann = string)
|
|
|
|
|
|
|
|
|
|
# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
|
|
# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
|
|
# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
|
|
# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
|
|
# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
|
|
def pastePose(self, *args):
|
|
|
|
#load pose from poseCache file
|
|
poseCacheFile = self.mayaToolsDir + "/poseCache.txt"
|
|
character = cmds.symbolButton(self.widgets["activeCharacterThumb"], q = True, ann = True)
|
|
|
|
if os.path.exists(poseCacheFile):
|
|
f = open(poseCacheFile, 'r')
|
|
poseData = cPickle.load(f)
|
|
f.close()
|
|
|
|
|
|
|
|
#sort through pose data, finding control, and values
|
|
for data in poseData:
|
|
control = data[0]
|
|
newData = []
|
|
for i in range(1, int(len(data))):
|
|
newData.append(data[i])
|
|
|
|
attrs = cmds.listAttr(character + ":" + control, keyable = True, unlocked = True)
|
|
|
|
for i in range(int(len(attrs))):
|
|
cmds.setAttr(character + ":" + control + "." + attrs[i], newData[i])
|
|
|
|
|
|
# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
|
|
# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
|
|
# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
|
|
# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
|
|
# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
|
|
def pastePreview(self, *args):
|
|
|
|
#load pose from poseCache file
|
|
poseCacheFile = self.mayaToolsDir + "/poseCache.txt"
|
|
character = cmds.symbolButton(self.widgets["activeCharacterThumb"], q = True, ann = True)
|
|
|
|
if os.path.exists(poseCacheFile):
|
|
f = open(poseCacheFile, 'r')
|
|
poseData = cPickle.load(f)
|
|
f.close()
|
|
|
|
|
|
#sort through pose data, finding control, and values
|
|
cmds.select(clear = True)
|
|
for data in poseData:
|
|
control = data[0]
|
|
cmds.select(character + ":" + control, add = True)
|
|
|
|
|
|
|
|
# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
|
|
# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
|
|
# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
|
|
# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
|
|
# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
|
|
def pasteOppositePreview(self, *args):
|
|
|
|
#load pose from poseCache file
|
|
poseCacheFile = self.mayaToolsDir + "/poseCache.txt"
|
|
character = cmds.symbolButton(self.widgets["activeCharacterThumb"], q = True, ann = True)
|
|
|
|
if os.path.exists(poseCacheFile):
|
|
f = open(poseCacheFile, 'r')
|
|
poseData = cPickle.load(f)
|
|
f.close()
|
|
|
|
|
|
#sort through pose data, finding control, and values
|
|
cmds.select(clear = True)
|
|
for data in poseData:
|
|
control = data[0]
|
|
ctrl = control
|
|
|
|
if control.find("_l") != -1:
|
|
ctrl = control.rpartition("_l")[0] + "_r"
|
|
|
|
if control.find("_l_") != -1:
|
|
prefix = control.partition("_l_")[0]
|
|
suffix = control.partition("_l_")[2]
|
|
ctrl = prefix + "_r_" + suffix
|
|
|
|
if control.find("_r") != -1:
|
|
ctrl = control.rpartition("_r")[0] + "_l"
|
|
|
|
if control.find("_r_") != -1:
|
|
prefix = control.partition("_r_")[0]
|
|
suffix = control.partition("_r_")[2]
|
|
ctrl = prefix + "_l_" + suffix
|
|
|
|
cmds.select(character + ":" + ctrl, add = True)
|
|
|
|
|
|
# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
|
|
# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
|
|
# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
|
|
# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
|
|
# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
|
|
def pastePoseOpposite(self, *args):
|
|
|
|
#load pose from poseCache file
|
|
poseCacheFile = self.mayaToolsDir + "/poseCache.txt"
|
|
character = cmds.symbolButton(self.widgets["activeCharacterThumb"], q = True, ann = True)
|
|
mirrorAllTransControls = []
|
|
mirrorxTransControls = ["ik_elbow_l_anim", "ik_elbow_r_anim", "clavicle_l_anim", "clavicle_r_anim","ik_foot_anim_l", "ik_foot_anim_r", "ik_wrist_l_anim", "ik_wrist_r_anim"]
|
|
mirrorRotateZandY = ["ik_foot_anim_l", "ik_foot_anim_r", "ik_wrist_l_anim", "ik_wrist_r_anim"]
|
|
#mirrorRotateY = ["ik_wrist_l_anim", "ik_wrist_r_anim"]
|
|
|
|
if os.path.exists(poseCacheFile):
|
|
f = open(poseCacheFile, 'r')
|
|
poseData = cPickle.load(f)
|
|
f.close()
|
|
|
|
|
|
#sort through pose data, finding control, and values
|
|
for data in poseData:
|
|
control = data[0]
|
|
newData = []
|
|
for i in range(1, int(len(data))):
|
|
newData.append(data[i])
|
|
|
|
attrs = cmds.listAttr(character + ":" + control, keyable = True, unlocked = True)
|
|
|
|
if control.find("_l") != -1:
|
|
if control.rpartition("_l")[2] == "":
|
|
ctrl = control.rpartition("_l")[0] + "_r"
|
|
|
|
if ctrl in mirrorAllTransControls:
|
|
for attr in attrs:
|
|
if attr.find("translateX") == 0:
|
|
index = attrs.index(attr)
|
|
newData[index] = newData[index] * -1
|
|
if attr.find("translateY") == 0:
|
|
index = attrs.index(attr)
|
|
newData[index] = newData[index] * -1
|
|
if attr.find("translateZ") == 0:
|
|
index = attrs.index(attr)
|
|
newData[index] = newData[index] * -1
|
|
|
|
if ctrl in mirrorxTransControls:
|
|
for attr in attrs:
|
|
if attr.find("translateX") == 0:
|
|
index = attrs.index(attr)
|
|
newData[index] = newData[index] * -1
|
|
|
|
if ctrl in mirrorRotateZandY:
|
|
for attr in attrs:
|
|
if attr.find("rotateY") == 0:
|
|
index = attrs.index(attr)
|
|
newData[index] = newData[index] * -1
|
|
if attr.find("rotateZ") == 0:
|
|
index = attrs.index(attr)
|
|
newData[index] = newData[index] * -1
|
|
|
|
|
|
for i in range(int(len(attrs))):
|
|
cmds.setAttr(character + ":" + ctrl + "." + attrs[i], newData[i])
|
|
|
|
|
|
|
|
|
|
if control.find("_l_") != -1:
|
|
prefix = control.partition("_l_")[0]
|
|
suffix = control.partition("_l_")[2]
|
|
ctrl = prefix + "_r_" + suffix
|
|
|
|
if ctrl in mirrorAllTransControls:
|
|
for attr in attrs:
|
|
if attr.find("translateX") == 0:
|
|
index = attrs.index(attr)
|
|
newData[index] = newData[index] * -1
|
|
if attr.find("translateY") == 0:
|
|
index = attrs.index(attr)
|
|
newData[index] = newData[index] * -1
|
|
if attr.find("translateZ") == 0:
|
|
index = attrs.index(attr)
|
|
newData[index] = newData[index] * -1
|
|
|
|
if ctrl in mirrorxTransControls:
|
|
for attr in attrs:
|
|
if attr.find("translateX") == 0:
|
|
index = attrs.index(attr)
|
|
newData[index] = newData[index] * -1
|
|
|
|
if ctrl in mirrorRotateZandY:
|
|
for attr in attrs:
|
|
if attr.find("rotateY") == 0:
|
|
index = attrs.index(attr)
|
|
newData[index] = newData[index] * -1
|
|
if attr.find("rotateZ") == 0:
|
|
index = attrs.index(attr)
|
|
newData[index] = newData[index] * -1
|
|
|
|
|
|
for i in range(int(len(attrs))):
|
|
cmds.setAttr(character + ":" + ctrl + "." + attrs[i], newData[i])
|
|
|
|
|
|
|
|
if control.find("_r") != -1:
|
|
if control.rpartition("_r")[2] == "":
|
|
ctrl = control.rpartition("_r")[0] + "_l"
|
|
|
|
if ctrl in mirrorAllTransControls:
|
|
for attr in attrs:
|
|
if attr.find("translateX") == 0:
|
|
index = attrs.index(attr)
|
|
newData[index] = newData[index] * -1
|
|
if attr.find("translateY") == 0:
|
|
index = attrs.index(attr)
|
|
newData[index] = newData[index] * -1
|
|
if attr.find("translateZ") == 0:
|
|
index = attrs.index(attr)
|
|
newData[index] = newData[index] * -1
|
|
|
|
if ctrl in mirrorxTransControls:
|
|
for attr in attrs:
|
|
if attr.find("translateX") == 0:
|
|
index = attrs.index(attr)
|
|
newData[index] = newData[index] * -1
|
|
|
|
if ctrl in mirrorRotateZandY:
|
|
for attr in attrs:
|
|
if attr.find("rotateY") == 0:
|
|
index = attrs.index(attr)
|
|
newData[index] = newData[index] * -1
|
|
if attr.find("rotateZ") == 0:
|
|
index = attrs.index(attr)
|
|
newData[index] = newData[index] * -1
|
|
|
|
|
|
for i in range(int(len(attrs))):
|
|
cmds.setAttr(character + ":" + ctrl + "." + attrs[i], newData[i])
|
|
|
|
|
|
if control.find("_r_") != -1:
|
|
prefix = control.partition("_r_")[0]
|
|
suffix = control.partition("_r_")[2]
|
|
ctrl = prefix + "_l_" + suffix
|
|
|
|
if ctrl in mirrorAllTransControls:
|
|
for attr in attrs:
|
|
if attr.find("translateX") == 0:
|
|
index = attrs.index(attr)
|
|
newData[index] = newData[index] * -1
|
|
if attr.find("translateY") == 0:
|
|
index = attrs.index(attr)
|
|
newData[index] = newData[index] * -1
|
|
if attr.find("translateZ") == 0:
|
|
index = attrs.index(attr)
|
|
newData[index] = newData[index] * -1
|
|
|
|
if ctrl in mirrorxTransControls:
|
|
for attr in attrs:
|
|
if attr.find("translateX") == 0:
|
|
index = attrs.index(attr)
|
|
newData[index] = newData[index] * -1
|
|
|
|
if ctrl in mirrorRotateZandY:
|
|
for attr in attrs:
|
|
if attr.find("rotateY") == 0:
|
|
index = attrs.index(attr)
|
|
newData[index] = newData[index] * -1
|
|
if attr.find("rotateZ") == 0:
|
|
index = attrs.index(attr)
|
|
newData[index] = newData[index] * -1
|
|
|
|
|
|
|
|
for i in range(int(len(attrs))):
|
|
cmds.setAttr(character + ":" + ctrl + "." + attrs[i], newData[i])
|
|
|
|
|
|
|
|
# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
|
|
# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
|
|
# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
|
|
# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
|
|
# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
|
|
def toggleControlVis(self, visibility, *args):
|
|
character = cmds.symbolButton(self.widgets["activeCharacterThumb"], q = True, ann = True)
|
|
|
|
controls = []
|
|
for control in ["head_fk_anim", "neck_01_fk_anim", "neck_02_fk_anim", "neck_03_fk_anim", "spine_01_anim", "spine_02_anim", "spine_03_anim", "spine_04_anim", "spine_05_anim", "mid_ik_anim", "chest_ik_anim",
|
|
"body_anim", "hip_anim", "clavicle_l_anim", "clavicle_r_anim", "fk_arm_l_anim", "fk_arm_r_anim", "fk_elbow_l_anim", "fk_elbow_r_anim", "fk_wrist_l_anim", "fk_wrist_r_anim",
|
|
"ik_elbow_l_anim", "ik_elbow_r_anim", "ik_wrist_l_anim", "ik_wrist_r_anim", "fk_thigh_l_anim", "fk_thigh_r_anim", "fk_calf_l_anim", "fk_calf_r_anim", "fk_foot_l_anim", "fk_foot_r_anim",
|
|
"fk_ball_l_anim", "fk_ball_r_anim", "ik_foot_anim_l", "ik_foot_anim_r", "heel_ctrl_l", "heel_ctrl_r", "toe_wiggle_ctrl_l", "toe_wiggle_ctrl_r",
|
|
"toe_tip_ctrl_l", "toe_tip_ctrl_r", "master_anim", "offset_anim", "root_anim", "upperarm_l_twist_anim", "upperarm_l_twist_2_anim", "upperarm_l_twist_3_anim", "upperarm_r_twist_anim", "upperarm_r_twist_2_anim", "upperarm_r_twist_3_anim", "l_thigh_twist_01_anim", "r_thigh_twist_01_anim",
|
|
"pinky_metacarpal_ctrl_l", "pinky_metacarpal_ctrl_r", "pinky_finger_fk_ctrl_1_l", "pinky_finger_fk_ctrl_1_r", "pinky_finger_fk_ctrl_2_l", "pinky_finger_fk_ctrl_2_r", "pinky_finger_fk_ctrl_3_l", "pinky_finger_fk_ctrl_3_r",
|
|
"ring_metacarpal_ctrl_l", "ring_metacarpal_ctrl_r", "ring_finger_fk_ctrl_1_l", "ring_finger_fk_ctrl_1_r", "ring_finger_fk_ctrl_2_l", "ring_finger_fk_ctrl_2_r", "ring_finger_fk_ctrl_3_l", "ring_finger_fk_ctrl_3_r",
|
|
"middle_metacarpal_ctrl_l", "middle_metacarpal_ctrl_r", "middle_finger_fk_ctrl_1_l", "middle_finger_fk_ctrl_1_r", "middle_finger_fk_ctrl_2_l", "middle_finger_fk_ctrl_2_r", "middle_finger_fk_ctrl_3_l", "middle_finger_fk_ctrl_3_r",
|
|
"index_metacarpal_ctrl_l", "index_metacarpal_ctrl_r", "index_finger_fk_ctrl_1_l", "index_finger_fk_ctrl_1_r", "index_finger_fk_ctrl_2_l", "index_finger_fk_ctrl_2_r", "index_finger_fk_ctrl_3_l", "index_finger_fk_ctrl_3_r",
|
|
"thumb_finger_fk_ctrl_1_l", "thumb_finger_fk_ctrl_1_r", "thumb_finger_fk_ctrl_2_l", "thumb_finger_fk_ctrl_2_r", "thumb_finger_fk_ctrl_3_l", "thumb_finger_fk_ctrl_3_r",
|
|
"index_l_ik_anim", "index_r_ik_anim", "middle_l_ik_anim", "middle_r_ik_anim", "ring_l_ik_anim", "ring_r_ik_anim", "pinky_l_ik_anim", "pinky_r_ik_anim", "thumb_l_ik_anim", "thumb_r_ik_anim",
|
|
"index_l_poleVector", "index_r_poleVector", "middle_l_poleVector", "middle_r_poleVector", "ring_l_poleVector", "ring_r_poleVector", "pinky_l_poleVector", "pinky_r_poleVector", "thumb_l_poleVector", "thumb_r_poleVector",
|
|
"l_global_ik_anim", "r_global_ik_anim", "lowerarm_l_twist_anim", "lowerarm_l_twist2_anim", "lowerarm_l_twist3_anim", "lowerarm_r_twist_anim", "lowerarm_r_twist2_anim", "lowerarm_r_twist3_anim", "calf_r_twist_anim", "calf_r_twist2_anim", "calf_r_twist3_anim",
|
|
"calf_l_twist_anim", "calf_l_twist2_anim", "calf_l_twist3_anim", "thigh_l_twist_2_anim", "thigh_l_twist_3_anim", "thigh_r_twist_2_anim", "thigh_r_twist_3_anim"]:
|
|
controls.append(control)
|
|
|
|
#find custom joints
|
|
customJoints = []
|
|
attrs = cmds.listAttr(character + ":" + "Skeleton_Settings")
|
|
for attr in attrs:
|
|
if attr.find("extraJoint") == 0:
|
|
customJoints.append(attr)
|
|
|
|
for joint in customJoints:
|
|
attribute = cmds.getAttr(character + ":" + "Skeleton_Settings." + joint, asString = True)
|
|
jointType = attribute.partition("/")[2].partition("/")[0]
|
|
label = attribute.rpartition("/")[2]
|
|
|
|
if jointType == "leaf":
|
|
label = label.partition(" (")[0]
|
|
control = label + "_anim"
|
|
controls.append(control)
|
|
|
|
if jointType == "jiggle":
|
|
control = label + "_anim"
|
|
controls.append(control)
|
|
|
|
if jointType == "chain" or jointType == "dynamic":
|
|
numJointsInChain = label.partition("(")[2].partition(")")[0]
|
|
label = label.partition(" (")[0]
|
|
|
|
for i in range(int(numJointsInChain)):
|
|
controls.append("fk_" + label + "_0" + str(i + 1) + "_anim")
|
|
controls.append(label + "_cv_0_anim")
|
|
controls.append(label + "_dyn_anim")
|
|
|
|
cmds.select("*:" + label + "_ik_*_anim")
|
|
selection = cmds.ls(sl = True)
|
|
for each in selection:
|
|
niceName = each.partition(":")[2]
|
|
controls.append(niceName)
|
|
|
|
|
|
|
|
for control in controls:
|
|
if cmds.objExists(character + ":" + control):
|
|
shape = cmds.listRelatives(character + ":" + control, shapes = True)[0]
|
|
if visibility == False:
|
|
cmds.setAttr(shape + ".v", 0)
|
|
if visibility == True:
|
|
cmds.setAttr(shape + ".v", 1)
|
|
|
|
|
|
|
|
# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
|
|
# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
|
|
# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
|
|
# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
|
|
# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
|
|
def updateUI_scriptJob(self, *args):
|
|
self.mainScriptJob = cmds.scriptJob(event = ["timeChanged", self.updateUI], parent = self.widgets["window"], kws = True)
|
|
|
|
# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
|
|
# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
|
|
# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
|
|
# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
|
|
# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
|
|
def updateUI(self, *args):
|
|
name = cmds.symbolButton(self.widgets["activeCharacterThumb"], q = True, ann = True)
|
|
|
|
customJoints = []
|
|
attrs = cmds.listAttr(name + ":" + "Skeleton_Settings")
|
|
for attr in attrs:
|
|
if attr.find("extraJoint") == 0:
|
|
customJoints.append(attr)
|
|
|
|
for joint in customJoints:
|
|
attribute = cmds.getAttr(name + ":" + "Skeleton_Settings." + joint, asString = True)
|
|
jointType = attribute.partition("/")[2].partition("/")[0]
|
|
label = attribute.rpartition("/")[2]
|
|
|
|
if jointType == "chain" or jointType == "dynamic":
|
|
label = label.partition(" (")[0]
|
|
|
|
mode1 =cmds.getAttr(name + ":Rig_Settings." + label + "_fk")
|
|
mode2 =cmds.getAttr(name + ":Rig_Settings." + label + "_ik")
|
|
mode3 =cmds.getAttr(name + ":Rig_Settings." + label + "_dynamic")
|
|
|
|
cmds.iconTextRadioButton(self.widgets[name + "_rigSettings_customJoints_" + label + "fkModeButton"], edit = True, select = mode1)
|
|
cmds.iconTextRadioButton(self.widgets[name + "_rigSettings_customJoints_" + label + "ikModeButton"], edit = True, select = mode2)
|
|
cmds.iconTextRadioButton(self.widgets[name + "_rigSettings_customJoints_" + label + "dynModeButton"], edit = True, select = mode3)
|
|
|
|
|
|
|
|
|
|
|
|
mode = cmds.getAttr(name + ":Rig_Settings.rArmMode")
|
|
if mode == 0:
|
|
cmds.iconTextRadioButton(self.widgets[name + "_rigSettings_rightArmFkModeButton"], edit = True, select = True)
|
|
if mode == 1:
|
|
cmds.iconTextRadioButton(self.widgets[name + "_rigSettings_rightArmIkModeButton"], edit = True, select = True)
|
|
|
|
|
|
mode = cmds.getAttr(name + ":Rig_Settings.lArmMode")
|
|
if mode == 0:
|
|
cmds.iconTextRadioButton(self.widgets[name + "_rigSettings_leftArmFkModeButton"], edit = True, select = True)
|
|
if mode == 1:
|
|
cmds.iconTextRadioButton(self.widgets[name + "_rigSettings_leftArmIkModeButton"], edit = True, select = True)
|
|
|
|
mode = cmds.getAttr(name + ":Rig_Settings.lLegMode")
|
|
if mode == 0:
|
|
cmds.iconTextRadioButton(self.widgets[name + "_rigSettings_leftLegFkModeButton"], edit = True, select = True)
|
|
if mode == 1:
|
|
cmds.iconTextRadioButton(self.widgets[name + "_rigSettings_leftLegIkModeButton"], edit = True, select = True)
|
|
|
|
|
|
mode = cmds.getAttr(name + ":Rig_Settings.rLegMode")
|
|
if mode == 0:
|
|
cmds.iconTextRadioButton(self.widgets[name + "_rigSettings_rightLegFkModeButton"], edit = True, select = True)
|
|
if mode == 1:
|
|
cmds.iconTextRadioButton(self.widgets[name + "_rigSettings_rightLegIkModeButton"], edit = True, select = True)
|
|
|
|
|
|
mode1 = cmds.getAttr(name + ":Rig_Settings.spine_fk")
|
|
mode2 = cmds.getAttr(name + ":Rig_Settings.spine_ik")
|
|
if mode1 > mode2:
|
|
cmds.iconTextRadioButton(self.widgets[name + "_rigSettings_spineFkModeButton"], edit = True, select = True)
|
|
else:
|
|
cmds.iconTextRadioButton(self.widgets[name + "_rigSettings_spineIkModeButton"], edit = True, select = True)
|
|
|
|
|
|
mode = cmds.getAttr(name + ":head_fk_anim.fkOrientation")
|
|
if mode == 0:
|
|
cmds.iconTextRadioButton(self.widgets[name + "_rigSettings_headFkOrientModeButton"], edit = True, select = True)
|
|
if mode == 1:
|
|
cmds.iconTextRadioButton(self.widgets[name + "_rigSettings_headShoulderOrientModeButton"], edit = True, select = True)
|
|
if mode == 2:
|
|
cmds.iconTextRadioButton(self.widgets[name + "_rigSettings_headBodyOrientModeButton"], edit = True, select = True)
|
|
if mode == 3:
|
|
cmds.iconTextRadioButton(self.widgets[name + "_rigSettings_headWorldOrientModeButton"], edit = True, select = True)
|
|
|
|
try:
|
|
mode = cmds.getAttr(name + ":neck_01_fk_anim.fkOrientation")
|
|
|
|
if mode == 0:
|
|
cmds.iconTextRadioButton(self.widgets[name + "_rigSettings_neckShoulderOrientModeButton"], edit = True, select = True)
|
|
if mode == 1:
|
|
cmds.iconTextRadioButton(self.widgets[name + "_rigSettings_neckBodyOrientModeButton"], edit = True, select = True)
|
|
if mode == 2:
|
|
cmds.iconTextRadioButton(self.widgets[name + "_rigSettings_neckWorldOrientModeButton"], edit = True, select = True)
|
|
|
|
except:
|
|
pass
|
|
|
|
|
|
for finger in ["index", "middle", "ring", "pinky", "thumb"]:
|
|
if cmds.objExists(name + ":" + finger + "_l_ik_anim"):
|
|
mode = cmds.getAttr(name + ":" + finger + "_finger_l_mode_anim.FK_IK")
|
|
if mode == 0:
|
|
cmds.iconTextRadioButton(self.widgets[name + "rigSettings_LeftFinger_" + finger + "_FkModeButton"], edit = True, select = True)
|
|
if mode == 1:
|
|
cmds.iconTextRadioButton(self.widgets[name + "rigSettings_LeftFinger_" + finger + "_IkModeButton"], edit = True, select = True)
|
|
|
|
|
|
for finger in ["index", "middle", "ring", "pinky", "thumb"]:
|
|
if cmds.objExists(name + ":" + finger + "_l_ik_anim"):
|
|
mode = cmds.getAttr(name + ":" + finger + "_finger_r_mode_anim.FK_IK")
|
|
if mode == 0:
|
|
cmds.iconTextRadioButton(self.widgets[name + "rigSettings_RightFinger_" + finger + "_FkModeButton"], edit = True, select = True)
|
|
if mode == 1:
|
|
cmds.iconTextRadioButton(self.widgets[name + "rigSettings_RightFinger_" + finger + "_IkModeButton"], edit = True, select = True)
|
|
|
|
|
|
try:
|
|
mode = cmds.getAttr(name + ":Rig_Settings.rFkArmOrient")
|
|
for button in[self.widgets[name + "_rightClavPickerButton"], self.widgets[name + "_rightShoulderPickerButton"], self.widgets[name + "_rightElbowPickerButton"], self.widgets[name + "_rightHandPickerButton"], self.widgets[name + "_rightIkElbowPickerButton"], self.widgets[name + "_rightIkHandPickerButton"]]:
|
|
|
|
|
|
if mode == 0:
|
|
clavVal = True
|
|
bodyVal = False
|
|
worldVal = False
|
|
|
|
if mode == 1:
|
|
clavVal = False
|
|
bodyVal = True
|
|
worldVal = False
|
|
|
|
if mode == 2:
|
|
clavVal = False
|
|
bodyVal = False
|
|
worldVal = True
|
|
|
|
|
|
cmds.menuItem(self.widgets[name + "_" + button + "_rightArm_ClavSpace"], edit = True, rb = clavVal)
|
|
cmds.menuItem(self.widgets[name + "_" + button + "_rightArm_BodySpace"], edit = True, rb = bodyVal)
|
|
cmds.menuItem(self.widgets[name + "_" + button + "_rightArm_WrldSpace"], edit = True, rb = worldVal)
|
|
|
|
except:
|
|
pass
|
|
|
|
|
|
try:
|
|
mode = cmds.getAttr(name + ":Rig_Settings.lFkArmOrient")
|
|
for button in[self.widgets[name + "_leftClavPickerButton"], self.widgets[name + "_leftShoulderPickerButton"], self.widgets[name + "_leftElbowPickerButton"], self.widgets[name + "_leftHandPickerButton"], self.widgets[name + "_leftIkElbowPickerButton"], self.widgets[name + "_leftIkHandPickerButton"]]:
|
|
|
|
if mode == 0:
|
|
clavVal = True
|
|
bodyVal = False
|
|
worldVal = False
|
|
|
|
if mode == 1:
|
|
clavVal = False
|
|
bodyVal = True
|
|
worldVal = False
|
|
|
|
if mode == 2:
|
|
clavVal = False
|
|
bodyVal = False
|
|
worldVal = True
|
|
|
|
|
|
cmds.menuItem(self.widgets[name + "_" + button + "_leftArm_ClavSpace"], edit = True, rb = clavVal)
|
|
cmds.menuItem(self.widgets[name + "_" + button + "_leftArm_BodySpace"], edit = True, rb = bodyVal)
|
|
cmds.menuItem(self.widgets[name + "_" + button + "_leftArm_WrldSpace"], edit = True, rb = worldVal)
|
|
|
|
except:
|
|
pass
|
|
|
|
|
|
# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
|
|
# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
|
|
# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
|
|
# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
|
|
# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
|
|
def ikKneeSolve(self, character, side, *args):
|
|
|
|
|
|
|
|
startPoint = cmds.xform(character + ":ik_leg_calf_" + side, q = True, ws = True, t = True)
|
|
endPoint = cmds.xform("calf_" + side, q = True, ws = True, t = True)
|
|
dist = cmds.distanceDimension( sp=(startPoint[0],startPoint[1],startPoint[2]), ep=(endPoint[0], endPoint[1], endPoint[2]) )
|
|
distParent = cmds.listRelatives(dist, parent = True)[0]
|
|
|
|
locs = cmds.listConnections(dist)
|
|
startLoc = locs[0]
|
|
endLoc = locs[1]
|
|
|
|
cmds.pointConstraint(character + ":ik_leg_calf_" + side, startLoc)
|
|
cmds.pointConstraint("calf_" + side, endLoc)
|
|
|
|
|
|
|
|
#get distance between rig knees and mocap knees
|
|
distance = cmds.getAttr(dist + ".distance")
|
|
self.checkDistance(character, dist, distance, distance, side)
|
|
|
|
|
|
#clean up
|
|
cmds.delete([locs[0], locs[1], dist, distParent])
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
|
|
# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
|
|
# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
|
|
# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
|
|
# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
|
|
def ikHeelSolve(self, character, side, *args):
|
|
|
|
|
|
if cmds.objExists("ball_" + side):
|
|
value = cmds.getAttr("ball_" + side + ".rz")
|
|
|
|
if value > 10:
|
|
cmds.setAttr(character + ":ik_foot_anim_" + side + ".rx", 0)
|
|
cmds.setAttr(character + ":ik_foot_anim_" + side + ".ry", 0)
|
|
cmds.setAttr(character + ":ik_foot_anim_" + side + ".rz", 0)
|
|
cmds.setKeyframe(character + ":ik_foot_anim_" + side + "")
|
|
|
|
cmds.setAttr(character + ":heel_ctrl_" + side + ".rz", value * -1)
|
|
cmds.setKeyframe(character + ":heel_ctrl_" + side + ".rz")
|
|
|
|
footPos = cmds.xform("foot_" + side, q = True, ws = True, t = True)
|
|
ikFootPos = cmds.xform(character + ":ik_leg_foot_" + side, q = True, ws = True, t = True)
|
|
yDiff = footPos[1] - ikFootPos[1]
|
|
zDiff = footPos[2] - ikFootPos[2]
|
|
|
|
cmds.xform(character + ":ik_foot_anim_" + side, r = True, t = [0, yDiff, zDiff])
|
|
cmds.setKeyframe(character + ":ik_foot_anim_" + side)
|
|
|
|
else:
|
|
cmds.setAttr(character + ":heel_ctrl_" + side + ".rz", 0)
|
|
cmds.setKeyframe(character + ":heel_ctrl_" + side + ".rz")
|
|
|
|
|
|
|
|
# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
|
|
# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
|
|
# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
|
|
# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
|
|
# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
|
|
def match_singleFrame(self, limb, side, matchFrom, matchTo, *args):
|
|
|
|
#get the passed in limb, and duplicate the skeleton for that limb's current mode
|
|
#for example, if limb is left arm, and matchFrom is IK, then dupe the driver joints (in IK pose) for the left arm and parent to world
|
|
character = cmds.symbolButton(self.widgets["activeCharacterThumb"], q = True, ann = True)
|
|
|
|
armBones = ["upperarm_", "lowerarm_", "hand_"]
|
|
spineBones = ["driver_spine_01", "driver_spine_02", "driver_spine_03", "driver_spine_04", "driver_spine_05"]
|
|
legBones = ["thigh_", "calf_", "foot_", "ball_"]
|
|
|
|
#grab current selection
|
|
currentSelection = cmds.ls(sl = True)
|
|
|
|
#arm matching
|
|
if limb == "arm":
|
|
#setup constraints based on mode info
|
|
if matchTo == "IK":
|
|
|
|
constraint1 = cmds.orientConstraint(character + ":ik_upperarm_fk_matcher_" + side, character + ":fk_arm_" + side + "_anim")[0]
|
|
constraint2 = cmds.orientConstraint(character + ":ik_lowerarm_fk_matcher_" + side, character + ":fk_elbow_" + side + "_anim")[0]
|
|
constraint3 = cmds.orientConstraint(character + ":hand_match_loc_" + side, character + ":fk_wrist_" + side + "_anim")[0]
|
|
|
|
cmds.setKeyframe(character + ":fk_arm_" + side + "_anim")
|
|
cmds.setKeyframe(character + ":fk_elbow_" + side + "_anim")
|
|
cmds.setKeyframe(character + ":fk_wrist_" + side + "_anim")
|
|
|
|
cmds.delete(constraint1)
|
|
cmds.delete(constraint2)
|
|
cmds.delete(constraint3)
|
|
|
|
|
|
|
|
if matchTo == "FK":
|
|
|
|
dupeNodes = cmds.duplicate(character + ":driver_" + armBones[0] + side)
|
|
|
|
parent = cmds.listRelatives(dupeNodes[0], parent = True)
|
|
if parent != None:
|
|
cmds.parent(dupeNodes[0], world = True)
|
|
|
|
cmds.pointConstraint("driver_hand_" + side, character + ":ik_wrist_" + side + "_anim")
|
|
constraint = cmds.orientConstraint(character + ":fk_wrist_" + side + "_anim", character + ":ik_wrist_" + side + "_anim")[0]
|
|
|
|
# CRA NEW CODE - For making sure the elbow match doesnt cause any weird twisting issues.
|
|
if cmds.objExists(character + ":elbowswitch_"+side):
|
|
print "NEW CODE WORKING"
|
|
ptCnst = cmds.pointConstraint(character + ":elbowswitch_"+side, character + ":ik_elbow_" + side + "_anim")
|
|
else:
|
|
cmds.pointConstraint("driver_lowerarm_"+side, character + ":ik_elbow_" + side + "_anim")
|
|
# CRA END NEW CODE
|
|
|
|
if side == "l":
|
|
cmds.setAttr(constraint + ".offsetX", 90)
|
|
|
|
if side == "r":
|
|
cmds.setAttr(constraint + ".offsetX", -90)
|
|
|
|
|
|
cmds.setKeyframe(character + ":ik_wrist_" + side + "_anim")
|
|
cmds.setKeyframe(character + ":ik_elbow_" + side + "_anim")
|
|
|
|
# CRA NEW CODE
|
|
if cmds.objExists(character + ":elbowswitch_"+side):
|
|
cmds.delete(ptCnst)
|
|
# CRA END NEW CODE
|
|
|
|
cmds.delete(constraint)
|
|
#delete the original mode pose joints
|
|
cmds.delete(dupeNodes[0])
|
|
|
|
|
|
if limb == "clav":
|
|
#setup constraints based on mode info
|
|
if matchTo == "IK":
|
|
|
|
constraint1 = cmds.orientConstraint(character + ":ik_clavicle_" + side, character + ":fk_clavicle_" + side + "_anim")[0]
|
|
cmds.setKeyframe(character + ":fk_clavicle_" + side + "_anim")
|
|
cmds.delete(constraint1)
|
|
|
|
if matchTo == "FK":
|
|
|
|
constraint1 = cmds.pointConstraint(character + ":driver_upperarm_" + side, character + ":clavicle_" + side + "_anim")[0]
|
|
cmds.setKeyframe(character + ":clavicle_" + side + "_anim")
|
|
cmds.delete(constraint1)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
#leg matching
|
|
if limb == "leg":
|
|
dupeNodes = cmds.duplicate(character + ":" + legBones[0] + side)
|
|
|
|
parent = cmds.listRelatives(dupeNodes[0], parent = True)
|
|
if parent != None:
|
|
cmds.parent(dupeNodes[0], world = True)
|
|
|
|
|
|
#setup constraints based on mode info
|
|
if matchTo == "IK":
|
|
|
|
cmds.orientConstraint("thigh_" + side, character + ":fk_thigh_" + side + "_anim")
|
|
cmds.orientConstraint("calf_" + side, character + ":fk_calf_" + side + "_anim")
|
|
cmds.orientConstraint("foot_" + side, character + ":fk_foot_" + side + "_anim")
|
|
|
|
if cmds.objExists("ball_" + side):
|
|
cmds.orientConstraint("ball_" + side, character + ":fk_ball_" + side + "_anim")
|
|
|
|
|
|
cmds.setKeyframe(character + ":fk_thigh_" + side + "_anim")
|
|
cmds.setKeyframe(character + ":fk_calf_" + side + "_anim")
|
|
cmds.setKeyframe(character + ":fk_foot_" + side + "_anim")
|
|
if cmds.objExists("ball_" + side):
|
|
cmds.setKeyframe(character + ":fk_ball_" + side + "_anim")
|
|
|
|
|
|
|
|
if matchTo == "FK":
|
|
loc = cmds.spaceLocator(name = character + ":ik_foot_anim_" + side + "_locator")[0]
|
|
constraint = cmds.parentConstraint("foot_" + side, loc)[0]
|
|
cmds.delete(constraint)
|
|
|
|
cmds.pointConstraint(loc, character + ":ik_foot_anim_" + side)
|
|
constraint = cmds.orientConstraint("foot_" + side, character + ":ik_foot_anim_" + side)[0]
|
|
|
|
if side == "l":
|
|
cmds.setAttr(constraint + ".offsetY", 90)
|
|
|
|
if side == "r":
|
|
cmds.setAttr(constraint + ".offsetX", 180)
|
|
cmds.setAttr(constraint + ".offsetY", 90)
|
|
|
|
cmds.setKeyframe(character + ":ik_foot_anim_" + side)
|
|
|
|
#run knee solve to get angle to set
|
|
self.ikKneeSolve(character, side)
|
|
self.ikHeelSolve(character, side)
|
|
|
|
|
|
#delete the original mode pose joints
|
|
cmds.delete(dupeNodes[0])
|
|
|
|
if cmds.objExists(character + ":ik_foot_anim_" + side + "_locator"):
|
|
cmds.delete(character + ":ik_foot_anim_" + side + "_locator")
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
#spine matching
|
|
if limb == "spine":
|
|
dupeNodes = cmds.duplicate(character + ":" + spineBones[0])
|
|
|
|
parent = cmds.listRelatives(dupeNodes[0], parent = True)
|
|
if parent != None:
|
|
cmds.parent(dupeNodes[0], world = True)
|
|
|
|
#setup constraints based on mode info
|
|
# Switching to FK
|
|
if matchTo == "IK":
|
|
|
|
#check to see if user has any project specific match scripts (Fortnite custom)
|
|
if cmds.objExists(character + ":spine_02_anim.driven"):
|
|
#furthermore, if the plusMinusAvg nodes exist, then import custom matching
|
|
if os.path.exists(self.mayaToolsDir + "/General/Scripts/fortniteRotoMatch.py"):
|
|
|
|
result = cmds.confirmDialog(title = "Match Options", icon = "question", message = "Which match option would you like to use?", button = ["Standard", "Rotoscope"])
|
|
|
|
if result == "Standard":
|
|
|
|
try:
|
|
cmds.setAttr(character + ":spine_02_anim.driven", 0)
|
|
cmds.setAttr(character + ":spine_04_anim.driven", 0)
|
|
except:
|
|
pass
|
|
|
|
if cmds.objExists(character + ":spine_01_anim"):
|
|
cmds.orientConstraint("driver_spine_01", character + ":spine_01_anim")
|
|
cmds.setKeyframe(character + ":spine_01_anim")
|
|
|
|
if cmds.objExists(character + ":spine_02_anim"):
|
|
cmds.orientConstraint("driver_spine_02", character + ":spine_02_anim")
|
|
cmds.setKeyframe(character + ":spine_02_anim")
|
|
|
|
if cmds.objExists(character + ":spine_03_anim"):
|
|
cmds.orientConstraint("driver_spine_03", character + ":spine_03_anim")
|
|
cmds.setKeyframe(character + ":spine_03_anim")
|
|
|
|
if cmds.objExists(character + ":spine_04_anim"):
|
|
cmds.orientConstraint("driver_spine_04", character + ":spine_04_anim")
|
|
cmds.setKeyframe(character + ":spine_04_anim")
|
|
|
|
if cmds.objExists(character + ":spine_05_anim"):
|
|
cmds.orientConstraint("driver_spine_05", character + ":spine_05_anim")
|
|
cmds.setKeyframe(character + ":spine_05_anim")
|
|
|
|
#for each in spineBones:
|
|
#if cmds.objExists(character + ":" + each + "_anim"):
|
|
#cmds.setKeyframe(character + ":" + each + "_anim")
|
|
|
|
|
|
if result == "Rotoscope":
|
|
import fortniteRotoMatch as fnRm
|
|
reload(fnRm)
|
|
fnRm.RotoSpineMatch(character)
|
|
|
|
|
|
else:
|
|
if cmds.objExists(character + ":spine_01_anim"):
|
|
cmds.orientConstraint("driver_spine_01", character + ":spine_01_anim")
|
|
cmds.setKeyframe(character + ":spine_01_anim")
|
|
|
|
if cmds.objExists(character + ":spine_02_anim"):
|
|
cmds.orientConstraint("driver_spine_02", character + ":spine_02_anim")
|
|
cmds.setKeyframe(character + ":spine_02_anim")
|
|
|
|
if cmds.objExists(character + ":spine_03_anim"):
|
|
cmds.orientConstraint("driver_spine_03", character + ":spine_03_anim")
|
|
cmds.setKeyframe(character + ":spine_03_anim")
|
|
|
|
if cmds.objExists(character + ":spine_04_anim"):
|
|
cmds.orientConstraint("driver_spine_04", character + ":spine_04_anim")
|
|
cmds.setKeyframe(character + ":spine_04_anim")
|
|
|
|
if cmds.objExists(character + ":spine_05_anim"):
|
|
cmds.orientConstraint("driver_spine_05", character + ":spine_05_anim")
|
|
cmds.setKeyframe(character + ":spine_05_anim")
|
|
|
|
#for each in spineBones:
|
|
#if cmds.objExists(character + ":" + each + "_anim"):
|
|
#cmds.setKeyframe(character + ":" + each + "_anim")
|
|
|
|
# Switching to IK
|
|
if matchTo == "FK":
|
|
|
|
if cmds.objExists(character + ":chest_ik_anim"):
|
|
|
|
#find highest spine joint
|
|
numSpineBones = cmds.getAttr(character + ":Skeleton_Settings.numSpineBones")
|
|
if numSpineBones == 5:
|
|
endSpine = "driver_spine_05"
|
|
midSpine = ["driver_spine_03"]
|
|
|
|
if numSpineBones == 4:
|
|
endSpine = "driver_spine_04"
|
|
midSpine = ["driver_spine_02", "driver_spine_03"]
|
|
|
|
if numSpineBones == 3:
|
|
endSpine = "driver_spine_03"
|
|
midSpine = ["driver_spine_02"]
|
|
|
|
if cmds.objExists("chest_ik_anim_MATCH"):
|
|
cmds.parentConstraint("chest_ik_anim_MATCH", character + ":chest_ik_anim")
|
|
cmds.parentConstraint("mid_ik_anim_MATCH", character + ":mid_ik_anim")
|
|
else:
|
|
cmds.parentConstraint(endSpine, character + ":chest_ik_anim")
|
|
for each in midSpine:
|
|
cmds.parentConstraint(each, character + ":mid_ik_anim")
|
|
|
|
cmds.setKeyframe([character + ":chest_ik_anim", character + ":mid_ik_anim"])
|
|
|
|
|
|
#delete the original mode pose joints
|
|
cmds.delete(dupeNodes[0])
|
|
|
|
|
|
#reselect selection before entering process
|
|
if len(currentSelection) > 0:
|
|
cmds.select(currentSelection)
|
|
|
|
|
|
|
|
# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
|
|
# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
|
|
# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
|
|
# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
|
|
# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
|
|
def match_frameRange_bakeMotionToRefJoints(self, character, parts, start, end, *args):
|
|
constraints = []
|
|
bakeJoints = []
|
|
|
|
armBones = ["upperarm_", "lowerarm_", "hand_"]
|
|
spineBones = ["spine_01", "spine_02", "spine_03", "spine_04", "spine_05"]
|
|
legBones = ["thigh_", "calf_", "foot_", "ball_"]
|
|
|
|
|
|
#go through each part, and duplicate the appropriate part of the skeleton for constraining the rig to
|
|
for part in parts:
|
|
|
|
if part == character + ":" + "Left Arm":
|
|
|
|
#duplicate the current skeleton pose for the limb
|
|
dupeNodes = cmds.duplicate(character + ":" + armBones[0] + "l")
|
|
for node in dupeNodes:
|
|
bakeJoints.append(node)
|
|
parent = cmds.listRelatives(dupeNodes[0], parent = True)
|
|
if parent != None:
|
|
cmds.parent(dupeNodes[0], world = True)
|
|
|
|
#bake anim data onto dupe nodes
|
|
for node in dupeNodes:
|
|
|
|
constraint = cmds.parentConstraint(character + ":" + node, node)[0]
|
|
constraints.append(constraint)
|
|
|
|
|
|
|
|
if part == character + ":" + "Right Arm":
|
|
|
|
#duplicate the current skeleton pose for the limb
|
|
dupeNodes = cmds.duplicate(character + ":" + armBones[0] + "r")
|
|
for node in dupeNodes:
|
|
bakeJoints.append(node)
|
|
parent = cmds.listRelatives(dupeNodes[0], parent = True)
|
|
if parent != None:
|
|
cmds.parent(dupeNodes[0], world = True)
|
|
|
|
#bake anim data onto dupe nodes
|
|
for node in dupeNodes:
|
|
constraint = cmds.parentConstraint(character + ":" + node, node)[0]
|
|
constraints.append(constraint)
|
|
|
|
|
|
if part == character + ":" + "Left Leg":
|
|
|
|
#duplicate the current skeleton pose for the limb
|
|
dupeNodes = cmds.duplicate(character + ":" + legBones[0] + "l")
|
|
for node in dupeNodes:
|
|
bakeJoints.append(node)
|
|
parent = cmds.listRelatives(dupeNodes[0], parent = True)
|
|
if parent != None:
|
|
cmds.parent(dupeNodes[0], world = True)
|
|
|
|
#bake anim data onto dupe nodes
|
|
for node in dupeNodes:
|
|
try:
|
|
constraint = cmds.parentConstraint(character + ":" + node, node)[0]
|
|
constraints.append(constraint)
|
|
except:
|
|
pass
|
|
|
|
|
|
if part == character + ":" + "Right Leg":
|
|
|
|
#duplicate the current skeleton pose for the limb
|
|
dupeNodes = cmds.duplicate(character + ":" + legBones[0] + "r")
|
|
for node in dupeNodes:
|
|
bakeJoints.append(node)
|
|
parent = cmds.listRelatives(dupeNodes[0], parent = True)
|
|
if parent != None:
|
|
cmds.parent(dupeNodes[0], world = True)
|
|
|
|
#bake anim data onto dupe nodes
|
|
for node in dupeNodes:
|
|
try:
|
|
constraint = cmds.parentConstraint(character + ":" + node, node)[0]
|
|
constraints.append(constraint)
|
|
except:
|
|
pass
|
|
|
|
|
|
if part == character + ":" + "Spine":
|
|
|
|
#duplicate the current skeleton pose for the limb
|
|
dupeNodes = cmds.duplicate(character + ":" + spineBones[0])
|
|
|
|
#delete children after last spine bone
|
|
lastSpine = "spine_02"
|
|
|
|
if cmds.objExists("spine_03"):
|
|
lastSpine = "spine_03"
|
|
|
|
if cmds.objExists("spine_04"):
|
|
lastSpine = "spine_04"
|
|
|
|
if cmds.objExists("spine_05"):
|
|
lastSpine = "spine_05"
|
|
|
|
children = cmds.listRelatives(lastSpine, children = True)
|
|
for child in children:
|
|
cmds.delete(child)
|
|
|
|
cmds.select(dupeNodes[0], hi = True)
|
|
newNodes = cmds.ls(sl = True)
|
|
|
|
for node in newNodes:
|
|
bakeJoints.append(node)
|
|
|
|
parent = cmds.listRelatives(newNodes[0], parent = True)
|
|
if parent != None:
|
|
cmds.parent(newNodes[0], world = True)
|
|
|
|
#bake anim data onto dupe nodes
|
|
for node in newNodes:
|
|
constraint = cmds.parentConstraint(character + ":" + node, node)[0]
|
|
constraints.append(constraint)
|
|
|
|
|
|
|
|
#bake down all bakeJoints
|
|
if len(bakeJoints) > 0:
|
|
cmds.select(clear = True)
|
|
for each in bakeJoints:
|
|
cmds.select(each, add = True)
|
|
|
|
cmds.bakeResults(simulation = True, t= (start, end), preserveOutsideKeys = True)
|
|
for each in constraints:
|
|
cmds.delete(each)
|
|
|
|
#return bake joints
|
|
return bakeJoints
|
|
|
|
|
|
# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
|
|
# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
|
|
# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
|
|
# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
|
|
# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
|
|
def ikHeelSolve_frameRange(self, character, side, start, end, *args):
|
|
|
|
values = []
|
|
|
|
for i in range(int(start), int(end + 1)):
|
|
cmds.currentTime(i)
|
|
|
|
if cmds.objExists("ball_" + side):
|
|
value = cmds.getAttr("ball_" + side + ".rz")
|
|
values.append(value)
|
|
|
|
x = 0
|
|
for i in range(int(start), int(end + 1)):
|
|
cmds.currentTime(i)
|
|
if cmds.objExists("ball_" + side):
|
|
if values[x] > 10:
|
|
cmds.setAttr(character + ":ik_foot_anim_" + side + ".rx", 0)
|
|
cmds.setAttr(character + ":ik_foot_anim_" + side + ".ry", 0)
|
|
cmds.setAttr(character + ":ik_foot_anim_" + side + ".rz", 0)
|
|
cmds.setKeyframe(character + ":ik_foot_anim_" + side)
|
|
|
|
cmds.setAttr(character + ":heel_ctrl_" + side + ".rz", values[x] * -1)
|
|
cmds.setKeyframe(character + ":heel_ctrl_" + side + ".rz")
|
|
|
|
footPos = cmds.xform("foot_" + side, q = True, ws = True, t = True)
|
|
ikFootPos = cmds.xform(character + ":ik_leg_foot_" + side, q = True, ws = True, t = True)
|
|
yDiff = footPos[1] - ikFootPos[1]
|
|
zDiff = footPos[2] - ikFootPos[2]
|
|
|
|
cmds.xform(character + ":ik_foot_anim_" + side, r = True, t = [0, yDiff, zDiff])
|
|
cmds.setKeyframe(character + ":ik_foot_anim_" + side)
|
|
|
|
else:
|
|
cmds.setAttr(character + ":heel_ctrl_" + side + ".rz", 0)
|
|
cmds.setKeyframe(character + ":heel_ctrl_" + side + ".rz")
|
|
|
|
#iterate x
|
|
x = x + 1
|
|
|
|
# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
|
|
# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
|
|
# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
|
|
# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
|
|
# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
|
|
def checkDistance(self, character, distanceNode, distanceAttr, originalValue, side):
|
|
|
|
|
|
if distanceAttr > 1:
|
|
currentAttr = cmds.getAttr(character + ":ik_foot_anim_" + side + ".knee_twist")
|
|
|
|
try:
|
|
cmds.setAttr(character + ":ik_foot_anim_" + side + ".knee_twist", currentAttr + 1)
|
|
cmds.setKeyframe(character + ":ik_foot_anim_" + side + ".knee_twist")
|
|
newDist = cmds.getAttr(distanceNode + ".distance")
|
|
|
|
|
|
if newDist < originalValue:
|
|
self.checkDistance(character, distanceNode, newDist, newDist, side)
|
|
cmds.progressWindow(self.progWindow, edit=True, progress= (cmds.progressWindow(q = True, progress = True) + 3), status= "Solving IK Pole Vectors" )
|
|
|
|
if newDist > originalValue:
|
|
cmds.setAttr(character + ":ik_foot_anim_" + side + ".knee_twist", currentAttr - 2)
|
|
cmds.setKeyframe(character + ":ik_foot_anim_" + side + ".knee_twist")
|
|
newDist = cmds.getAttr(distanceNode + ".distance")
|
|
|
|
self.checkDistance(character, distanceNode, newDist, newDist, side)
|
|
cmds.progressWindow(self.progWindow, edit=True, progress= (cmds.progressWindow(q = True, progress = True) + 3), status= "Solving IK Pole Vectors" )
|
|
|
|
|
|
except:
|
|
pass
|
|
|
|
|
|
|
|
|
|
|
|
# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
|
|
# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
|
|
# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
|
|
# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
|
|
# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
|
|
def ikKneeSolve_frameRange(self, character, side, start, end, *args):
|
|
|
|
length = abs(cmds.getAttr("calf_" + side + ".tx"))
|
|
|
|
startPoint = cmds.xform(character + ":ik_leg_calf_" + side, q = True, ws = True, t = True)
|
|
endPoint = cmds.xform("calf_" + side, q = True, ws = True, t = True)
|
|
dist = cmds.distanceDimension( sp=(startPoint[0],startPoint[1],startPoint[2]), ep=(endPoint[0], endPoint[1], endPoint[2]) )
|
|
distParent = cmds.listRelatives(dist, parent = True)[0]
|
|
|
|
locs = cmds.listConnections(dist)
|
|
startLoc = locs[0]
|
|
endLoc = locs[1]
|
|
|
|
cmds.pointConstraint(character + ":ik_leg_calf_" + side, startLoc)
|
|
cmds.pointConstraint("calf_" + side, endLoc)
|
|
|
|
cmds.currentTime(int(start))
|
|
|
|
#get distance between rig knees and mocap knees
|
|
for i in range(int(start), int(end) + 1):
|
|
cmds.currentTime(i)
|
|
|
|
distance = cmds.getAttr(dist + ".distance")
|
|
self.checkDistance(character, dist, distance, distance, side)
|
|
|
|
|
|
|
|
#clean up
|
|
cmds.delete([startLoc, endLoc, dist, distParent])
|
|
|
|
|
|
|
|
# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
|
|
# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
|
|
# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
|
|
# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
|
|
# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
|
|
|
|
def match_frameRange_UI_Process(self, *args):
|
|
|
|
character = cmds.symbolButton(self.widgets["activeCharacterThumb"], q = True, ann = True)
|
|
|
|
#get the body parts to match from the text scroll list
|
|
parts = cmds.textScrollList(self.widgets["matchFrameRange_RigList"] , q = True, si = True)
|
|
|
|
if parts == None:
|
|
cmds.warning("Nothing selected in the parts list.")
|
|
return
|
|
|
|
#get match method
|
|
button = cmds.iconTextRadioCollection(self.widgets["matchFrameRange_RadioCollection"], q = True, sl = True)
|
|
method = cmds.iconTextRadioButton(button, q = True, ann = True)
|
|
|
|
#get frame range
|
|
start = cmds.intFieldGrp(self.widgets["matchFrameRange_FrameRange"], q = True, value1 = True)
|
|
end = cmds.intFieldGrp(self.widgets["matchFrameRange_FrameRange"], q = True, value2 = True)
|
|
|
|
|
|
#for frame in frame range, for each part selected in the list, run the match function
|
|
for i in range(start, end + 1):
|
|
cmds.currentTime(i)
|
|
for part in parts:
|
|
if part == character + ":" + "Right Leg":
|
|
if method == "fk":
|
|
self.match_singleFrame("leg", "r", "FK", "IK")
|
|
if method == "ik":
|
|
self.match_singleFrame("leg", "r", "IK", "FK")
|
|
|
|
|
|
if part == character + ":" + "Left Leg":
|
|
if method == "fk":
|
|
self.match_singleFrame("leg", "l", "FK", "IK")
|
|
if method == "ik":
|
|
self.match_singleFrame("leg", "l", "IK", "FK")
|
|
|
|
|
|
|
|
if part == character + ":" + "Left Arm":
|
|
if method == "fk":
|
|
self.match_singleFrame("arm", "l", "FK", "IK")
|
|
if method == "ik":
|
|
self.match_singleFrame("arm", "l", "IK", "FK")
|
|
|
|
|
|
if part == character + ":" + "Right Arm":
|
|
if method == "fk":
|
|
self.match_singleFrame("arm", "r", "FK", "IK")
|
|
if method == "ik":
|
|
self.match_singleFrame("arm", "r", "IK", "FK")
|
|
|
|
|
|
|
|
if part == character + ":" + "Spine":
|
|
if method == "fk":
|
|
self.match_singleFrame("spine", None, "FK", "IK")
|
|
if method == "ik":
|
|
self.match_singleFrame("spine", None, "IK", "FK")
|
|
|
|
|
|
|
|
|
|
# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
|
|
# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
|
|
# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
|
|
# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
|
|
# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
|
|
def match_frameRange_UI_Cancel(self, *args):
|
|
|
|
cmds.deleteUI(self.widgets["matchFrameRange_Window"])
|
|
|
|
|
|
# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
|
|
# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
|
|
# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
|
|
# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
|
|
# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
|
|
def match_frameRange_UI(self, *args):
|
|
|
|
if cmds.window("matchOverFrameRange_UI", exists = True):
|
|
cmds.deleteUI("matchOverFrameRange_UI")
|
|
|
|
character = cmds.symbolButton(self.widgets["activeCharacterThumb"], q = True, ann = True)
|
|
|
|
self.widgets["matchFrameRange_Window"] = cmds.window("matchOverFrameRange_UI", w = 500, h = 300, sizeable = True, title = "Match Over Frame Range", titleBarMenu = False)
|
|
|
|
#main layout
|
|
self.widgets["matchFrameRange_MainLayout"] = cmds.formLayout(w = 500, h = 300)
|
|
|
|
#create the UI elements we need
|
|
|
|
#rig part list
|
|
self.widgets["matchFrameRange_RigList"] = cmds.textScrollList(w = 200, h = 250, parent = self.widgets["matchFrameRange_MainLayout"], allowMultiSelection = True)
|
|
|
|
#populate the list with the current character's limbs that can match
|
|
for part in ["Left Arm", "Right Arm", "Left Leg", "Right Leg", "Spine"]:
|
|
cmds.textScrollList(self.widgets["matchFrameRange_RigList"], edit = True, append = character + ":" + part)
|
|
|
|
|
|
#frame range
|
|
start = cmds.playbackOptions(q = True, min = True)
|
|
end = cmds.playbackOptions(q = True, max = True)
|
|
self.widgets["matchFrameRange_FrameRange"] = cmds.intFieldGrp(numberOfFields=2, label='Frame Range:', value1 = start, value2 = end, cw = [(1, 100), (2,80), (3, 80)] )
|
|
|
|
|
|
#radio buttons for match method
|
|
self.widgets["matchFrameRange_RadioCollection"] = cmds.iconTextRadioCollection()
|
|
self.widgets["matchFrameRange_FkToIk"] = cmds.iconTextRadioButton( ann = "fk", select = True, st='iconOnly', image = self.mayaToolsDir + "/General/Icons/ART/fktoik_off.bmp", selectionImage = self.mayaToolsDir + "/General/Icons/ART/fktoik_on.bmp", w = 125, h = 50, collection = self.widgets["matchFrameRange_RadioCollection"], parent = self.widgets["matchFrameRange_MainLayout"])
|
|
self.widgets["matchFrameRange_IkToFk"] = cmds.iconTextRadioButton( ann = "ik", st='iconOnly', image = self.mayaToolsDir + "/General/Icons/ART/iktofk_off.bmp", selectionImage = self.mayaToolsDir + "/General/Icons/ART/iktofk_on.bmp", w = 125, h = 50, collection = self.widgets["matchFrameRange_RadioCollection"] , parent = self.widgets["matchFrameRange_MainLayout"])
|
|
|
|
|
|
#process button and cancel button
|
|
self.widgets["matchFrameRange_Process"] = cmds.button(w = 125, h = 50, label = "Process", c = self.match_frameRange_UI_Process)
|
|
self.widgets["matchFrameRange_Cancel"] = cmds.button(w = 125, h = 50, label = "Cancel", c = self.match_frameRange_UI_Cancel)
|
|
|
|
|
|
#ik solve options
|
|
label = cmds.text(label = "IK Solve Options:", font = "boldLabelFont")
|
|
self.widgets["matchFR_RollSolveCB"] = cmds.checkBox(label = "Solve Foot Roll", v = False, parent = self.widgets["matchFrameRange_MainLayout"])
|
|
self.widgets["matchFR_KneeSolveCB"] = cmds.checkBox(label = "Solve Knee Vectors", v = True, parent = self.widgets["matchFrameRange_MainLayout"])
|
|
|
|
#place UI widgets
|
|
cmds.formLayout(self.widgets["matchFrameRange_MainLayout"], edit = True, af = [(self.widgets["matchFrameRange_RigList"], 'left', 10), (self.widgets["matchFrameRange_RigList"], 'top', 25)])
|
|
cmds.formLayout(self.widgets["matchFrameRange_MainLayout"], edit = True, af = [(self.widgets["matchFrameRange_FrameRange"], 'left', 210), (self.widgets["matchFrameRange_FrameRange"], 'top', 25)])
|
|
cmds.formLayout(self.widgets["matchFrameRange_MainLayout"], edit = True, af = [(self.widgets["matchFrameRange_FkToIk"], 'left', 230), (self.widgets["matchFrameRange_FkToIk"], 'top', 75)])
|
|
cmds.formLayout(self.widgets["matchFrameRange_MainLayout"], edit = True, af = [(self.widgets["matchFrameRange_IkToFk"], 'right', 10), (self.widgets["matchFrameRange_IkToFk"], 'top', 75)])
|
|
cmds.formLayout(self.widgets["matchFrameRange_MainLayout"], edit = True, af = [(self.widgets["matchFrameRange_Process"], 'left', 230), (self.widgets["matchFrameRange_Process"], 'bottom', 25)])
|
|
cmds.formLayout(self.widgets["matchFrameRange_MainLayout"], edit = True, af = [(self.widgets["matchFrameRange_Cancel"], 'right', 10), (self.widgets["matchFrameRange_Cancel"], 'bottom', 25)])
|
|
|
|
cmds.formLayout(self.widgets["matchFrameRange_MainLayout"], edit = True, af = [(label, 'left', 230), (label, 'bottom', 140)])
|
|
cmds.formLayout(self.widgets["matchFrameRange_MainLayout"], edit = True, af = [(self.widgets["matchFR_RollSolveCB"], 'left', 230), (self.widgets["matchFR_RollSolveCB"], 'bottom', 115)])
|
|
cmds.formLayout(self.widgets["matchFrameRange_MainLayout"], edit = True, af = [(self.widgets["matchFR_KneeSolveCB"], 'right', 10), (self.widgets["matchFR_KneeSolveCB"], 'bottom', 115)])
|
|
|
|
|
|
#show the window
|
|
cmds.showWindow(self.widgets["matchFrameRange_Window"])
|
|
|
|
|
|
|
|
|
|
# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
|
|
# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
|
|
# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
|
|
# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
|
|
# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
|
|
def control_scale_init(self, *args):
|
|
|
|
#launch a simple UI with a slider to control the scale
|
|
if cmds.window("controlScaleWindow", exists = True):
|
|
cmds.deleteUI("controlScaleWindow")
|
|
|
|
self.widgets["controlScaleWindow"] = cmds.window("controlScaleWindow", title = "CV Scale", w = 150, h = 50, sizeable = True, mnb = False, mxb = False)
|
|
mainLayout = cmds.formLayout(w = 150, h = 50)
|
|
|
|
smallerButton = cmds.button(label = "v", w = 50, h = 30, c = partial(self.control_scale_execute, .9))
|
|
largerButton = cmds.button(label = "^", w = 50, h = 30, c = partial(self.control_scale_execute, 1.1))
|
|
|
|
|
|
cmds.formLayout(mainLayout, edit = True, af = [(smallerButton, 'left', 25), (smallerButton, 'top', 10)])
|
|
cmds.formLayout(mainLayout, edit = True, af = [(largerButton, 'right', 25), (largerButton, 'top', 10)])
|
|
|
|
|
|
cmds.showWindow(self.widgets["controlScaleWindow"])
|
|
|
|
|
|
|
|
|
|
# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
|
|
# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
|
|
# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
|
|
# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
|
|
# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
|
|
def control_scale_execute(self, amount, *args):
|
|
|
|
#get the value
|
|
selection = cmds.ls(sl = True)
|
|
cmds.select(clear = True)
|
|
|
|
|
|
for each in selection:
|
|
if each.find("anim") != -1:
|
|
|
|
#select all cvs
|
|
cmds.select(each + ".cv[*]", add = True)
|
|
|
|
#set scale
|
|
cmds.scale(amount, amount, amount, relative = True, cp = True)
|
|
|
|
#reselect
|
|
cmds.select(clear = True)
|
|
for each in selection:
|
|
cmds.select(each, add = True)
|
|
|
|
|
|
|
|
|
|
# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
|
|
# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
|
|
# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
|
|
# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
|
|
# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
|
|
def animHelp(self, *args):
|
|
|
|
cmds.launch(web = "https://docs.unrealengine.com/latest/INT/Engine/Content/Tools/MayaRiggingTool/RigTool_Animation/index.html")
|
|
|
|
|
|
# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
|
|
# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
|
|
# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
|
|
# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
|
|
# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
|
|
def setup_ik_driven_fk_rig(self, *args):
|
|
|
|
character = cmds.symbolButton('activeCharacterThumb', q = True, ann = True)
|
|
|
|
#check to make sure FK wrist control is selected
|
|
selection = cmds.ls(sl = True)[0]
|
|
|
|
if selection.find(character + ":fk_wrist_") != -1:
|
|
side = selection.partition(":fk_wrist_")[2].partition("_")[0]
|
|
|
|
#duplicate FK arm joints
|
|
upArm = cmds.duplicate(character + ":fk_upperarm_" + side, po = True, name = "ik_driver_fk_upperarm_" + side)[0]
|
|
lowArm = cmds.duplicate(character + ":fk_lowerarm_" + side, po = True, name = "ik_driver_fk_lowerarm_" + side)[0]
|
|
wrist = cmds.duplicate(character + ":fk_hand_" + side, po = True, name = "ik_driver_fk_hand_" + side)[0]
|
|
|
|
cmds.parent(lowArm, upArm)
|
|
cmds.parent(wrist, lowArm)
|
|
|
|
|
|
#set preferred angle on elbow
|
|
cmds.setAttr(lowArm + ".preferredAngleZ", -90)
|
|
cmds.setAttr(upArm + ".v", 0)
|
|
|
|
|
|
#create rp ik
|
|
rpIkHandle = cmds.ikHandle(name = "ikdriver_fk_arm_ikHandle_" + side, solver = "ikRPsolver", sj = upArm, ee = wrist)[0]
|
|
cmds.setAttr(rpIkHandle + ".v", 0)
|
|
#parent ik hand under fk_wrist_r_anim
|
|
cmds.select(rpIkHandle)
|
|
|
|
#constrain fk controls to joints
|
|
cmds.orientConstraint(upArm, character + ":fk_arm_" + side + "_anim", mo = True)
|
|
cmds.orientConstraint(lowArm, character + ":fk_elbow_" + side + "_anim", mo = True)
|
|
cmds.orientConstraint(wrist, character + ":fk_wrist_" + side + "_anim", mo = True)
|
|
|
|
cmds.setToolTo( 'moveSuperContext' )
|
|
|
|
# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
|
|
# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
|
|
# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
|
|
# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
|
|
# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
|
|
def destroy_ik_driven_fk_rig(self, *args):
|
|
|
|
character = cmds.symbolButton('activeCharacterThumb', q = True, ann = True)
|
|
selected = cmds.ls(sl = True)[0]
|
|
selectedSide = selected.partition("ikdriver_fk_arm_ikHandle_")[2]
|
|
|
|
for side in ["l", "r"]:
|
|
|
|
if cmds.objExists("ikdriver_fk_arm_ikHandle_" + side):
|
|
cmds.setKeyframe(character + ":fk_arm_" + side + "_anim")
|
|
cmds.setKeyframe(character + ":fk_elbow_" + side + "_anim")
|
|
cmds.setKeyframe(character + ":fk_wrist_" + side + "_anim")
|
|
|
|
cmds.delete(["ikdriver_fk_arm_ikHandle_" + side, "ik_driver_fk_upperarm_" + side ])
|
|
|
|
cmds.select(character + ":fk_wrist_" + selectedSide + "_anim")
|
|
cmds.setToolTo("RotateSuperContext")
|
|
|
|
# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
|
|
# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
|
|
# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
|
|
# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
|
|
# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
|
|
def eulerFilterAll(self, *args):
|
|
self.selectAll()
|
|
cmds.selectKey()
|
|
cmds.filterCurve()
|
|
|
|
# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
|
|
# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
|
|
# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
|
|
# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
|
|
# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
|
|
def eulerFilterSelected(self, *args):
|
|
cmds.selectKey()
|
|
cmds.filterCurve()
|
|
|
|
# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
|
|
# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
|
|
# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
|
|
# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
|
|
# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
|
|
def toggleVisibilityOnSelectedControlGroups(self, name, *args):
|
|
|
|
|
|
#get all controls below
|
|
children = cmds.treeView(self.widgets[name + "_treeViewWidget"], q = True, children = args[0])
|
|
|
|
|
|
for child in children:
|
|
if cmds.objExists(name + ":" + child):
|
|
try:
|
|
shape = cmds.listRelatives(name + ":" + child, shapes = True)[0]
|
|
|
|
visibility = cmds.getAttr(shape + ".v")
|
|
if visibility == True:
|
|
cmds.setAttr(shape + ".v", 0)
|
|
if visibility == False:
|
|
cmds.setAttr(shape + ".v", 1)
|
|
|
|
except:
|
|
pass
|
|
|
|
|
|
|
|
# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
|
|
# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
|
|
# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
|
|
# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
|
|
# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #
|
|
def setupButtonAttrsOnControls(self):
|
|
|
|
#when the UI is launched, we need to add an attribute to each control that tells us the corresponding button name
|
|
characters = self.getCharacters()
|
|
|
|
|
|
#add string attrs to controls
|
|
for character in characters:
|
|
|
|
#head
|
|
try:
|
|
if cmds.objExists(character + ":" + "head_fk_anim.buttonName"):
|
|
cmds.setAttr(character + ":" + "head_fk_anim.buttonName",self.widgets[character + "_headPickerButton"], type = "string")
|
|
|
|
else:
|
|
cmds.select(character + ":" + "head_fk_anim")
|
|
cmds.addAttr(ln = "buttonName", dt = "string", keyable = False)
|
|
cmds.setAttr(character + ":" + "head_fk_anim.buttonName",self.widgets[character + "_headPickerButton"], type = "string")
|
|
except:
|
|
pass
|
|
|
|
|
|
#neck1
|
|
try:
|
|
if cmds.objExists(character + ":" + "neck_01_fk_anim"):
|
|
if cmds.objExists(character + ":" + "neck_01_fk_anim.buttonName"):
|
|
cmds.setAttr(character + ":" + "neck_01_fk_anim.buttonName",self.widgets[character + "_neck1_PickerButton"], type = "string")
|
|
|
|
else:
|
|
cmds.select(character + ":" + "neck_01_fk_anim")
|
|
cmds.addAttr(ln = "buttonName", dt = "string", keyable = False)
|
|
cmds.setAttr(character + ":" + "neck_01_fk_anim.buttonName",self.widgets[character + "_neck1_PickerButton"], type = "string")
|
|
|
|
else:
|
|
|
|
if cmds.objExists(character + ":" + "neck_fk_anim.buttonName"):
|
|
cmds.setAttr(character + ":" + "neck_fk_anim.buttonName",self.widgets[character + "_neck1_PickerButton"], type = "string")
|
|
else:
|
|
cmds.select(character + ":" + "neck_fk_anim")
|
|
cmds.addAttr(ln = "buttonName", dt = "string", keyable = False)
|
|
cmds.setAttr(character + ":" + "neck_fk_anim.buttonName",self.widgets[character + "_neck1_PickerButton"], type = "string")
|
|
|
|
except:
|
|
pass
|
|
|
|
|
|
#neck2
|
|
try:
|
|
if cmds.objExists(character + ":" + "neck_02_fk_anim"):
|
|
if cmds.objExists(character + ":" + "neck_02_fk_anim.buttonName"):
|
|
cmds.setAttr(character + ":" + "neck_02_fk_anim.buttonName",self.widgets[character + "_neck2_PickerButton"], type = "string")
|
|
|
|
else:
|
|
cmds.select(character + ":" + "neck_02_fk_anim")
|
|
cmds.addAttr(ln = "buttonName", dt = "string", keyable = False)
|
|
cmds.setAttr(character + ":" + "neck_02_fk_anim.buttonName",self.widgets[character + "_neck2_PickerButton"], type = "string")
|
|
except:
|
|
pass
|
|
|
|
|
|
#neck3
|
|
try:
|
|
if cmds.objExists(character + ":" + "neck_03_fk_anim"):
|
|
if cmds.objExists(character + ":" + "neck_03_fk_anim.buttonName"):
|
|
cmds.setAttr(character + ":" + "neck_03_fk_anim.buttonName",self.widgets[character + "_neck3_PickerButton"], type = "string")
|
|
|
|
else:
|
|
cmds.select(character + ":" + "neck_03_fk_anim")
|
|
cmds.addAttr(ln = "buttonName", dt = "string", keyable = False)
|
|
cmds.setAttr(character + ":" + "neck_03_fk_anim.buttonName",self.widgets[character + "_neck3_PickerButton"], type = "string")
|
|
except:
|
|
pass
|
|
|
|
|
|
#fk spine 1
|
|
try:
|
|
if cmds.objExists(character + ":" + "spine_01_anim"):
|
|
if cmds.objExists(character + ":" + "spine_01_anim.buttonName"):
|
|
cmds.setAttr(character + ":" + "spine_01_anim.buttonName",self.widgets[character + "_spine1_PickerButton"], type = "string")
|
|
|
|
else:
|
|
cmds.select(character + ":" + "spine_01_anim")
|
|
cmds.addAttr(ln = "buttonName", dt = "string", keyable = False)
|
|
cmds.setAttr(character + ":" + "spine_01_anim.buttonName",self.widgets[character + "_spine1_PickerButton"], type = "string")
|
|
except:
|
|
pass
|
|
|
|
|
|
#fk spine 2
|
|
try:
|
|
if cmds.objExists(character + ":" + "spine_02_anim"):
|
|
if cmds.objExists(character + ":" + "spine_02_anim.buttonName"):
|
|
cmds.setAttr(character + ":" + "spine_02_anim.buttonName",self.widgets[character + "_spine2_PickerButton"], type = "string")
|
|
|
|
else:
|
|
cmds.select(character + ":" + "spine_02_anim")
|
|
cmds.addAttr(ln = "buttonName", dt = "string", keyable = False)
|
|
cmds.setAttr(character + ":" + "spine_02_anim.buttonName",self.widgets[character + "_spine2_PickerButton"], type = "string")
|
|
except:
|
|
pass
|
|
|
|
|
|
#fk spine 3
|
|
try:
|
|
if cmds.objExists(character + ":" + "spine_03_anim"):
|
|
if cmds.objExists(character + ":" + "spine_03_anim.buttonName"):
|
|
cmds.setAttr(character + ":" + "spine_03_anim.buttonName",self.widgets[character + "_spine3_PickerButton"], type = "string")
|
|
|
|
else:
|
|
cmds.select(character + ":" + "spine_03_anim")
|
|
cmds.addAttr(ln = "buttonName", dt = "string", keyable = False)
|
|
cmds.setAttr(character + ":" + "spine_03_anim.buttonName",self.widgets[character + "_spine3_PickerButton"], type = "string")
|
|
except:
|
|
pass
|
|
|
|
|
|
#fk spine 4
|
|
try:
|
|
if cmds.objExists(character + ":" + "spine_04_anim"):
|
|
if cmds.objExists(character + ":" + "spine_04_anim.buttonName"):
|
|
cmds.setAttr(character + ":" + "spine_04_anim.buttonName",self.widgets[character + "_spine4_PickerButton"], type = "string")
|
|
|
|
else:
|
|
cmds.select(character + ":" + "spine_04_anim")
|
|
cmds.addAttr(ln = "buttonName", dt = "string", keyable = False)
|
|
cmds.setAttr(character + ":" + "spine_04_anim.buttonName",self.widgets[character + "_spine4_PickerButton"], type = "string")
|
|
except:
|
|
pass
|
|
|
|
|
|
|
|
#fk spine 5
|
|
try:
|
|
if cmds.objExists(character + ":" + "spine_05_anim"):
|
|
if cmds.objExists(character + ":" + "spine_05_anim.buttonName"):
|
|
cmds.setAttr(character + ":" + "spine_05_anim.buttonName",self.widgets[character + "_spine5_PickerButton"], type = "string")
|
|
|
|
else:
|
|
cmds.select(character + ":" + "spine_05_anim")
|
|
cmds.addAttr(ln = "buttonName", dt = "string", keyable = False)
|
|
cmds.setAttr(character + ":" + "spine_05_anim.buttonName",self.widgets[character + "_spine5_PickerButton"], type = "string")
|
|
|
|
except:
|
|
pass
|
|
|
|
|
|
#ik spine
|
|
try:
|
|
if cmds.objExists(character + ":" + "mid_ik_anim"):
|
|
if cmds.objExists(character + ":" + "mid_ik_anim.buttonName"):
|
|
cmds.setAttr(character + ":" + "mid_ik_anim.buttonName",self.widgets[character + "_ikSpineMidPickerButton"], type = "string")
|
|
|
|
else:
|
|
cmds.select(character + ":" + "mid_ik_anim")
|
|
cmds.addAttr(ln = "buttonName", dt = "string", keyable = False)
|
|
cmds.setAttr(character + ":" + "mid_ik_anim.buttonName",self.widgets[character + "_ikSpineMidPickerButton"], type = "string")
|
|
except:
|
|
pass
|
|
|
|
try:
|
|
if cmds.objExists(character + ":" + "chest_ik_anim"):
|
|
if cmds.objExists(character + ":" + "chest_ik_anim.buttonName"):
|
|
cmds.setAttr(character + ":" + "chest_ik_anim.buttonName",self.widgets[character + "_ikSpineTopPickerButton"], type = "string")
|
|
|
|
else:
|
|
cmds.select(character + ":" + "chest_ik_anim")
|
|
cmds.addAttr(ln = "buttonName", dt = "string", keyable = False)
|
|
cmds.setAttr(character + ":" + "chest_ik_anim.buttonName",self.widgets[character + "_ikSpineTopPickerButton"], type = "string")
|
|
|
|
except:
|
|
pass
|
|
|
|
|
|
|
|
#body
|
|
try:
|
|
if cmds.objExists(character + ":" + "body_anim.buttonName"):
|
|
cmds.setAttr(character + ":" + "body_anim.buttonName",self.widgets[character + "_bodyPickerButton"], type = "string")
|
|
|
|
else:
|
|
cmds.select(character + ":" + "body_anim")
|
|
cmds.addAttr(ln = "buttonName", dt = "string", keyable = False)
|
|
cmds.setAttr(character + ":" + "body_anim.buttonName",self.widgets[character + "_bodyPickerButton"], type = "string")
|
|
|
|
except:
|
|
pass
|
|
|
|
|
|
try:
|
|
if cmds.objExists(character + ":" + "hip_anim.buttonName"):
|
|
cmds.setAttr(character + ":" + "hip_anim.buttonName",self.widgets[character + "_pelvisPickerButton"], type = "string")
|
|
|
|
else:
|
|
cmds.select(character + ":" + "hip_anim")
|
|
cmds.addAttr(ln = "buttonName", dt = "string", keyable = False)
|
|
cmds.setAttr(character + ":" + "hip_anim.buttonName",self.widgets[character + "_pelvisPickerButton"], type = "string")
|
|
except:
|
|
pass
|
|
|
|
|
|
#clavicles
|
|
try:
|
|
if cmds.objExists(character + ":" + "clavicle_l_anim.buttonName"):
|
|
cmds.setAttr(character + ":" + "clavicle_l_anim.buttonName",self.widgets[character + "_leftClavPickerButton"], type = "string")
|
|
|
|
else:
|
|
cmds.select(character + ":" + "clavicle_l_anim")
|
|
cmds.addAttr(ln = "buttonName", dt = "string", keyable = False)
|
|
cmds.setAttr(character + ":" + "clavicle_l_anim.buttonName",self.widgets[character + "_leftClavPickerButton"], type = "string")
|
|
except:
|
|
pass
|
|
|
|
|
|
try:
|
|
if cmds.objExists(character + ":" + "clavicle_r_anim.buttonName"):
|
|
cmds.setAttr(character + ":" + "clavicle_r_anim.buttonName",self.widgets[character + "_rightClavPickerButton"], type = "string")
|
|
|
|
else:
|
|
cmds.select(character + ":" + "clavicle_r_anim")
|
|
cmds.addAttr(ln = "buttonName", dt = "string", keyable = False)
|
|
cmds.setAttr(character + ":" + "clavicle_r_anim.buttonName",self.widgets[character + "_rightClavPickerButton"], type = "string")
|
|
except:
|
|
pass
|
|
|
|
|
|
#upper arms
|
|
try:
|
|
if cmds.objExists(character + ":" + "fk_arm_l_anim.buttonName"):
|
|
cmds.setAttr(character + ":" + "fk_arm_l_anim.buttonName",self.widgets[character + "_leftShoulderPickerButton"], type = "string")
|
|
|
|
else:
|
|
cmds.select(character + ":" + "fk_arm_l_anim")
|
|
cmds.addAttr(ln = "buttonName", dt = "string", keyable = False)
|
|
cmds.setAttr(character + ":" + "fk_arm_l_anim.buttonName",self.widgets[character + "_leftShoulderPickerButton"], type = "string")
|
|
except:
|
|
pass
|
|
|
|
|
|
try:
|
|
if cmds.objExists(character + ":" + "fk_arm_r_anim.buttonName"):
|
|
cmds.setAttr(character + ":" + "fk_arm_r_anim.buttonName",self.widgets[character + "_rightShoulderPickerButton"], type = "string")
|
|
|
|
else:
|
|
cmds.select(character + ":" + "fk_arm_r_anim")
|
|
cmds.addAttr(ln = "buttonName", dt = "string", keyable = False)
|
|
cmds.setAttr(character + ":" + "fk_arm_r_anim.buttonName",self.widgets[character + "_rightShoulderPickerButton"], type = "string")
|
|
|
|
except:
|
|
pass
|
|
|
|
|
|
|
|
#lower arms
|
|
try:
|
|
if cmds.objExists(character + ":" + "fk_elbow_l_anim.buttonName"):
|
|
cmds.setAttr(character + ":" + "fk_elbow_l_anim.buttonName",self.widgets[character + "_leftElbowPickerButton"], type = "string")
|
|
|
|
else:
|
|
cmds.select(character + ":" + "fk_elbow_l_anim")
|
|
cmds.addAttr(ln = "buttonName", dt = "string", keyable = False)
|
|
cmds.setAttr(character + ":" + "fk_elbow_l_anim.buttonName",self.widgets[character + "_leftElbowPickerButton"], type = "string")
|
|
except:
|
|
pass
|
|
|
|
|
|
|
|
try:
|
|
if cmds.objExists(character + ":" + "fk_elbow_r_anim.buttonName"):
|
|
cmds.setAttr(character + ":" + "fk_elbow_r_anim.buttonName",self.widgets[character + "_rightElbowPickerButton"], type = "string")
|
|
|
|
else:
|
|
cmds.select(character + ":" + "fk_elbow_r_anim")
|
|
cmds.addAttr(ln = "buttonName", dt = "string", keyable = False)
|
|
cmds.setAttr(character + ":" + "fk_elbow_r_anim.buttonName",self.widgets[character + "_rightElbowPickerButton"], type = "string")
|
|
|
|
except:
|
|
pass
|
|
|
|
|
|
|
|
#fk hands
|
|
try:
|
|
if cmds.objExists(character + ":" + "fk_wrist_l_anim.buttonName"):
|
|
cmds.setAttr(character + ":" + "fk_wrist_l_anim.buttonName",self.widgets[character + "_leftHandPickerButton"], type = "string")
|
|
|
|
else:
|
|
cmds.select(character + ":" + "fk_wrist_l_anim")
|
|
cmds.addAttr(ln = "buttonName", dt = "string", keyable = False)
|
|
cmds.setAttr(character + ":" + "fk_wrist_l_anim.buttonName",self.widgets[character + "_leftHandPickerButton"], type = "string")
|
|
|
|
except:
|
|
pass
|
|
|
|
|
|
try:
|
|
if cmds.objExists(character + ":" + "fk_wrist_r_anim.buttonName"):
|
|
cmds.setAttr(character + ":" + "fk_wrist_r_anim.buttonName",self.widgets[character + "_rightHandPickerButton"], type = "string")
|
|
|
|
else:
|
|
cmds.select(character + ":" + "fk_wrist_r_anim")
|
|
cmds.addAttr(ln = "buttonName", dt = "string", keyable = False)
|
|
cmds.setAttr(character + ":" + "fk_wrist_r_anim.buttonName",self.widgets[character + "_rightHandPickerButton"], type = "string")
|
|
except:
|
|
pass
|
|
|
|
|
|
|
|
#ik elbows
|
|
try:
|
|
if cmds.objExists(character + ":" + "ik_elbow_l_anim.buttonName"):
|
|
cmds.setAttr(character + ":" + "ik_elbow_l_anim.buttonName",self.widgets[character + "_leftIkElbowPickerButton"], type = "string")
|
|
|
|
else:
|
|
cmds.select(character + ":" + "ik_elbow_l_anim")
|
|
cmds.addAttr(ln = "buttonName", dt = "string", keyable = False)
|
|
cmds.setAttr(character + ":" + "ik_elbow_l_anim.buttonName",self.widgets[character + "_leftIkElbowPickerButton"], type = "string")
|
|
except:
|
|
pass
|
|
|
|
|
|
try:
|
|
if cmds.objExists(character + ":" + "ik_elbow_r_anim.buttonName"):
|
|
cmds.setAttr(character + ":" + "ik_elbow_r_anim.buttonName",self.widgets[character + "_rightIkElbowPickerButton"], type = "string")
|
|
|
|
else:
|
|
cmds.select(character + ":" + "ik_elbow_r_anim")
|
|
cmds.addAttr(ln = "buttonName", dt = "string", keyable = False)
|
|
cmds.setAttr(character + ":" + "ik_elbow_r_anim.buttonName",self.widgets[character + "_rightIkElbowPickerButton"], type = "string")
|
|
except:
|
|
pass
|
|
|
|
|
|
|
|
#ik hands
|
|
try:
|
|
if cmds.objExists(character + ":" + "ik_wrist_l_anim.buttonName"):
|
|
cmds.setAttr(character + ":" + "ik_wrist_l_anim.buttonName",self.widgets[character + "_leftIkHandPickerButton"], type = "string")
|
|
|
|
else:
|
|
cmds.select(character + ":" + "ik_wrist_l_anim")
|
|
cmds.addAttr(ln = "buttonName", dt = "string", keyable = False)
|
|
cmds.setAttr(character + ":" + "ik_wrist_l_anim.buttonName",self.widgets[character + "_leftIkHandPickerButton"], type = "string")
|
|
except:
|
|
pass
|
|
|
|
|
|
try:
|
|
if cmds.objExists(character + ":" + "ik_wrist_r_anim.buttonName"):
|
|
cmds.setAttr(character + ":" + "ik_wrist_r_anim.buttonName",self.widgets[character + "_rightIkHandPickerButton"], type = "string")
|
|
|
|
else:
|
|
cmds.select(character + ":" + "ik_wrist_r_anim")
|
|
cmds.addAttr(ln = "buttonName", dt = "string", keyable = False)
|
|
cmds.setAttr(character + ":" + "ik_wrist_r_anim.buttonName",self.widgets[character + "_rightIkHandPickerButton"], type = "string")
|
|
except:
|
|
pass
|
|
|
|
|
|
#fk thighs
|
|
try:
|
|
if cmds.objExists(character + ":" + "fk_thigh_l_anim.buttonName"):
|
|
cmds.setAttr(character + ":" + "fk_thigh_l_anim.buttonName",self.widgets[character + "_leftThighPickerButton"], type = "string")
|
|
|
|
else:
|
|
cmds.select(character + ":" + "fk_thigh_l_anim")
|
|
cmds.addAttr(ln = "buttonName", dt = "string", keyable = False)
|
|
cmds.setAttr(character + ":" + "fk_thigh_l_anim.buttonName",self.widgets[character + "_leftThighPickerButton"], type = "string")
|
|
except:
|
|
pass
|
|
|
|
|
|
|
|
try:
|
|
if cmds.objExists(character + ":" + "fk_thigh_r_anim.buttonName"):
|
|
cmds.setAttr(character + ":" + "fk_thigh_r_anim.buttonName",self.widgets[character + "_rightThighPickerButton"], type = "string")
|
|
|
|
else:
|
|
cmds.select(character + ":" + "fk_thigh_r_anim")
|
|
cmds.addAttr(ln = "buttonName", dt = "string", keyable = False)
|
|
cmds.setAttr(character + ":" + "fk_thigh_r_anim.buttonName",self.widgets[character + "_rightThighPickerButton"], type = "string")
|
|
except:
|
|
pass
|
|
|
|
|
|
|
|
#fk knees
|
|
try:
|
|
if cmds.objExists(character + ":" + "fk_calf_l_anim.buttonName"):
|
|
cmds.setAttr(character + ":" + "fk_calf_l_anim.buttonName",self.widgets[character + "_leftFkKneePickerButton"], type = "string")
|
|
|
|
else:
|
|
cmds.select(character + ":" + "fk_calf_l_anim")
|
|
cmds.addAttr(ln = "buttonName", dt = "string", keyable = False)
|
|
cmds.setAttr(character + ":" + "fk_calf_l_anim.buttonName",self.widgets[character + "_leftFkKneePickerButton"], type = "string")
|
|
except:
|
|
pass
|
|
|
|
|
|
try:
|
|
if cmds.objExists(character + ":" + "fk_calf_r_anim.buttonName"):
|
|
cmds.setAttr(character + ":" + "fk_calf_r_anim.buttonName",self.widgets[character + "_rightFkKneePickerButton"], type = "string")
|
|
|
|
else:
|
|
cmds.select(character + ":" + "fk_calf_r_anim")
|
|
cmds.addAttr(ln = "buttonName", dt = "string", keyable = False)
|
|
cmds.setAttr(character + ":" + "fk_calf_r_anim.buttonName",self.widgets[character + "_rightFkKneePickerButton"], type = "string")
|
|
except:
|
|
pass
|
|
|
|
|
|
|
|
|
|
#fk ankles
|
|
try:
|
|
if cmds.objExists(character + ":" + "fk_foot_l_anim.buttonName"):
|
|
cmds.setAttr(character + ":" + "fk_foot_l_anim.buttonName",self.widgets[character + "_leftFkAnklePickerButton"], type = "string")
|
|
|
|
else:
|
|
cmds.select(character + ":" + "fk_foot_l_anim")
|
|
cmds.addAttr(ln = "buttonName", dt = "string", keyable = False)
|
|
cmds.setAttr(character + ":" + "fk_foot_l_anim.buttonName",self.widgets[character + "_leftFkAnklePickerButton"], type = "string")
|
|
except:
|
|
pass
|
|
|
|
|
|
try:
|
|
if cmds.objExists(character + ":" + "fk_foot_r_anim.buttonName"):
|
|
cmds.setAttr(character + ":" + "fk_foot_r_anim.buttonName",self.widgets[character + "_rightFkAnklePickerButton"], type = "string")
|
|
|
|
else:
|
|
cmds.select(character + ":" + "fk_foot_r_anim")
|
|
cmds.addAttr(ln = "buttonName", dt = "string", keyable = False)
|
|
cmds.setAttr(character + ":" + "fk_foot_r_anim.buttonName",self.widgets[character + "_rightFkAnklePickerButton"], type = "string")
|
|
|
|
except:
|
|
pass
|
|
|
|
|
|
|
|
#fk ball joints
|
|
try:
|
|
if cmds.objExists(character + ":" + "fk_ball_l_anim"):
|
|
if cmds.objExists(character + ":" + "fk_ball_l_anim.buttonName"):
|
|
cmds.setAttr(character + ":" + "fk_ball_l_anim.buttonName",self.widgets[character + "_leftFkBallPickerButton"], type = "string")
|
|
|
|
else:
|
|
cmds.select(character + ":" + "fk_ball_l_anim")
|
|
cmds.addAttr(ln = "buttonName", dt = "string", keyable = False)
|
|
cmds.setAttr(character + ":" + "fk_ball_l_anim.buttonName",self.widgets[character + "_leftFkBallPickerButton"], type = "string")
|
|
except:
|
|
pass
|
|
|
|
|
|
try:
|
|
if cmds.objExists(character + ":" + "fk_ball_r_anim"):
|
|
if cmds.objExists(character + ":" + "fk_ball_r_anim.buttonName"):
|
|
cmds.setAttr(character + ":" + "fk_ball_r_anim.buttonName",self.widgets[character + "_rightFkBallPickerButton"], type = "string")
|
|
|
|
else:
|
|
cmds.select(character + ":" + "fk_ball_r_anim")
|
|
cmds.addAttr(ln = "buttonName", dt = "string", keyable = False)
|
|
cmds.setAttr(character + ":" + "fk_ball_r_anim.buttonName",self.widgets[character + "_rightFkBallPickerButton"], type = "string")
|
|
except:
|
|
pass
|
|
|
|
|
|
|
|
|
|
|
|
#ik feet
|
|
try:
|
|
if cmds.objExists(character + ":" + "ik_foot_anim_l.buttonName"):
|
|
cmds.setAttr(character + ":" + "ik_foot_anim_l.buttonName",self.widgets[character + "_leftIkFootPickerButton"], type = "string")
|
|
|
|
else:
|
|
cmds.select(character + ":" + "ik_foot_anim_l")
|
|
cmds.addAttr(ln = "buttonName", dt = "string", keyable = False)
|
|
cmds.setAttr(character + ":" + "ik_foot_anim_l.buttonName",self.widgets[character + "_leftIkFootPickerButton"], type = "string")
|
|
except:
|
|
pass
|
|
|
|
|
|
try:
|
|
if cmds.objExists(character + ":" + "ik_foot_anim_r.buttonName"):
|
|
cmds.setAttr(character + ":" + "ik_foot_anim_r.buttonName",self.widgets[character + "_rightIkFootPickerButton"], type = "string")
|
|
|
|
else:
|
|
cmds.select(character + ":" + "ik_foot_anim_r")
|
|
cmds.addAttr(ln = "buttonName", dt = "string", keyable = False)
|
|
cmds.setAttr(character + ":" + "ik_foot_anim_r.buttonName",self.widgets[character + "_rightIkFootPickerButton"], type = "string")
|
|
except:
|
|
pass
|
|
|
|
|
|
|
|
#ik heels
|
|
try:
|
|
if cmds.objExists(character + ":" + "heel_ctrl_l.buttonName"):
|
|
cmds.setAttr(character + ":" + "heel_ctrl_l.buttonName",self.widgets[character + "_leftIkHeelPickerButton"], type = "string")
|
|
|
|
else:
|
|
cmds.select(character + ":" + "heel_ctrl_l")
|
|
cmds.addAttr(ln = "buttonName", dt = "string", keyable = False)
|
|
cmds.setAttr(character + ":" + "heel_ctrl_l.buttonName",self.widgets[character + "_leftIkHeelPickerButton"], type = "string")
|
|
except:
|
|
pass
|
|
|
|
|
|
try:
|
|
if cmds.objExists(character + ":" + "heel_ctrl_r.buttonName"):
|
|
cmds.setAttr(character + ":" + "heel_ctrl_r.buttonName",self.widgets[character + "_rightIkHeelPickerButton"], type = "string")
|
|
|
|
else:
|
|
cmds.select(character + ":" + "heel_ctrl_r")
|
|
cmds.addAttr(ln = "buttonName", dt = "string", keyable = False)
|
|
cmds.setAttr(character + ":" + "heel_ctrl_r.buttonName",self.widgets[character + "_rightIkHeelPickerButton"], type = "string")
|
|
except:
|
|
pass
|
|
|
|
|
|
|
|
#ik toe wiggles
|
|
try:
|
|
if cmds.objExists(character + ":" + "toe_wiggle_ctrl_l.buttonName"):
|
|
cmds.setAttr(character + ":" + "toe_wiggle_ctrl_l.buttonName",self.widgets[character + "_leftIkToeWigglePickerButton"], type = "string")
|
|
|
|
else:
|
|
cmds.select(character + ":" + "toe_wiggle_ctrl_l")
|
|
cmds.addAttr(ln = "buttonName", dt = "string", keyable = False)
|
|
cmds.setAttr(character + ":" + "toe_wiggle_ctrl_l.buttonName",self.widgets[character + "_leftIkToeWigglePickerButton"], type = "string")
|
|
except:
|
|
pass
|
|
|
|
|
|
try:
|
|
if cmds.objExists(character + ":" + "toe_wiggle_ctrl_r.buttonName"):
|
|
cmds.setAttr(character + ":" + "toe_wiggle_ctrl_r.buttonName",self.widgets[character + "_rightIkToeWigglePickerButton"], type = "string")
|
|
|
|
else:
|
|
cmds.select(character + ":" + "toe_wiggle_ctrl_r")
|
|
cmds.addAttr(ln = "buttonName", dt = "string", keyable = False)
|
|
cmds.setAttr(character + ":" + "toe_wiggle_ctrl_r.buttonName",self.widgets[character + "_rightIkToeWigglePickerButton"], type = "string")
|
|
except:
|
|
pass
|
|
|
|
|
|
|
|
#ik toes
|
|
try:
|
|
if cmds.objExists(character + ":" + "toe_tip_ctrl_l.buttonName"):
|
|
cmds.setAttr(character + ":" + "toe_tip_ctrl_l.buttonName",self.widgets[character + "_leftIkToePickerButton"], type = "string")
|
|
|
|
else:
|
|
cmds.select(character + ":" + "toe_tip_ctrl_l")
|
|
cmds.addAttr(ln = "buttonName", dt = "string", keyable = False)
|
|
cmds.setAttr(character + ":" + "toe_tip_ctrl_l.buttonName",self.widgets[character + "_leftIkToePickerButton"], type = "string")
|
|
except:
|
|
pass
|
|
|
|
|
|
|
|
try:
|
|
if cmds.objExists(character + ":" + "toe_tip_ctrl_r.buttonName"):
|
|
cmds.setAttr(character + ":" + "toe_tip_ctrl_r.buttonName",self.widgets[character + "_rightIkToePickerButton"], type = "string")
|
|
|
|
else:
|
|
cmds.select(character + ":" + "toe_tip_ctrl_r")
|
|
cmds.addAttr(ln = "buttonName", dt = "string", keyable = False)
|
|
cmds.setAttr(character + ":" + "toe_tip_ctrl_r.buttonName",self.widgets[character + "_rightIkToePickerButton"], type = "string")
|
|
except:
|
|
pass
|
|
|
|
|
|
|
|
#master, offset, root
|
|
try:
|
|
if cmds.objExists(character + ":" + "master_anim.buttonName"):
|
|
cmds.setAttr(character + ":" + "master_anim.buttonName",self.widgets[character + "_masterPickerButton"], type = "string")
|
|
|
|
else:
|
|
cmds.select(character + ":" + "master_anim")
|
|
cmds.addAttr(ln = "buttonName", dt = "string", keyable = False)
|
|
cmds.setAttr(character + ":" + "master_anim.buttonName",self.widgets[character + "_masterPickerButton"], type = "string")
|
|
except:
|
|
pass
|
|
|
|
|
|
try:
|
|
if cmds.objExists(character + ":" + "offset_anim.buttonName"):
|
|
cmds.setAttr(character + ":" + "offset_anim.buttonName",self.widgets[character + "_offsetPickerButton"], type = "string")
|
|
|
|
else:
|
|
cmds.select(character + ":" + "offset_anim")
|
|
cmds.addAttr(ln = "buttonName", dt = "string", keyable = False)
|
|
cmds.setAttr(character + ":" + "offset_anim.buttonName",self.widgets[character + "_offsetPickerButton"], type = "string")
|
|
except:
|
|
pass
|
|
|
|
|
|
try:
|
|
if cmds.objExists(character + ":" + "root_anim.buttonName"):
|
|
cmds.setAttr(character + ":" + "root_anim.buttonName",self.widgets[character + "_rootPickerButton"], type = "string")
|
|
|
|
else:
|
|
cmds.select(character + ":" + "root_anim")
|
|
cmds.addAttr(ln = "buttonName", dt = "string", keyable = False)
|
|
cmds.setAttr(character + ":" + "root_anim.buttonName",self.widgets[character + "_rootPickerButton"], type = "string")
|
|
except:
|
|
pass
|
|
|
|
|
|
|
|
#upper arm rolls
|
|
try:
|
|
if cmds.objExists(character + ":" + "upperarm_l_twist_anim"):
|
|
if cmds.objExists(character + ":" + "upperarm_l_twist_anim.buttonName"):
|
|
cmds.setAttr(character + ":" + "upperarm_l_twist_anim.buttonName",self.widgets[character + "_leftArmRollPickerButton"], type = "string")
|
|
|
|
else:
|
|
cmds.select(character + ":" + "upperarm_l_twist_anim")
|
|
cmds.addAttr(ln = "buttonName", dt = "string", keyable = False)
|
|
cmds.setAttr(character + ":" + "upperarm_l_twist_anim.buttonName",self.widgets[character + "_leftArmRollPickerButton"], type = "string")
|
|
|
|
except:
|
|
pass
|
|
|
|
|
|
try:
|
|
if cmds.objExists(character + ":" + "upperarm_l_twist_2_anim"):
|
|
if cmds.objExists(character + ":" + "upperarm_l_twist_2_anim.buttonName"):
|
|
cmds.setAttr(character + ":" + "upperarm_l_twist_2_anim.buttonName",self.widgets[character + "_leftArmRoll2PickerButton"], type = "string")
|
|
|
|
else:
|
|
cmds.select(character + ":" + "upperarm_l_twist_2_anim")
|
|
cmds.addAttr(ln = "buttonName", dt = "string", keyable = False)
|
|
cmds.setAttr(character + ":" + "upperarm_l_twist_2_anim.buttonName",self.widgets[character + "_leftArmRoll2PickerButton"], type = "string")
|
|
except:
|
|
pass
|
|
|
|
|
|
|
|
try:
|
|
if cmds.objExists(character + ":" + "upperarm_l_twist_3_anim"):
|
|
if cmds.objExists(character + ":" + "upperarm_l_twist_3_anim.buttonName"):
|
|
cmds.setAttr(character + ":" + "upperarm_l_twist_3_anim.buttonName",self.widgets[character + "_leftArmRoll3PickerButton"], type = "string")
|
|
|
|
else:
|
|
cmds.select(character + ":" + "upperarm_l_twist_3_anim")
|
|
cmds.addAttr(ln = "buttonName", dt = "string", keyable = False)
|
|
cmds.setAttr(character + ":" + "upperarm_l_twist_3_anim.buttonName",self.widgets[character + "_leftArmRoll3PickerButton"], type = "string")
|
|
except:
|
|
pass
|
|
|
|
|
|
|
|
|
|
|
|
try:
|
|
if cmds.objExists(character + ":" + "upperarm_r_twist_anim"):
|
|
if cmds.objExists(character + ":" + "upperarm_r_twist_anim.buttonName"):
|
|
cmds.setAttr(character + ":" + "upperarm_r_twist_anim.buttonName",self.widgets[character + "_rightArmRollPickerButton"], type = "string")
|
|
|
|
else:
|
|
cmds.select(character + ":" + "upperarm_r_twist_anim")
|
|
cmds.addAttr(ln = "buttonName", dt = "string", keyable = False)
|
|
cmds.setAttr(character + ":" + "upperarm_r_twist_anim.buttonName",self.widgets[character + "_rightArmRollPickerButton"], type = "string")
|
|
except:
|
|
pass
|
|
|
|
|
|
try:
|
|
if cmds.objExists(character + ":" + "upperarm_r_twist_2_anim"):
|
|
if cmds.objExists(character + ":" + "upperarm_r_twist_2_anim.buttonName"):
|
|
cmds.setAttr(character + ":" + "upperarm_r_twist_2_anim.buttonName",self.widgets[character + "_rightArmRoll2PickerButton"], type = "string")
|
|
|
|
else:
|
|
cmds.select(character + ":" + "upperarm_r_twist_2_anim")
|
|
cmds.addAttr(ln = "buttonName", dt = "string", keyable = False)
|
|
cmds.setAttr(character + ":" + "upperarm_r_twist_2_anim.buttonName",self.widgets[character + "_rightArmRoll2PickerButton"], type = "string")
|
|
except:
|
|
pass
|
|
|
|
|
|
|
|
try:
|
|
if cmds.objExists(character + ":" + "upperarm_r_twist_3_anim"):
|
|
if cmds.objExists(character + ":" + "upperarm_r_twist_3_anim.buttonName"):
|
|
cmds.setAttr(character + ":" + "upperarm_r_twist_3_anim.buttonName",self.widgets[character + "_rightArmRoll3PickerButton"], type = "string")
|
|
|
|
else:
|
|
cmds.select(character + ":" + "upperarm_r_twist_3_anim")
|
|
cmds.addAttr(ln = "buttonName", dt = "string", keyable = False)
|
|
cmds.setAttr(character + ":" + "upperarm_r_twist_3_anim.buttonName",self.widgets[character + "_rightArmRoll3PickerButton"], type = "string")
|
|
except:
|
|
pass
|
|
|
|
|
|
|
|
|
|
#lower arm rolls
|
|
try:
|
|
if cmds.objExists(character + ":" + "lowerarm_l_twist_anim"):
|
|
if cmds.objExists(character + ":" + "lowerarm_l_twist_anim.buttonName"):
|
|
cmds.setAttr(character + ":" + "lowerarm_l_twist_anim.buttonName",self.widgets[character + "_leftForeTwistPickerButton"], type = "string")
|
|
|
|
else:
|
|
cmds.select(character + ":" + "lowerarm_l_twist_anim")
|
|
cmds.addAttr(ln = "buttonName", dt = "string", keyable = False)
|
|
cmds.setAttr(character + ":" + "lowerarm_l_twist_anim.buttonName",self.widgets[character + "_leftForeTwistPickerButton"], type = "string")
|
|
except:
|
|
pass
|
|
|
|
|
|
|
|
try:
|
|
if cmds.objExists(character + ":" + "lowerarm_l_twist2_anim"):
|
|
if cmds.objExists(character + ":" + "lowerarm_l_twist2_anim.buttonName"):
|
|
cmds.setAttr(character + ":" + "lowerarm_l_twist2_anim.buttonName",self.widgets[character + "_leftForeTwist2PickerButton"], type = "string")
|
|
|
|
else:
|
|
cmds.select(character + ":" + "lowerarm_l_twist2_anim")
|
|
cmds.addAttr(ln = "buttonName", dt = "string", keyable = False)
|
|
cmds.setAttr(character + ":" + "lowerarm_l_twist2_anim.buttonName",self.widgets[character + "_leftForeTwist2PickerButton"], type = "string")
|
|
except:
|
|
pass
|
|
|
|
|
|
try:
|
|
if cmds.objExists(character + ":" + "lowerarm_l_twist3_anim"):
|
|
if cmds.objExists(character + ":" + "lowerarm_l_twist3_anim.buttonName"):
|
|
cmds.setAttr(character + ":" + "lowerarm_l_twist3_anim.buttonName",self.widgets[character + "_leftForeTwist3PickerButton"], type = "string")
|
|
|
|
else:
|
|
cmds.select(character + ":" + "lowerarm_l_twist3_anim")
|
|
cmds.addAttr(ln = "buttonName", dt = "string", keyable = False)
|
|
cmds.setAttr(character + ":" + "lowerarm_l_twist3_anim.buttonName",self.widgets[character + "_leftForeTwist3PickerButton"], type = "string")
|
|
except:
|
|
pass
|
|
|
|
|
|
|
|
try:
|
|
if cmds.objExists(character + ":" + "lowerarm_r_twist_anim"):
|
|
if cmds.objExists(character + ":" + "lowerarm_r_twist_anim.buttonName"):
|
|
cmds.setAttr(character + ":" + "lowerarm_r_twist_anim.buttonName",self.widgets[character + "_rightForeTwistPickerButton"], type = "string")
|
|
|
|
else:
|
|
cmds.select(character + ":" + "lowerarm_r_twist_anim")
|
|
cmds.addAttr(ln = "buttonName", dt = "string", keyable = False)
|
|
cmds.setAttr(character + ":" + "lowerarm_r_twist_anim.buttonName",self.widgets[character + "_rightForeTwistPickerButton"], type = "string")
|
|
except:
|
|
pass
|
|
|
|
|
|
|
|
try:
|
|
if cmds.objExists(character + ":" + "lowerarm_r_twist2_anim"):
|
|
if cmds.objExists(character + ":" + "lowerarm_r_twist2_anim.buttonName"):
|
|
cmds.setAttr(character + ":" + "lowerarm_r_twist2_anim.buttonName",self.widgets[character + "_rightForeTwist2PickerButton"], type = "string")
|
|
|
|
else:
|
|
cmds.select(character + ":" + "lowerarm_r_twist2_anim")
|
|
cmds.addAttr(ln = "buttonName", dt = "string", keyable = False)
|
|
cmds.setAttr(character + ":" + "lowerarm_r_twist2_anim.buttonName",self.widgets[character + "_rightForeTwist2PickerButton"], type = "string")
|
|
except:
|
|
pass
|
|
|
|
|
|
|
|
try:
|
|
if cmds.objExists(character + ":" + "lowerarm_r_twist3_anim"):
|
|
if cmds.objExists(character + ":" + "lowerarm_r_twist3_anim.buttonName"):
|
|
cmds.setAttr(character + ":" + "lowerarm_r_twist3_anim.buttonName",self.widgets[character + "_rightForeTwist3PickerButton"], type = "string")
|
|
|
|
else:
|
|
cmds.select(character + ":" + "lowerarm_r_twist3_anim")
|
|
cmds.addAttr(ln = "buttonName", dt = "string", keyable = False)
|
|
cmds.setAttr(character + ":" + "lowerarm_r_twist3_anim.buttonName",self.widgets[character + "_rightForeTwist3PickerButton"], type = "string")
|
|
except:
|
|
pass
|
|
|
|
|
|
|
|
|
|
#thigh twists
|
|
try:
|
|
if cmds.objExists(character + ":" + "l_thigh_twist_01_anim"):
|
|
if cmds.objExists(character + ":" + "l_thigh_twist_01_anim.buttonName"):
|
|
cmds.setAttr(character + ":" + "l_thigh_twist_01_anim.buttonName",self.widgets[character + "_leftThighTwistPickerButton"], type = "string")
|
|
|
|
else:
|
|
cmds.select(character + ":" + "l_thigh_twist_01_anim")
|
|
cmds.addAttr(ln = "buttonName", dt = "string", keyable = False)
|
|
cmds.setAttr(character + ":" + "l_thigh_twist_01_anim.buttonName",self.widgets[character + "_leftThighTwistPickerButton"], type = "string")
|
|
except:
|
|
pass
|
|
|
|
|
|
|
|
try:
|
|
if cmds.objExists(character + ":" + "l_thigh_twist_02_anim"):
|
|
if cmds.objExists(character + ":" + "l_thigh_twist_02_anim.buttonName"):
|
|
cmds.setAttr(character + ":" + "l_thigh_twist_02_anim.buttonName",self.widgets[character + "_leftThighTwist2PickerButton"], type = "string")
|
|
|
|
else:
|
|
cmds.select(character + ":" + "l_thigh_twist_02_anim")
|
|
cmds.addAttr(ln = "buttonName", dt = "string", keyable = False)
|
|
cmds.setAttr(character + ":" + "l_thigh_twist_02_anim.buttonName",self.widgets[character + "_leftThighTwist2PickerButton"], type = "string")
|
|
except:
|
|
pass
|
|
|
|
|
|
|
|
try:
|
|
if cmds.objExists(character + ":" + "l_thigh_twist_03_anim"):
|
|
if cmds.objExists(character + ":" + "l_thigh_twist_03_anim.buttonName"):
|
|
cmds.setAttr(character + ":" + "l_thigh_twist_03_anim.buttonName",self.widgets[character + "_leftThighTwist3PickerButton"], type = "string")
|
|
|
|
else:
|
|
cmds.select(character + ":" + "l_thigh_twist_03_anim")
|
|
cmds.addAttr(ln = "buttonName", dt = "string", keyable = False)
|
|
cmds.setAttr(character + ":" + "l_thigh_twist_03_anim.buttonName",self.widgets[character + "_leftThighTwist3PickerButton"], type = "string")
|
|
except:
|
|
pass
|
|
|
|
|
|
|
|
|
|
|
|
try:
|
|
if cmds.objExists(character + ":" + "r_thigh_twist_01_anim"):
|
|
if cmds.objExists(character + ":" + "r_thigh_twist_01_anim.buttonName"):
|
|
cmds.setAttr(character + ":" + "r_thigh_twist_01_anim.buttonName",self.widgets[character + "_rightThighTwistPickerButton"], type = "string")
|
|
|
|
else:
|
|
cmds.select(character + ":" + "r_thigh_twist_01_anim")
|
|
cmds.addAttr(ln = "buttonName", dt = "string", keyable = False)
|
|
cmds.setAttr(character + ":" + "r_thigh_twist_01_anim.buttonName",self.widgets[character + "_rightThighTwistPickerButton"], type = "string")
|
|
except:
|
|
pass
|
|
|
|
|
|
|
|
try:
|
|
if cmds.objExists(character + ":" + "r_thigh_twist_02_anim"):
|
|
if cmds.objExists(character + ":" + "r_thigh_twist_02_anim.buttonName"):
|
|
cmds.setAttr(character + ":" + "r_thigh_twist_02_anim.buttonName",self.widgets[character + "_rightThighTwist2PickerButton"], type = "string")
|
|
|
|
else:
|
|
cmds.select(character + ":" + "r_thigh_twist_02_anim")
|
|
cmds.addAttr(ln = "buttonName", dt = "string", keyable = False)
|
|
cmds.setAttr(character + ":" + "r_thigh_twist_02_anim.buttonName",self.widgets[character + "_rightThighTwist2PickerButton"], type = "string")
|
|
except:
|
|
pass
|
|
|
|
|
|
|
|
try:
|
|
if cmds.objExists(character + ":" + "r_thigh_twist_03_anim"):
|
|
if cmds.objExists(character + ":" + "r_thigh_twist_03_anim.buttonName"):
|
|
cmds.setAttr(character + ":" + "r_thigh_twist_03_anim.buttonName",self.widgets[character + "_rightThighTwist3PickerButton"], type = "string")
|
|
|
|
else:
|
|
cmds.select(character + ":" + "r_thigh_twist_03_anim")
|
|
cmds.addAttr(ln = "buttonName", dt = "string", keyable = False)
|
|
cmds.setAttr(character + ":" + "r_thigh_twist_03_anim.buttonName",self.widgets[character + "_rightThighTwist3PickerButton"], type = "string")
|
|
|
|
except:
|
|
pass
|
|
|
|
|
|
|
|
|
|
#calf twists
|
|
try:
|
|
if cmds.objExists(character + ":" + "calf_l_twist_anim"):
|
|
if cmds.objExists(character + ":" + "calf_l_twist_anim.buttonName"):
|
|
cmds.setAttr(character + ":" + "calf_l_twist_anim.buttonName",self.widgets[character + "_leftCalfTwistPickerButton"], type = "string")
|
|
|
|
else:
|
|
cmds.select(character + ":" + "calf_l_twist_anim")
|
|
cmds.addAttr(ln = "buttonName", dt = "string", keyable = False)
|
|
cmds.setAttr(character + ":" + "calf_l_twist_anim.buttonName",self.widgets[character + "_leftCalfTwistPickerButton"], type = "string")
|
|
except:
|
|
pass
|
|
|
|
|
|
|
|
try:
|
|
if cmds.objExists(character + ":" + "calf_l_twist2_anim"):
|
|
if cmds.objExists(character + ":" + "calf_l_twist2_anim.buttonName"):
|
|
cmds.setAttr(character + ":" + "calf_l_twist2_anim.buttonName",self.widgets[character + "_leftCalfTwist2PickerButton"], type = "string")
|
|
|
|
else:
|
|
cmds.select(character + ":" + "calf_l_twist2_anim")
|
|
cmds.addAttr(ln = "buttonName", dt = "string", keyable = False)
|
|
cmds.setAttr(character + ":" + "calf_l_twist2_anim.buttonName",self.widgets[character + "_leftCalfTwist2PickerButton"], type = "string")
|
|
except:
|
|
pass
|
|
|
|
|
|
|
|
try:
|
|
if cmds.objExists(character + ":" + "calf_l_twist3_anim"):
|
|
if cmds.objExists(character + ":" + "calf_l_twist3_anim.buttonName"):
|
|
cmds.setAttr(character + ":" + "calf_l_twist3_anim.buttonName",self.widgets[character + "_leftCalfTwist3PickerButton"], type = "string")
|
|
|
|
else:
|
|
cmds.select(character + ":" + "calf_l_twist3_anim")
|
|
cmds.addAttr(ln = "buttonName", dt = "string", keyable = False)
|
|
cmds.setAttr(character + ":" + "calf_l_twist3_anim.buttonName",self.widgets[character + "_leftCalfTwist3PickerButton"], type = "string")
|
|
except:
|
|
pass
|
|
|
|
|
|
|
|
try:
|
|
if cmds.objExists(character + ":" + "calf_r_twist_anim"):
|
|
if cmds.objExists(character + ":" + "calf_r_twist_anim.buttonName"):
|
|
cmds.setAttr(character + ":" + "calf_r_twist_anim.buttonName",self.widgets[character + "_rightCalfTwistPickerButton"], type = "string")
|
|
|
|
else:
|
|
cmds.select(character + ":" + "calf_r_twist_anim")
|
|
cmds.addAttr(ln = "buttonName", dt = "string", keyable = False)
|
|
cmds.setAttr(character + ":" + "calf_r_twist_anim.buttonName",self.widgets[character + "_rightCalfTwistPickerButton"], type = "string")
|
|
except:
|
|
pass
|
|
|
|
|
|
|
|
try:
|
|
if cmds.objExists(character + ":" + "calf_r_twist2_anim"):
|
|
if cmds.objExists(character + ":" + "calf_r_twist2_anim.buttonName"):
|
|
cmds.setAttr(character + ":" + "calf_r_twist2_anim.buttonName",self.widgets[character + "_rightCalfTwist2PickerButton"], type = "string")
|
|
|
|
else:
|
|
cmds.select(character + ":" + "calf_r_twist2_anim")
|
|
cmds.addAttr(ln = "buttonName", dt = "string", keyable = False)
|
|
cmds.setAttr(character + ":" + "calf_r_twist2_anim.buttonName",self.widgets[character + "_rightCalfTwist2PickerButton"], type = "string")
|
|
except:
|
|
pass
|
|
|
|
|
|
|
|
try:
|
|
if cmds.objExists(character + ":" + "calf_r_twist3_anim"):
|
|
if cmds.objExists(character + ":" + "calf_r_twist3_anim.buttonName"):
|
|
cmds.setAttr(character + ":" + "calf_r_twist3_anim.buttonName",self.widgets[character + "_rightCalfTwist3PickerButton"], type = "string")
|
|
|
|
else:
|
|
cmds.select(character + ":" + "calf_r_twist3_anim")
|
|
cmds.addAttr(ln = "buttonName", dt = "string", keyable = False)
|
|
cmds.setAttr(character + ":" + "calf_r_twist3_anim.buttonName",self.widgets[character + "_rightCalfTwist3PickerButton"], type = "string")
|
|
|
|
except:
|
|
pass
|
|
|
|
|
|
|
|
|
|
|
|
#left pinky finger
|
|
try:
|
|
if cmds.objExists(character + ":" + "pinky_metacarpal_ctrl_l"):
|
|
if cmds.objExists(character + ":" + "pinky_metacarpal_ctrl_l.buttonName"):
|
|
cmds.setAttr(character + ":" + "pinky_metacarpal_ctrl_l.buttonName",self.widgets[character + "_leftPinkyMetacarpalPickerButton"], type = "string")
|
|
|
|
else:
|
|
cmds.select(character + ":" + "pinky_metacarpal_ctrl_l")
|
|
cmds.addAttr(ln = "buttonName", dt = "string", keyable = False)
|
|
cmds.setAttr(character + ":" + "pinky_metacarpal_ctrl_l.buttonName",self.widgets[character + "_leftPinkyMetacarpalPickerButton"], type = "string")
|
|
except:
|
|
pass
|
|
|
|
|
|
|
|
try:
|
|
if cmds.objExists(character + ":" + "pinky_finger_fk_ctrl_1_l"):
|
|
if cmds.objExists(character + ":" + "pinky_finger_fk_ctrl_1_l.buttonName"):
|
|
cmds.setAttr(character + ":" + "pinky_finger_fk_ctrl_1_l.buttonName",self.widgets[character + "_leftPinky1PickerButton"], type = "string")
|
|
|
|
else:
|
|
cmds.select(character + ":" + "pinky_finger_fk_ctrl_1_l")
|
|
cmds.addAttr(ln = "buttonName", dt = "string", keyable = False)
|
|
cmds.setAttr(character + ":" + "pinky_finger_fk_ctrl_1_l.buttonName",self.widgets[character + "_leftPinky1PickerButton"], type = "string")
|
|
except:
|
|
pass
|
|
|
|
|
|
|
|
try:
|
|
if cmds.objExists(character + ":" + "pinky_finger_fk_ctrl_2_l"):
|
|
if cmds.objExists(character + ":" + "pinky_finger_fk_ctrl_2_l.buttonName"):
|
|
cmds.setAttr(character + ":" + "pinky_finger_fk_ctrl_2_l.buttonName",self.widgets[character + "_leftPinky2PickerButton"], type = "string")
|
|
|
|
else:
|
|
cmds.select(character + ":" + "pinky_finger_fk_ctrl_2_l")
|
|
cmds.addAttr(ln = "buttonName", dt = "string", keyable = False)
|
|
cmds.setAttr(character + ":" + "pinky_finger_fk_ctrl_2_l.buttonName",self.widgets[character + "_leftPinky2PickerButton"], type = "string")
|
|
|
|
except:
|
|
pass
|
|
|
|
|
|
|
|
try:
|
|
if cmds.objExists(character + ":" + "pinky_finger_fk_ctrl_3_l"):
|
|
if cmds.objExists(character + ":" + "pinky_finger_fk_ctrl_3_l.buttonName"):
|
|
cmds.setAttr(character + ":" + "pinky_finger_fk_ctrl_3_l.buttonName",self.widgets[character + "_leftPinky3PickerButton"], type = "string")
|
|
|
|
else:
|
|
cmds.select(character + ":" + "pinky_finger_fk_ctrl_3_l")
|
|
cmds.addAttr(ln = "buttonName", dt = "string", keyable = False)
|
|
cmds.setAttr(character + ":" + "pinky_finger_fk_ctrl_3_l.buttonName",self.widgets[character + "_leftPinky3PickerButton"], type = "string")
|
|
|
|
except:
|
|
pass
|
|
|
|
|
|
|
|
#left ring finger
|
|
try:
|
|
if cmds.objExists(character + ":" + "ring_metacarpal_ctrl_l"):
|
|
if cmds.objExists(character + ":" + "ring_metacarpal_ctrl_l.buttonName"):
|
|
cmds.setAttr(character + ":" + "ring_metacarpal_ctrl_l.buttonName",self.widgets[character + "_leftRingMetacarpalPickerButton"], type = "string")
|
|
|
|
else:
|
|
cmds.select(character + ":" + "ring_metacarpal_ctrl_l")
|
|
cmds.addAttr(ln = "buttonName", dt = "string", keyable = False)
|
|
cmds.setAttr(character + ":" + "ring_metacarpal_ctrl_l.buttonName",self.widgets[character + "_leftRingMetacarpalPickerButton"], type = "string")
|
|
except:
|
|
pass
|
|
|
|
|
|
|
|
try:
|
|
if cmds.objExists(character + ":" + "ring_finger_fk_ctrl_1_l"):
|
|
if cmds.objExists(character + ":" + "ring_finger_fk_ctrl_1_l.buttonName"):
|
|
cmds.setAttr(character + ":" + "ring_finger_fk_ctrl_1_l.buttonName",self.widgets[character + "_leftRing1PickerButton"], type = "string")
|
|
|
|
else:
|
|
cmds.select(character + ":" + "ring_finger_fk_ctrl_1_l")
|
|
cmds.addAttr(ln = "buttonName", dt = "string", keyable = False)
|
|
cmds.setAttr(character + ":" + "ring_finger_fk_ctrl_1_l.buttonName",self.widgets[character + "_leftRing1PickerButton"], type = "string")
|
|
except:
|
|
pass
|
|
|
|
|
|
|
|
try:
|
|
if cmds.objExists(character + ":" + "ring_finger_fk_ctrl_2_l"):
|
|
if cmds.objExists(character + ":" + "ring_finger_fk_ctrl_2_l.buttonName"):
|
|
cmds.setAttr(character + ":" + "ring_finger_fk_ctrl_2_l.buttonName",self.widgets[character + "_leftRing2PickerButton"], type = "string")
|
|
|
|
else:
|
|
cmds.select(character + ":" + "ring_finger_fk_ctrl_2_l")
|
|
cmds.addAttr(ln = "buttonName", dt = "string", keyable = False)
|
|
cmds.setAttr(character + ":" + "ring_finger_fk_ctrl_2_l.buttonName",self.widgets[character + "_leftRing2PickerButton"], type = "string")
|
|
except:
|
|
pass
|
|
|
|
|
|
try:
|
|
if cmds.objExists(character + ":" + "ring_finger_fk_ctrl_3_l"):
|
|
if cmds.objExists(character + ":" + "ring_finger_fk_ctrl_3_l.buttonName"):
|
|
cmds.setAttr(character + ":" + "ring_finger_fk_ctrl_3_l.buttonName",self.widgets[character + "_leftRing3PickerButton"], type = "string")
|
|
|
|
else:
|
|
cmds.select(character + ":" + "ring_finger_fk_ctrl_3_l")
|
|
cmds.addAttr(ln = "buttonName", dt = "string", keyable = False)
|
|
cmds.setAttr(character + ":" + "ring_finger_fk_ctrl_3_l.buttonName",self.widgets[character + "_leftRing3PickerButton"], type = "string")
|
|
except:
|
|
pass
|
|
|
|
|
|
|
|
#left middle finger
|
|
try:
|
|
if cmds.objExists(character + ":" + "middle_metacarpal_ctrl_l"):
|
|
if cmds.objExists(character + ":" + "middle_metacarpal_ctrl_l.buttonName"):
|
|
cmds.setAttr(character + ":" + "middle_metacarpal_ctrl_l.buttonName",self.widgets[character + "_leftMiddleMetacarpalPickerButton"], type = "string")
|
|
|
|
else:
|
|
cmds.select(character + ":" + "middle_metacarpal_ctrl_l")
|
|
cmds.addAttr(ln = "buttonName", dt = "string", keyable = False)
|
|
cmds.setAttr(character + ":" + "middle_metacarpal_ctrl_l.buttonName",self.widgets[character + "_leftMiddleMetacarpalPickerButton"], type = "string")
|
|
except:
|
|
pass
|
|
|
|
|
|
|
|
try:
|
|
if cmds.objExists(character + ":" + "middle_finger_fk_ctrl_1_l"):
|
|
if cmds.objExists(character + ":" + "middle_finger_fk_ctrl_1_l.buttonName"):
|
|
cmds.setAttr(character + ":" + "middle_finger_fk_ctrl_1_l.buttonName",self.widgets[character + "_leftMiddle1PickerButton"], type = "string")
|
|
|
|
else:
|
|
cmds.select(character + ":" + "middle_finger_fk_ctrl_1_l")
|
|
cmds.addAttr(ln = "buttonName", dt = "string", keyable = False)
|
|
cmds.setAttr(character + ":" + "middle_finger_fk_ctrl_1_l.buttonName",self.widgets[character + "_leftMiddle1PickerButton"], type = "string")
|
|
except:
|
|
pass
|
|
|
|
|
|
try:
|
|
if cmds.objExists(character + ":" + "middle_finger_fk_ctrl_2_l"):
|
|
if cmds.objExists(character + ":" + "middle_finger_fk_ctrl_2_l.buttonName"):
|
|
cmds.setAttr(character + ":" + "middle_finger_fk_ctrl_2_l.buttonName",self.widgets[character + "_leftMiddle2PickerButton"], type = "string")
|
|
|
|
else:
|
|
cmds.select(character + ":" + "middle_finger_fk_ctrl_2_l")
|
|
cmds.addAttr(ln = "buttonName", dt = "string", keyable = False)
|
|
cmds.setAttr(character + ":" + "middle_finger_fk_ctrl_2_l.buttonName",self.widgets[character + "_leftMiddle2PickerButton"], type = "string")
|
|
except:
|
|
pass
|
|
|
|
|
|
|
|
try:
|
|
if cmds.objExists(character + ":" + "middle_finger_fk_ctrl_3_l"):
|
|
if cmds.objExists(character + ":" + "middle_finger_fk_ctrl_3_l.buttonName"):
|
|
cmds.setAttr(character + ":" + "middle_finger_fk_ctrl_3_l.buttonName",self.widgets[character + "_leftMiddle3PickerButton"], type = "string")
|
|
|
|
else:
|
|
cmds.select(character + ":" + "middle_finger_fk_ctrl_3_l")
|
|
cmds.addAttr(ln = "buttonName", dt = "string", keyable = False)
|
|
cmds.setAttr(character + ":" + "middle_finger_fk_ctrl_3_l.buttonName",self.widgets[character + "_leftMiddle3PickerButton"], type = "string")
|
|
except:
|
|
pass
|
|
|
|
|
|
#left index finger
|
|
try:
|
|
if cmds.objExists(character + ":" + "index_metacarpal_ctrl_l"):
|
|
if cmds.objExists(character + ":" + "index_metacarpal_ctrl_l.buttonName"):
|
|
cmds.setAttr(character + ":" + "index_metacarpal_ctrl_l.buttonName",self.widgets[character + "_leftIndexMetacarpalPickerButton"], type = "string")
|
|
|
|
else:
|
|
cmds.select(character + ":" + "index_metacarpal_ctrl_l")
|
|
cmds.addAttr(ln = "buttonName", dt = "string", keyable = False)
|
|
cmds.setAttr(character + ":" + "index_metacarpal_ctrl_l.buttonName",self.widgets[character + "_leftIndexMetacarpalPickerButton"], type = "string")
|
|
except:
|
|
pass
|
|
|
|
|
|
|
|
try:
|
|
if cmds.objExists(character + ":" + "index_finger_fk_ctrl_1_l"):
|
|
if cmds.objExists(character + ":" + "index_finger_fk_ctrl_1_l.buttonName"):
|
|
cmds.setAttr(character + ":" + "index_finger_fk_ctrl_1_l.buttonName",self.widgets[character + "_leftIndex1PickerButton"], type = "string")
|
|
|
|
else:
|
|
cmds.select(character + ":" + "index_finger_fk_ctrl_1_l")
|
|
cmds.addAttr(ln = "buttonName", dt = "string", keyable = False)
|
|
cmds.setAttr(character + ":" + "index_finger_fk_ctrl_1_l.buttonName",self.widgets[character + "_leftIndex1PickerButton"], type = "string")
|
|
except:
|
|
pass
|
|
|
|
|
|
|
|
try:
|
|
if cmds.objExists(character + ":" + "index_finger_fk_ctrl_2_l"):
|
|
if cmds.objExists(character + ":" + "index_finger_fk_ctrl_2_l.buttonName"):
|
|
cmds.setAttr(character + ":" + "index_finger_fk_ctrl_2_l.buttonName",self.widgets[character + "_leftIndex2PickerButton"], type = "string")
|
|
|
|
else:
|
|
cmds.select(character + ":" + "index_finger_fk_ctrl_2_l")
|
|
cmds.addAttr(ln = "buttonName", dt = "string", keyable = False)
|
|
cmds.setAttr(character + ":" + "index_finger_fk_ctrl_2_l.buttonName",self.widgets[character + "_leftIndex2PickerButton"], type = "string")
|
|
except:
|
|
pass
|
|
|
|
|
|
try:
|
|
if cmds.objExists(character + ":" + "index_finger_fk_ctrl_3_l"):
|
|
if cmds.objExists(character + ":" + "index_finger_fk_ctrl_3_l.buttonName"):
|
|
cmds.setAttr(character + ":" + "index_finger_fk_ctrl_3_l.buttonName",self.widgets[character + "_leftIndex3PickerButton"], type = "string")
|
|
|
|
else:
|
|
cmds.select(character + ":" + "index_finger_fk_ctrl_3_l")
|
|
cmds.addAttr(ln = "buttonName", dt = "string", keyable = False)
|
|
cmds.setAttr(character + ":" + "index_finger_fk_ctrl_3_l.buttonName",self.widgets[character + "_leftIndex3PickerButton"], type = "string")
|
|
except:
|
|
pass
|
|
|
|
|
|
|
|
#left thumb finger
|
|
try:
|
|
if cmds.objExists(character + ":" + "thumb_finger_fk_ctrl_1_l"):
|
|
if cmds.objExists(character + ":" + "thumb_finger_fk_ctrl_1_l.buttonName"):
|
|
cmds.setAttr(character + ":" + "thumb_finger_fk_ctrl_1_l.buttonName",self.widgets[character + "_leftThumb1PickerButton"], type = "string")
|
|
|
|
else:
|
|
cmds.select(character + ":" + "thumb_finger_fk_ctrl_1_l")
|
|
cmds.addAttr(ln = "buttonName", dt = "string", keyable = False)
|
|
cmds.setAttr(character + ":" + "thumb_finger_fk_ctrl_1_l.buttonName",self.widgets[character + "_leftThumb1PickerButton"], type = "string")
|
|
except:
|
|
pass
|
|
|
|
|
|
try:
|
|
if cmds.objExists(character + ":" + "thumb_finger_fk_ctrl_2_l"):
|
|
if cmds.objExists(character + ":" + "thumb_finger_fk_ctrl_2_l.buttonName"):
|
|
cmds.setAttr(character + ":" + "thumb_finger_fk_ctrl_2_l.buttonName",self.widgets[character + "_leftThumb2PickerButton"], type = "string")
|
|
|
|
else:
|
|
cmds.select(character + ":" + "thumb_finger_fk_ctrl_2_l")
|
|
cmds.addAttr(ln = "buttonName", dt = "string", keyable = False)
|
|
cmds.setAttr(character + ":" + "thumb_finger_fk_ctrl_2_l.buttonName",self.widgets[character + "_leftThumb2PickerButton"], type = "string")
|
|
except:
|
|
pass
|
|
|
|
|
|
|
|
try:
|
|
if cmds.objExists(character + ":" + "thumb_finger_fk_ctrl_3_l"):
|
|
if cmds.objExists(character + ":" + "thumb_finger_fk_ctrl_3_l.buttonName"):
|
|
cmds.setAttr(character + ":" + "thumb_finger_fk_ctrl_3_l.buttonName",self.widgets[character + "_leftThumb3PickerButton"], type = "string")
|
|
|
|
else:
|
|
cmds.select(character + ":" + "thumb_finger_fk_ctrl_3_l")
|
|
cmds.addAttr(ln = "buttonName", dt = "string", keyable = False)
|
|
cmds.setAttr(character + ":" + "thumb_finger_fk_ctrl_3_l.buttonName",self.widgets[character + "_leftThumb3PickerButton"], type = "string")
|
|
except:
|
|
pass
|
|
|
|
|
|
|
|
#left IK fingers
|
|
try:
|
|
if cmds.objExists(character + ":" + "index_l_ik_anim"):
|
|
if cmds.objExists(character + ":" + "index_l_ik_anim.buttonName"):
|
|
cmds.setAttr(character + ":" + "index_l_ik_anim.buttonName",self.widgets[character + "_leftIndexFingerIKPickerButton"], type = "string")
|
|
|
|
else:
|
|
cmds.select(character + ":" + "index_l_ik_anim")
|
|
cmds.addAttr(ln = "buttonName", dt = "string", keyable = False)
|
|
cmds.setAttr(character + ":" + "index_l_ik_anim.buttonName",self.widgets[character + "_leftIndexFingerIKPickerButton"], type = "string")
|
|
except:
|
|
pass
|
|
|
|
|
|
try:
|
|
if cmds.objExists(character + ":" + "middle_l_ik_anim"):
|
|
if cmds.objExists(character + ":" + "middle_l_ik_anim.buttonName"):
|
|
cmds.setAttr(character + ":" + "middle_l_ik_anim.buttonName",self.widgets[character + "_leftMiddleFingerIKPickerButton"], type = "string")
|
|
|
|
else:
|
|
cmds.select(character + ":" + "middle_l_ik_anim")
|
|
cmds.addAttr(ln = "buttonName", dt = "string", keyable = False)
|
|
cmds.setAttr(character + ":" + "middle_l_ik_anim.buttonName",self.widgets[character + "_leftMiddleFingerIKPickerButton"], type = "string")
|
|
except:
|
|
pass
|
|
|
|
|
|
|
|
try:
|
|
if cmds.objExists(character + ":" + "ring_l_ik_anim"):
|
|
if cmds.objExists(character + ":" + "ring_l_ik_anim.buttonName"):
|
|
cmds.setAttr(character + ":" + "ring_l_ik_anim.buttonName",self.widgets[character + "_leftRingFingerIKPickerButton"], type = "string")
|
|
|
|
else:
|
|
cmds.select(character + ":" + "ring_l_ik_anim")
|
|
cmds.addAttr(ln = "buttonName", dt = "string", keyable = False)
|
|
cmds.setAttr(character + ":" + "ring_l_ik_anim.buttonName",self.widgets[character + "_leftRingFingerIKPickerButton"], type = "string")
|
|
|
|
except:
|
|
pass
|
|
|
|
|
|
|
|
try:
|
|
if cmds.objExists(character + ":" + "pinky_l_ik_anim"):
|
|
if cmds.objExists(character + ":" + "pinky_l_ik_anim.buttonName"):
|
|
cmds.setAttr(character + ":" + "pinky_l_ik_anim.buttonName",self.widgets[character + "_leftPinkyFingerIKPickerButton"], type = "string")
|
|
|
|
else:
|
|
cmds.select(character + ":" + "pinky_l_ik_anim")
|
|
cmds.addAttr(ln = "buttonName", dt = "string", keyable = False)
|
|
cmds.setAttr(character + ":" + "pinky_l_ik_anim.buttonName",self.widgets[character + "_leftPinkyFingerIKPickerButton"], type = "string")
|
|
|
|
except:
|
|
pass
|
|
|
|
|
|
try:
|
|
if cmds.objExists(character + ":" + "thumb_l_ik_anim"):
|
|
if cmds.objExists(character + ":" + "thumb_l_ik_anim.buttonName"):
|
|
cmds.setAttr(character + ":" + "thumb_l_ik_anim.buttonName",self.widgets[character + "_leftThumbFingerIKPickerButton"], type = "string")
|
|
|
|
else:
|
|
cmds.select(character + ":" + "thumb_l_ik_anim")
|
|
cmds.addAttr(ln = "buttonName", dt = "string", keyable = False)
|
|
cmds.setAttr(character + ":" + "thumb_l_ik_anim.buttonName",self.widgets[character + "_leftThumbFingerIKPickerButton"], type = "string")
|
|
except:
|
|
pass
|
|
|
|
|
|
|
|
|
|
#left IK finger PVs
|
|
try:
|
|
if cmds.objExists(character + ":" + "index_l_ik_anim"):
|
|
if cmds.objExists(character + ":" + "index_l_poleVector.buttonName"):
|
|
cmds.setAttr(character + ":" + "index_l_poleVector.buttonName",self.widgets[character + "_leftIndexIkPvPickerButton"], type = "string")
|
|
|
|
else:
|
|
cmds.select(character + ":" + "index_l_poleVector")
|
|
cmds.addAttr(ln = "buttonName", dt = "string", keyable = False)
|
|
cmds.setAttr(character + ":" + "index_l_poleVector.buttonName",self.widgets[character + "_leftIndexIkPvPickerButton"], type = "string")
|
|
except:
|
|
pass
|
|
|
|
|
|
try:
|
|
if cmds.objExists(character + ":" + "middle_l_ik_anim"):
|
|
if cmds.objExists(character + ":" + "middle_l_poleVector.buttonName"):
|
|
cmds.setAttr(character + ":" + "middle_l_poleVector.buttonName",self.widgets[character + "_leftMiddleIkPvPickerButton"], type = "string")
|
|
|
|
else:
|
|
cmds.select(character + ":" + "middle_l_poleVector")
|
|
cmds.addAttr(ln = "buttonName", dt = "string", keyable = False)
|
|
cmds.setAttr(character + ":" + "middle_l_poleVector.buttonName",self.widgets[character + "_leftMiddleIkPvPickerButton"], type = "string")
|
|
except:
|
|
pass
|
|
|
|
|
|
|
|
try:
|
|
if cmds.objExists(character + ":" + "ring_l_ik_anim"):
|
|
if cmds.objExists(character + ":" + "ring_l_poleVector.buttonName"):
|
|
cmds.setAttr(character + ":" + "ring_l_poleVector.buttonName",self.widgets[character + "_leftRingIkPvPickerButton"], type = "string")
|
|
|
|
else:
|
|
cmds.select(character + ":" + "ring_l_poleVector")
|
|
cmds.addAttr(ln = "buttonName", dt = "string", keyable = False)
|
|
cmds.setAttr(character + ":" + "ring_l_poleVector.buttonName",self.widgets[character + "_leftRingIkPvPickerButton"], type = "string")
|
|
except:
|
|
pass
|
|
|
|
|
|
|
|
try:
|
|
if cmds.objExists(character + ":" + "pinky_l_ik_anim"):
|
|
if cmds.objExists(character + ":" + "pinky_l_poleVector.buttonName"):
|
|
cmds.setAttr(character + ":" + "pinky_l_poleVector.buttonName",self.widgets[character + "_leftPinkyIkPvPickerButton"], type = "string")
|
|
|
|
else:
|
|
cmds.select(character + ":" + "pinky_l_poleVector")
|
|
cmds.addAttr(ln = "buttonName", dt = "string", keyable = False)
|
|
cmds.setAttr(character + ":" + "pinky_l_poleVector.buttonName",self.widgets[character + "_leftPinkyIkPvPickerButton"], type = "string")
|
|
except:
|
|
pass
|
|
|
|
|
|
try:
|
|
if cmds.objExists(character + ":" + "thumb_l_ik_anim"):
|
|
if cmds.objExists(character + ":" + "thumb_l_poleVector.buttonName"):
|
|
cmds.setAttr(character + ":" + "thumb_l_poleVector.buttonName",self.widgets[character + "_leftThumbIkPvPickerButton"], type = "string")
|
|
|
|
else:
|
|
cmds.select(character + ":" + "thumb_l_poleVector")
|
|
cmds.addAttr(ln = "buttonName", dt = "string", keyable = False)
|
|
cmds.setAttr(character + ":" + "thumb_l_poleVector.buttonName",self.widgets[character + "_leftThumbIkPvPickerButton"], type = "string")
|
|
|
|
except:
|
|
pass
|
|
|
|
|
|
|
|
try:
|
|
if cmds.objExists(character + ":" + "l_global_ik_anim"):
|
|
if cmds.objExists(character + ":" + "l_global_ik_anim.buttonName"):
|
|
cmds.setAttr(character + ":" + "l_global_ik_anim.buttonName",self.widgets[character + "_leftIkGlobalCtrlPickerButton"], type = "string")
|
|
|
|
else:
|
|
cmds.select(character + ":" + "l_global_ik_anim")
|
|
cmds.addAttr(ln = "buttonName", dt = "string", keyable = False)
|
|
cmds.setAttr(character + ":" + "l_global_ik_anim.buttonName",self.widgets[character + "_leftIkGlobalCtrlPickerButton"], type = "string")
|
|
except:
|
|
pass
|
|
|
|
|
|
|
|
|
|
|
|
|
|
#right pinky finger
|
|
try:
|
|
if cmds.objExists(character + ":" + "pinky_metacarpal_ctrl_r"):
|
|
if cmds.objExists(character + ":" + "pinky_metacarpal_ctrl_r.buttonName"):
|
|
cmds.setAttr(character + ":" + "pinky_metacarpal_ctrl_r.buttonName",self.widgets[character + "_rightPinkyMetacarpalPickerButton"], type = "string")
|
|
|
|
else:
|
|
cmds.select(character + ":" + "pinky_metacarpal_ctrl_r")
|
|
cmds.addAttr(ln = "buttonName", dt = "string", keyable = False)
|
|
cmds.setAttr(character + ":" + "pinky_metacarpal_ctrl_r.buttonName",self.widgets[character + "_rightPinkyMetacarpalPickerButton"], type = "string")
|
|
except:
|
|
pass
|
|
|
|
|
|
|
|
try:
|
|
if cmds.objExists(character + ":" + "pinky_finger_fk_ctrl_1_r"):
|
|
if cmds.objExists(character + ":" + "pinky_finger_fk_ctrl_1_r.buttonName"):
|
|
cmds.setAttr(character + ":" + "pinky_finger_fk_ctrl_1_r.buttonName",self.widgets[character + "_rightPinky1PickerButton"], type = "string")
|
|
|
|
else:
|
|
cmds.select(character + ":" + "pinky_finger_fk_ctrl_1_r")
|
|
cmds.addAttr(ln = "buttonName", dt = "string", keyable = False)
|
|
cmds.setAttr(character + ":" + "pinky_finger_fk_ctrl_1_r.buttonName",self.widgets[character + "_rightPinky1PickerButton"], type = "string")
|
|
except:
|
|
pass
|
|
|
|
|
|
|
|
try:
|
|
if cmds.objExists(character + ":" + "pinky_finger_fk_ctrl_2_r"):
|
|
if cmds.objExists(character + ":" + "pinky_finger_fk_ctrl_2_r.buttonName"):
|
|
cmds.setAttr(character + ":" + "pinky_finger_fk_ctrl_2_r.buttonName",self.widgets[character + "_rightPinky2PickerButton"], type = "string")
|
|
|
|
else:
|
|
cmds.select(character + ":" + "pinky_finger_fk_ctrl_2_r")
|
|
cmds.addAttr(ln = "buttonName", dt = "string", keyable = False)
|
|
cmds.setAttr(character + ":" + "pinky_finger_fk_ctrl_2_r.buttonName",self.widgets[character + "_rightPinky2PickerButton"], type = "string")
|
|
except:
|
|
pass
|
|
|
|
|
|
try:
|
|
if cmds.objExists(character + ":" + "pinky_finger_fk_ctrl_3_r"):
|
|
if cmds.objExists(character + ":" + "pinky_finger_fk_ctrl_3_r.buttonName"):
|
|
cmds.setAttr(character + ":" + "pinky_finger_fk_ctrl_3_r.buttonName",self.widgets[character + "_rightPinky3PickerButton"], type = "string")
|
|
|
|
else:
|
|
cmds.select(character + ":" + "pinky_finger_fk_ctrl_3_r")
|
|
cmds.addAttr(ln = "buttonName", dt = "string", keyable = False)
|
|
cmds.setAttr(character + ":" + "pinky_finger_fk_ctrl_3_r.buttonName",self.widgets[character + "_rightPinky3PickerButton"], type = "string")
|
|
except:
|
|
pass
|
|
|
|
|
|
|
|
|
|
#right ring finger
|
|
try:
|
|
if cmds.objExists(character + ":" + "ring_metacarpal_ctrl_r"):
|
|
if cmds.objExists(character + ":" + "ring_metacarpal_ctrl_r.buttonName"):
|
|
cmds.setAttr(character + ":" + "ring_metacarpal_ctrl_r.buttonName",self.widgets[character + "_rightRingMetacarpalPickerButton"], type = "string")
|
|
|
|
else:
|
|
cmds.select(character + ":" + "ring_metacarpal_ctrl_r")
|
|
cmds.addAttr(ln = "buttonName", dt = "string", keyable = False)
|
|
cmds.setAttr(character + ":" + "ring_metacarpal_ctrl_r.buttonName",self.widgets[character + "_rightRingMetacarpalPickerButton"], type = "string")
|
|
except:
|
|
pass
|
|
|
|
|
|
try:
|
|
if cmds.objExists(character + ":" + "ring_finger_fk_ctrl_1_r"):
|
|
if cmds.objExists(character + ":" + "ring_finger_fk_ctrl_1_r.buttonName"):
|
|
cmds.setAttr(character + ":" + "ring_finger_fk_ctrl_1_r.buttonName",self.widgets[character + "_rightRing1PickerButton"], type = "string")
|
|
|
|
else:
|
|
cmds.select(character + ":" + "ring_finger_fk_ctrl_1_r")
|
|
cmds.addAttr(ln = "buttonName", dt = "string", keyable = False)
|
|
cmds.setAttr(character + ":" + "ring_finger_fk_ctrl_1_r.buttonName",self.widgets[character + "_rightRing1PickerButton"], type = "string")
|
|
except:
|
|
pass
|
|
|
|
|
|
|
|
try:
|
|
if cmds.objExists(character + ":" + "ring_finger_fk_ctrl_2_r"):
|
|
if cmds.objExists(character + ":" + "ring_finger_fk_ctrl_2_r.buttonName"):
|
|
cmds.setAttr(character + ":" + "ring_finger_fk_ctrl_2_r.buttonName",self.widgets[character + "_rightRing2PickerButton"], type = "string")
|
|
|
|
else:
|
|
cmds.select(character + ":" + "ring_finger_fk_ctrl_2_r")
|
|
cmds.addAttr(ln = "buttonName", dt = "string", keyable = False)
|
|
cmds.setAttr(character + ":" + "ring_finger_fk_ctrl_2_r.buttonName",self.widgets[character + "_rightRing2PickerButton"], type = "string")
|
|
except:
|
|
pass
|
|
|
|
|
|
try:
|
|
if cmds.objExists(character + ":" + "ring_finger_fk_ctrl_3_r"):
|
|
if cmds.objExists(character + ":" + "ring_finger_fk_ctrl_3_r.buttonName"):
|
|
cmds.setAttr(character + ":" + "ring_finger_fk_ctrl_3_r.buttonName",self.widgets[character + "_rightRing3PickerButton"], type = "string")
|
|
|
|
else:
|
|
cmds.select(character + ":" + "ring_finger_fk_ctrl_3_r")
|
|
cmds.addAttr(ln = "buttonName", dt = "string", keyable = False)
|
|
cmds.setAttr(character + ":" + "ring_finger_fk_ctrl_3_r.buttonName",self.widgets[character + "_rightRing3PickerButton"], type = "string")
|
|
except:
|
|
pass
|
|
|
|
|
|
#right middle finger
|
|
try:
|
|
if cmds.objExists(character + ":" + "middle_metacarpal_ctrl_r"):
|
|
if cmds.objExists(character + ":" + "middle_metacarpal_ctrl_r.buttonName"):
|
|
cmds.setAttr(character + ":" + "middle_metacarpal_ctrl_r.buttonName",self.widgets[character + "_rightMiddleMetacarpalPickerButton"], type = "string")
|
|
|
|
else:
|
|
cmds.select(character + ":" + "middle_metacarpal_ctrl_r")
|
|
cmds.addAttr(ln = "buttonName", dt = "string", keyable = False)
|
|
cmds.setAttr(character + ":" + "middle_metacarpal_ctrl_r.buttonName",self.widgets[character + "_rightMiddleMetacarpalPickerButton"], type = "string")
|
|
except:
|
|
pass
|
|
|
|
|
|
|
|
try:
|
|
if cmds.objExists(character + ":" + "middle_finger_fk_ctrl_1_r"):
|
|
if cmds.objExists(character + ":" + "middle_finger_fk_ctrl_1_r.buttonName"):
|
|
cmds.setAttr(character + ":" + "middle_finger_fk_ctrl_1_r.buttonName",self.widgets[character + "_rightMiddle1PickerButton"], type = "string")
|
|
|
|
else:
|
|
cmds.select(character + ":" + "middle_finger_fk_ctrl_1_r")
|
|
cmds.addAttr(ln = "buttonName", dt = "string", keyable = False)
|
|
cmds.setAttr(character + ":" + "middle_finger_fk_ctrl_1_r.buttonName",self.widgets[character + "_rightMiddle1PickerButton"], type = "string")
|
|
except:
|
|
pass
|
|
|
|
|
|
try:
|
|
if cmds.objExists(character + ":" + "middle_finger_fk_ctrl_2_r"):
|
|
if cmds.objExists(character + ":" + "middle_finger_fk_ctrl_2_r.buttonName"):
|
|
cmds.setAttr(character + ":" + "middle_finger_fk_ctrl_2_r.buttonName",self.widgets[character + "_rightMiddle2PickerButton"], type = "string")
|
|
|
|
else:
|
|
cmds.select(character + ":" + "middle_finger_fk_ctrl_2_r")
|
|
cmds.addAttr(ln = "buttonName", dt = "string", keyable = False)
|
|
cmds.setAttr(character + ":" + "middle_finger_fk_ctrl_2_r.buttonName",self.widgets[character + "_rightMiddle2PickerButton"], type = "string")
|
|
|
|
except:
|
|
pass
|
|
|
|
|
|
|
|
try:
|
|
if cmds.objExists(character + ":" + "middle_finger_fk_ctrl_3_r"):
|
|
if cmds.objExists(character + ":" + "middle_finger_fk_ctrl_3_r.buttonName"):
|
|
cmds.setAttr(character + ":" + "middle_finger_fk_ctrl_3_r.buttonName",self.widgets[character + "_rightMiddle3PickerButton"], type = "string")
|
|
|
|
else:
|
|
cmds.select(character + ":" + "middle_finger_fk_ctrl_3_r")
|
|
cmds.addAttr(ln = "buttonName", dt = "string", keyable = False)
|
|
cmds.setAttr(character + ":" + "middle_finger_fk_ctrl_3_r.buttonName",self.widgets[character + "_rightMiddle3PickerButton"], type = "string")
|
|
except:
|
|
pass
|
|
|
|
|
|
|
|
#right index finger
|
|
try:
|
|
if cmds.objExists(character + ":" + "index_metacarpal_ctrl_r"):
|
|
if cmds.objExists(character + ":" + "index_metacarpal_ctrl_r.buttonName"):
|
|
cmds.setAttr(character + ":" + "index_metacarpal_ctrl_r.buttonName",self.widgets[character + "_rightIndexMetacarpalPickerButton"], type = "string")
|
|
|
|
else:
|
|
cmds.select(character + ":" + "index_metacarpal_ctrl_r")
|
|
cmds.addAttr(ln = "buttonName", dt = "string", keyable = False)
|
|
cmds.setAttr(character + ":" + "index_metacarpal_ctrl_r.buttonName",self.widgets[character + "_rightIndexMetacarpalPickerButton"], type = "string")
|
|
except:
|
|
pass
|
|
|
|
|
|
|
|
try:
|
|
if cmds.objExists(character + ":" + "index_finger_fk_ctrl_1_r"):
|
|
if cmds.objExists(character + ":" + "index_finger_fk_ctrl_1_r.buttonName"):
|
|
cmds.setAttr(character + ":" + "index_finger_fk_ctrl_1_r.buttonName",self.widgets[character + "_rightIndex1PickerButton"], type = "string")
|
|
|
|
else:
|
|
cmds.select(character + ":" + "index_finger_fk_ctrl_1_r")
|
|
cmds.addAttr(ln = "buttonName", dt = "string", keyable = False)
|
|
cmds.setAttr(character + ":" + "index_finger_fk_ctrl_1_r.buttonName",self.widgets[character + "_rightIndex1PickerButton"], type = "string")
|
|
except:
|
|
pass
|
|
|
|
|
|
|
|
try:
|
|
if cmds.objExists(character + ":" + "index_finger_fk_ctrl_2_r"):
|
|
if cmds.objExists(character + ":" + "index_finger_fk_ctrl_2_r.buttonName"):
|
|
cmds.setAttr(character + ":" + "index_finger_fk_ctrl_2_r.buttonName",self.widgets[character + "_rightIndex2PickerButton"], type = "string")
|
|
|
|
else:
|
|
cmds.select(character + ":" + "index_finger_fk_ctrl_2_r")
|
|
cmds.addAttr(ln = "buttonName", dt = "string", keyable = False)
|
|
cmds.setAttr(character + ":" + "index_finger_fk_ctrl_2_r.buttonName",self.widgets[character + "_rightIndex2PickerButton"], type = "string")
|
|
except:
|
|
pass
|
|
|
|
|
|
|
|
try:
|
|
if cmds.objExists(character + ":" + "index_finger_fk_ctrl_3_r"):
|
|
if cmds.objExists(character + ":" + "index_finger_fk_ctrl_3_r.buttonName"):
|
|
cmds.setAttr(character + ":" + "index_finger_fk_ctrl_3_r.buttonName",self.widgets[character + "_rightIndex3PickerButton"], type = "string")
|
|
|
|
else:
|
|
cmds.select(character + ":" + "index_finger_fk_ctrl_3_r")
|
|
cmds.addAttr(ln = "buttonName", dt = "string", keyable = False)
|
|
cmds.setAttr(character + ":" + "index_finger_fk_ctrl_3_r.buttonName",self.widgets[character + "_rightIndex3PickerButton"], type = "string")
|
|
except:
|
|
pass
|
|
|
|
|
|
|
|
#right thumb finger
|
|
try:
|
|
if cmds.objExists(character + ":" + "thumb_finger_fk_ctrl_1_r"):
|
|
if cmds.objExists(character + ":" + "thumb_finger_fk_ctrl_1_r.buttonName"):
|
|
cmds.setAttr(character + ":" + "thumb_finger_fk_ctrl_1_r.buttonName",self.widgets[character + "_rightThumb1PickerButton"], type = "string")
|
|
|
|
else:
|
|
cmds.select(character + ":" + "thumb_finger_fk_ctrl_1_r")
|
|
cmds.addAttr(ln = "buttonName", dt = "string", keyable = False)
|
|
cmds.setAttr(character + ":" + "thumb_finger_fk_ctrl_1_r.buttonName",self.widgets[character + "_rightThumb1PickerButton"], type = "string")
|
|
except:
|
|
pass
|
|
|
|
|
|
try:
|
|
if cmds.objExists(character + ":" + "thumb_finger_fk_ctrl_2_r"):
|
|
if cmds.objExists(character + ":" + "thumb_finger_fk_ctrl_2_r.buttonName"):
|
|
cmds.setAttr(character + ":" + "thumb_finger_fk_ctrl_2_r.buttonName",self.widgets[character + "_rightThumb2PickerButton"], type = "string")
|
|
|
|
else:
|
|
cmds.select(character + ":" + "thumb_finger_fk_ctrl_2_r")
|
|
cmds.addAttr(ln = "buttonName", dt = "string", keyable = False)
|
|
cmds.setAttr(character + ":" + "thumb_finger_fk_ctrl_2_r.buttonName",self.widgets[character + "_rightThumb2PickerButton"], type = "string")
|
|
except:
|
|
pass
|
|
|
|
|
|
try:
|
|
if cmds.objExists(character + ":" + "thumb_finger_fk_ctrl_3_r"):
|
|
if cmds.objExists(character + ":" + "thumb_finger_fk_ctrl_3_r.buttonName"):
|
|
cmds.setAttr(character + ":" + "thumb_finger_fk_ctrl_3_r.buttonName",self.widgets[character + "_rightThumb3PickerButton"], type = "string")
|
|
|
|
else:
|
|
cmds.select(character + ":" + "thumb_finger_fk_ctrl_3_r")
|
|
cmds.addAttr(ln = "buttonName", dt = "string", keyable = False)
|
|
cmds.setAttr(character + ":" + "thumb_finger_fk_ctrl_3_r.buttonName",self.widgets[character + "_rightThumb3PickerButton"], type = "string")
|
|
except:
|
|
pass
|
|
|
|
|
|
|
|
|
|
#right IK fingers
|
|
try:
|
|
if cmds.objExists(character + ":" + "index_r_ik_anim"):
|
|
if cmds.objExists(character + ":" + "index_r_ik_anim.buttonName"):
|
|
cmds.setAttr(character + ":" + "index_r_ik_anim.buttonName",self.widgets[character + "_rightIndexFingerIKPickerButton"], type = "string")
|
|
|
|
else:
|
|
cmds.select(character + ":" + "index_r_ik_anim")
|
|
cmds.addAttr(ln = "buttonName", dt = "string", keyable = False)
|
|
cmds.setAttr(character + ":" + "index_r_ik_anim.buttonName",self.widgets[character + "_rightIndexFingerIKPickerButton"], type = "string")
|
|
except:
|
|
pass
|
|
|
|
|
|
try:
|
|
if cmds.objExists(character + ":" + "middle_r_ik_anim"):
|
|
if cmds.objExists(character + ":" + "middle_r_ik_anim.buttonName"):
|
|
cmds.setAttr(character + ":" + "middle_r_ik_anim.buttonName",self.widgets[character + "_rightMiddleFingerIKPickerButton"], type = "string")
|
|
|
|
else:
|
|
cmds.select(character + ":" + "middle_r_ik_anim")
|
|
cmds.addAttr(ln = "buttonName", dt = "string", keyable = False)
|
|
cmds.setAttr(character + ":" + "middle_r_ik_anim.buttonName",self.widgets[character + "_rightMiddleFingerIKPickerButton"], type = "string")
|
|
except:
|
|
pass
|
|
|
|
|
|
try:
|
|
if cmds.objExists(character + ":" + "ring_r_ik_anim"):
|
|
if cmds.objExists(character + ":" + "ring_r_ik_anim.buttonName"):
|
|
cmds.setAttr(character + ":" + "ring_r_ik_anim.buttonName",self.widgets[character + "_rightRingFingerIKPickerButton"], type = "string")
|
|
|
|
else:
|
|
cmds.select(character + ":" + "ring_r_ik_anim")
|
|
cmds.addAttr(ln = "buttonName", dt = "string", keyable = False)
|
|
cmds.setAttr(character + ":" + "ring_r_ik_anim.buttonName",self.widgets[character + "_rightRingFingerIKPickerButton"], type = "string")
|
|
except:
|
|
pass
|
|
|
|
|
|
|
|
try:
|
|
if cmds.objExists(character + ":" + "pinky_r_ik_anim"):
|
|
if cmds.objExists(character + ":" + "pinky_r_ik_anim.buttonName"):
|
|
cmds.setAttr(character + ":" + "pinky_r_ik_anim.buttonName",self.widgets[character + "_rightPinkyFingerIKPickerButton"], type = "string")
|
|
|
|
else:
|
|
cmds.select(character + ":" + "pinky_r_ik_anim")
|
|
cmds.addAttr(ln = "buttonName", dt = "string", keyable = False)
|
|
cmds.setAttr(character + ":" + "pinky_r_ik_anim.buttonName",self.widgets[character + "_rightPinkyFingerIKPickerButton"], type = "string")
|
|
except:
|
|
pass
|
|
|
|
|
|
try:
|
|
if cmds.objExists(character + ":" + "thumb_r_ik_anim"):
|
|
if cmds.objExists(character + ":" + "thumb_r_ik_anim.buttonName"):
|
|
cmds.setAttr(character + ":" + "thumb_r_ik_anim.buttonName",self.widgets[character + "_rightThumbFingerIKPickerButton"], type = "string")
|
|
|
|
else:
|
|
cmds.select(character + ":" + "thumb_r_ik_anim")
|
|
cmds.addAttr(ln = "buttonName", dt = "string", keyable = False)
|
|
cmds.setAttr(character + ":" + "thumb_r_ik_anim.buttonName",self.widgets[character + "_rightThumbFingerIKPickerButton"], type = "string")
|
|
except:
|
|
pass
|
|
|
|
|
|
|
|
#right IK finger PVs
|
|
try:
|
|
if cmds.objExists(character + ":" + "index_r_ik_anim"):
|
|
if cmds.objExists(character + ":" + "index_r_poleVector.buttonName"):
|
|
cmds.setAttr(character + ":" + "index_r_poleVector.buttonName",self.widgets[character + "_rightIndexIkPvPickerButton"], type = "string")
|
|
|
|
else:
|
|
cmds.select(character + ":" + "index_r_poleVector")
|
|
cmds.addAttr(ln = "buttonName", dt = "string", keyable = False)
|
|
cmds.setAttr(character + ":" + "index_r_poleVector.buttonName",self.widgets[character + "_rightIndexIkPvPickerButton"], type = "string")
|
|
except:
|
|
pass
|
|
|
|
|
|
try:
|
|
if cmds.objExists(character + ":" + "middle_r_ik_anim"):
|
|
if cmds.objExists(character + ":" + "middle_r_poleVector.buttonName"):
|
|
cmds.setAttr(character + ":" + "middle_r_poleVector.buttonName",self.widgets[character + "_rightMiddleIkPvPickerButton"], type = "string")
|
|
|
|
else:
|
|
cmds.select(character + ":" + "middle_r_poleVector")
|
|
cmds.addAttr(ln = "buttonName", dt = "string", keyable = False)
|
|
cmds.setAttr(character + ":" + "middle_r_poleVector.buttonName",self.widgets[character + "_rightMiddleIkPvPickerButton"], type = "string")
|
|
except:
|
|
pass
|
|
|
|
|
|
|
|
try:
|
|
if cmds.objExists(character + ":" + "ring_r_ik_anim"):
|
|
if cmds.objExists(character + ":" + "ring_r_poleVector.buttonName"):
|
|
cmds.setAttr(character + ":" + "ring_r_poleVector.buttonName",self.widgets[character + "_rightRingIkPvPickerButton"], type = "string")
|
|
|
|
else:
|
|
cmds.select(character + ":" + "ring_r_poleVector")
|
|
cmds.addAttr(ln = "buttonName", dt = "string", keyable = False)
|
|
cmds.setAttr(character + ":" + "ring_r_poleVector.buttonName",self.widgets[character + "_rightRingIkPvPickerButton"], type = "string")
|
|
except:
|
|
pass
|
|
|
|
|
|
try:
|
|
if cmds.objExists(character + ":" + "pinky_r_ik_anim"):
|
|
if cmds.objExists(character + ":" + "pinky_r_poleVector.buttonName"):
|
|
cmds.setAttr(character + ":" + "pinky_r_poleVector.buttonName",self.widgets[character + "_rightPinkyIkPvPickerButton"], type = "string")
|
|
|
|
else:
|
|
cmds.select(character + ":" + "pinky_r_poleVector")
|
|
cmds.addAttr(ln = "buttonName", dt = "string", keyable = False)
|
|
cmds.setAttr(character + ":" + "pinky_r_poleVector.buttonName",self.widgets[character + "_rightPinkyIkPvPickerButton"], type = "string")
|
|
except:
|
|
pass
|
|
|
|
|
|
try:
|
|
if cmds.objExists(character + ":" + "thumb_r_ik_anim"):
|
|
if cmds.objExists(character + ":" + "thumb_r_poleVector.buttonName"):
|
|
cmds.setAttr(character + ":" + "thumb_r_poleVector.buttonName",self.widgets[character + "_rightThumbIkPvPickerButton"], type = "string")
|
|
|
|
else:
|
|
cmds.select(character + ":" + "thumb_r_poleVector")
|
|
cmds.addAttr(ln = "buttonName", dt = "string", keyable = False)
|
|
cmds.setAttr(character + ":" + "thumb_r_poleVector.buttonName",self.widgets[character + "_rightThumbIkPvPickerButton"], type = "string")
|
|
except:
|
|
pass
|
|
|
|
|
|
|
|
try:
|
|
if cmds.objExists(character + ":" + "r_global_ik_anim"):
|
|
if cmds.objExists(character + ":" + "r_global_ik_anim.buttonName"):
|
|
cmds.setAttr(character + ":" + "r_global_ik_anim.buttonName",self.widgets[character + "_rightIkGlobalCtrlPickerButton"], type = "string")
|
|
|
|
else:
|
|
cmds.select(character + ":" + "r_global_ik_anim")
|
|
cmds.addAttr(ln = "buttonName", dt = "string", keyable = False)
|
|
cmds.setAttr(character + ":" + "r_global_ik_anim.buttonName",self.widgets[character + "_rightIkGlobalCtrlPickerButton"], type = "string")
|
|
except:
|
|
pass
|
|
|
|
|