Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- '''
- import animToolset
- reload (animToolset)
- animToolset.OpenAnimTool
- version 1.0
- written by Jacob Meeks
- '''
- from PySide2 import QtCore
- from PySide2 import QtWidgets
- from shiboken2 import wrapInstance
- import pymel.core as pm
- import maya.OpenMayaUI as omui
- def maya_main_window():
- """
- Return the Maya main window widget as a Python object
- """
- main_window_ptr = omui.MQtUtil.mainWindow()
- return wrapInstance(long(main_window_ptr), QtWidgets.QWidget)
- class OpenAnimTool(QtWidgets.QDialog):
- def __init__(self, parent=maya_main_window()):
- super(OpenAnimTool, self).__init__(parent)
- self.setWindowFlags(QtCore.Qt.Tool | QtCore.Qt.WindowStaysOnTopHint)
- self.setWindowTitle("Animator Kit")
- #self.setMinimumSize(300, 80)
- #self.setWindowFlags(self.windowFlags() ^ QtCore.Qt.WindowContextHelpButtonHint)
- self.create_widgets()
- self.create_layout()
- self.create_connections()
- def create_widgets(self):
- self.labelInstructor1 = QtWidgets.QLabel('preform operation on items containing suffix')
- self.suffixField = QtWidgets.QLineEdit()
- self.storeName = QtWidgets.QPushButton("store selected")
- self.opTypeCombo = QtWidgets.QComboBox()
- self.opTypeCombo.addItems(["selected", "remaining chain", "all"])
- self.keyBtn = QtWidgets.QPushButton("Key")
- self.selectBtn = QtWidgets.QPushButton("select")
- self.resetPoseBtn = QtWidgets.QPushButton("Reset")
- self.storePoseBtn = QtWidgets.QPushButton("store")
- self.keyAllCheck = QtWidgets.QCheckBox('Keying All')
- self.txCheck = QtWidgets.QCheckBox('TX')
- self.tyCheck = QtWidgets.QCheckBox('TY')
- self.tzCheck = QtWidgets.QCheckBox('TZ')
- self.rxCheck = QtWidgets.QCheckBox('RX')
- self.ryCheck = QtWidgets.QCheckBox('RY')
- self.rzCheck = QtWidgets.QCheckBox('RZ')
- self.sxCheck = QtWidgets.QCheckBox('SX')
- self.syCheck = QtWidgets.QCheckBox('SY')
- self.szCheck = QtWidgets.QCheckBox('SZ')
- def create_layout(self):
- global form_layout
- form_layout = QtWidgets.QFormLayout()
- form_layout.addRow(self.labelInstructor1)
- form_layout.addRow(self.suffixField, self.storeName)
- form_layout.addRow(self.opTypeCombo)
- form_layout.addRow(self.keyBtn, self.selectBtn)
- form_layout.addRow(self.resetPoseBtn, self.storePoseBtn)
- form_layout.addRow(self.keyAllCheck)
- self.keyAllCheck.setChecked(True)
- keyOpts_grid_layout = QtWidgets.QGridLayout()
- keyOpts_grid_layout.addWidget(self.txCheck, 0, 0)
- keyOpts_grid_layout.addWidget(self.tyCheck, 0, 1)
- keyOpts_grid_layout.addWidget(self.tzCheck, 0, 2)
- keyOpts_grid_layout.addWidget(self.rxCheck, 1, 0)
- keyOpts_grid_layout.addWidget(self.ryCheck, 1, 1)
- keyOpts_grid_layout.addWidget(self.rzCheck, 1, 2)
- keyOpts_grid_layout.addWidget(self.sxCheck, 2, 0)
- keyOpts_grid_layout.addWidget(self.syCheck, 2, 1)
- keyOpts_grid_layout.addWidget(self.szCheck, 2, 2)
- self.txCheck.hide()
- self.txCheck.setChecked(True)
- self.tyCheck.hide()
- self.tyCheck.setChecked(True)
- self.tzCheck.hide()
- self.tzCheck.setChecked(True)
- self.rxCheck.hide()
- self.rxCheck.setChecked(True)
- self.ryCheck.hide()
- self.ryCheck.setChecked(True)
- self.rzCheck.hide()
- self.rzCheck.setChecked(True)
- self.sxCheck.hide()
- self.sxCheck.setChecked(True)
- self.syCheck.hide()
- self.syCheck.setChecked(True)
- self.szCheck.hide()
- self.szCheck.setChecked(True)
- global main_layout
- main_layout = QtWidgets.QVBoxLayout(self)
- main_layout.addLayout(form_layout)
- main_layout.addLayout(keyOpts_grid_layout)
- #main_layout.addLayout(button_layout1)
- def update_gui(self):
- advTgl = self.keyAllCheck.isChecked()
- if advTgl == True:
- self.txCheck.hide()
- self.tyCheck.hide()
- self.tzCheck.hide()
- self.rxCheck.hide()
- self.ryCheck.hide()
- self.rzCheck.hide()
- self.sxCheck.hide()
- self.syCheck.hide()
- self.szCheck.hide()
- if advTgl == False:
- self.txCheck.show()
- self.tyCheck.show()
- self.tzCheck.show()
- self.rxCheck.show()
- self.ryCheck.show()
- self.rzCheck.show()
- self.sxCheck.show()
- self.syCheck.show()
- self.szCheck.show()
- def add_gui_buttons(self):
- print "in development"
- def create_connections(self):
- self.keyAllCheck.toggled.connect(self.update_gui)
- self.storeName.clicked.connect(self.set_nameSearch)
- self.suffixField.deselect()
- self.keyBtn.clicked.connect(self.key_op)
- self.selectBtn.clicked.connect(self.select_op)
- self.storePoseBtn.clicked.connect(self.add_gui_buttons)
- self.resetPoseBtn.clicked.connect(self.reset_ctrls)
- def set_nameSearch(self):
- try:
- altNameBase = pm.ls(sl=True)[0]
- altNameBreak = altNameBase.split('_')
- altName = altNameBreak[-1]
- except:
- altName = 'none'
- self.suffixField.setText(str(altName))
- return altName
- def effected_storage(self):
- opType = self.opTypeCombo.currentIndex()
- effectedItems = self.suffixField.text()
- global effectedDelivery
- effectedDelivery = []
- if opType == 0:
- selected = pm.ls(sl=True)[0]
- #print 'key: {0}' . format(selected)
- effectedDelivery.append(selected)
- if opType == 1:
- selected = pm.ls(sl=True, dag=True)
- for x in selected:
- try:
- breaker = x.split('_')
- if breaker[-1] == effectedItems:
- #print 'key: {0}' . format(x)
- effectedDelivery.append(x)
- except:
- print 'the stored name provide is not found'
- if opType == 2:
- sceneSelect = pm.ls(type = 'transform')
- for x in sceneSelect:
- try:
- breaker = x.split('_')
- if breaker[-1] == effectedItems:
- #print 'key: {0}' . format(x)
- effectedDelivery.append(x)
- except:
- print 'the stored name provide is not found'
- def applied_attr(self):
- global confirmedKeys
- confirmedKeys = []
- if self.txCheck.isChecked() == True:
- confirmedKeys.append('.tx')
- if self.tyCheck.isChecked() == True:
- confirmedKeys.append('.ty')
- if self.tzCheck.isChecked() == True:
- confirmedKeys.append('.tz')
- if self.rxCheck.isChecked() == True:
- confirmedKeys.append('.rx')
- if self.ryCheck.isChecked() == True:
- confirmedKeys.append('.ry')
- if self.rzCheck.isChecked() == True:
- confirmedKeys.append('.rz')
- if self.sxCheck.isChecked() == True:
- confirmedKeys.append('.sx')
- if self.syCheck.isChecked() == True:
- confirmedKeys.append('.sy')
- if self.szCheck.isChecked() == True:
- confirmedKeys.append('.sz')
- def select_op(self):
- self.effected_storage()
- for x in effectedDelivery:
- #print 'selecting: {0}' . format(x)
- pm.select(x, add=True)
- def reset_ctrls(self):
- self.effected_storage()
- self.applied_attr()
- for x in effectedDelivery:
- for y in confirmedKeys:
- #print y
- if y[1] == 's':
- pm.setAttr(x + y, 1)
- else:
- pm.setAttr(x + y, 0)
- def key_op(self):
- self.effected_storage()
- self.applied_attr()
- #print confirmedKeys
- keyAttr = ".tx"
- for x in effectedDelivery:
- for y in confirmedKeys:
- targetedKey = '{0}{1}' . format(x, y)
- #print targetedKey
- pm.setKeyframe([str(targetedKey)])
- print __name__
- if __name__ == "animToolset":
- try:
- open_animTool.close() # pylint: disable=E0601
- open_animTool.deleteLater()
- except:
- pass
- open_animTool = OpenAnimTool()
- open_animTool.show()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement