Advertisement
Guest User

Untitled

a guest
Mar 23rd, 2019
68
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 8.45 KB | None | 0 0
  1. '''
  2. import animToolset
  3. reload (animToolset)
  4. animToolset.OpenAnimTool
  5.  
  6. version 1.0
  7. written by Jacob Meeks
  8. '''
  9. from PySide2 import QtCore
  10. from PySide2 import QtWidgets
  11. from shiboken2 import wrapInstance
  12. import pymel.core as pm
  13. import maya.OpenMayaUI as omui
  14.  
  15.  
  16. def maya_main_window():
  17. """
  18. Return the Maya main window widget as a Python object
  19. """
  20. main_window_ptr = omui.MQtUtil.mainWindow()
  21. return wrapInstance(long(main_window_ptr), QtWidgets.QWidget)
  22.  
  23.  
  24. class OpenAnimTool(QtWidgets.QDialog):
  25.  
  26. def __init__(self, parent=maya_main_window()):
  27. super(OpenAnimTool, self).__init__(parent)
  28. self.setWindowFlags(QtCore.Qt.Tool | QtCore.Qt.WindowStaysOnTopHint)
  29.  
  30.  
  31. self.setWindowTitle("Animator Kit")
  32. #self.setMinimumSize(300, 80)
  33. #self.setWindowFlags(self.windowFlags() ^ QtCore.Qt.WindowContextHelpButtonHint)
  34.  
  35. self.create_widgets()
  36. self.create_layout()
  37. self.create_connections()
  38.  
  39. def create_widgets(self):
  40. self.labelInstructor1 = QtWidgets.QLabel('preform operation on items containing suffix')
  41. self.suffixField = QtWidgets.QLineEdit()
  42. self.storeName = QtWidgets.QPushButton("store selected")
  43.  
  44. self.opTypeCombo = QtWidgets.QComboBox()
  45. self.opTypeCombo.addItems(["selected", "remaining chain", "all"])
  46.  
  47. self.keyBtn = QtWidgets.QPushButton("Key")
  48. self.selectBtn = QtWidgets.QPushButton("select")
  49.  
  50.  
  51. self.resetPoseBtn = QtWidgets.QPushButton("Reset")
  52. self.storePoseBtn = QtWidgets.QPushButton("store")
  53.  
  54. self.keyAllCheck = QtWidgets.QCheckBox('Keying All')
  55. self.txCheck = QtWidgets.QCheckBox('TX')
  56. self.tyCheck = QtWidgets.QCheckBox('TY')
  57. self.tzCheck = QtWidgets.QCheckBox('TZ')
  58. self.rxCheck = QtWidgets.QCheckBox('RX')
  59. self.ryCheck = QtWidgets.QCheckBox('RY')
  60. self.rzCheck = QtWidgets.QCheckBox('RZ')
  61. self.sxCheck = QtWidgets.QCheckBox('SX')
  62. self.syCheck = QtWidgets.QCheckBox('SY')
  63. self.szCheck = QtWidgets.QCheckBox('SZ')
  64.  
  65.  
  66.  
  67.  
  68.  
  69. def create_layout(self):
  70. global form_layout
  71. form_layout = QtWidgets.QFormLayout()
  72. form_layout.addRow(self.labelInstructor1)
  73. form_layout.addRow(self.suffixField, self.storeName)
  74. form_layout.addRow(self.opTypeCombo)
  75.  
  76. form_layout.addRow(self.keyBtn, self.selectBtn)
  77. form_layout.addRow(self.resetPoseBtn, self.storePoseBtn)
  78. form_layout.addRow(self.keyAllCheck)
  79. self.keyAllCheck.setChecked(True)
  80.  
  81. keyOpts_grid_layout = QtWidgets.QGridLayout()
  82. keyOpts_grid_layout.addWidget(self.txCheck, 0, 0)
  83. keyOpts_grid_layout.addWidget(self.tyCheck, 0, 1)
  84. keyOpts_grid_layout.addWidget(self.tzCheck, 0, 2)
  85. keyOpts_grid_layout.addWidget(self.rxCheck, 1, 0)
  86. keyOpts_grid_layout.addWidget(self.ryCheck, 1, 1)
  87. keyOpts_grid_layout.addWidget(self.rzCheck, 1, 2)
  88. keyOpts_grid_layout.addWidget(self.sxCheck, 2, 0)
  89. keyOpts_grid_layout.addWidget(self.syCheck, 2, 1)
  90. keyOpts_grid_layout.addWidget(self.szCheck, 2, 2)
  91.  
  92. self.txCheck.hide()
  93. self.txCheck.setChecked(True)
  94. self.tyCheck.hide()
  95. self.tyCheck.setChecked(True)
  96. self.tzCheck.hide()
  97. self.tzCheck.setChecked(True)
  98. self.rxCheck.hide()
  99. self.rxCheck.setChecked(True)
  100. self.ryCheck.hide()
  101. self.ryCheck.setChecked(True)
  102. self.rzCheck.hide()
  103. self.rzCheck.setChecked(True)
  104. self.sxCheck.hide()
  105. self.sxCheck.setChecked(True)
  106. self.syCheck.hide()
  107. self.syCheck.setChecked(True)
  108. self.szCheck.hide()
  109. self.szCheck.setChecked(True)
  110.  
  111. global main_layout
  112. main_layout = QtWidgets.QVBoxLayout(self)
  113. main_layout.addLayout(form_layout)
  114. main_layout.addLayout(keyOpts_grid_layout)
  115. #main_layout.addLayout(button_layout1)
  116. def update_gui(self):
  117. advTgl = self.keyAllCheck.isChecked()
  118. if advTgl == True:
  119. self.txCheck.hide()
  120. self.tyCheck.hide()
  121. self.tzCheck.hide()
  122. self.rxCheck.hide()
  123. self.ryCheck.hide()
  124. self.rzCheck.hide()
  125. self.sxCheck.hide()
  126. self.syCheck.hide()
  127. self.szCheck.hide()
  128. if advTgl == False:
  129. self.txCheck.show()
  130. self.tyCheck.show()
  131. self.tzCheck.show()
  132. self.rxCheck.show()
  133. self.ryCheck.show()
  134. self.rzCheck.show()
  135. self.sxCheck.show()
  136. self.syCheck.show()
  137. self.szCheck.show()
  138.  
  139. def add_gui_buttons(self):
  140. print "in development"
  141.  
  142.  
  143.  
  144.  
  145. def create_connections(self):
  146. self.keyAllCheck.toggled.connect(self.update_gui)
  147. self.storeName.clicked.connect(self.set_nameSearch)
  148. self.suffixField.deselect()
  149. self.keyBtn.clicked.connect(self.key_op)
  150. self.selectBtn.clicked.connect(self.select_op)
  151. self.storePoseBtn.clicked.connect(self.add_gui_buttons)
  152. self.resetPoseBtn.clicked.connect(self.reset_ctrls)
  153.  
  154. def set_nameSearch(self):
  155. try:
  156. altNameBase = pm.ls(sl=True)[0]
  157. altNameBreak = altNameBase.split('_')
  158. altName = altNameBreak[-1]
  159. except:
  160. altName = 'none'
  161.  
  162. self.suffixField.setText(str(altName))
  163. return altName
  164.  
  165.  
  166.  
  167.  
  168.  
  169. def effected_storage(self):
  170. opType = self.opTypeCombo.currentIndex()
  171. effectedItems = self.suffixField.text()
  172.  
  173. global effectedDelivery
  174. effectedDelivery = []
  175. if opType == 0:
  176. selected = pm.ls(sl=True)[0]
  177. #print 'key: {0}' . format(selected)
  178. effectedDelivery.append(selected)
  179. if opType == 1:
  180. selected = pm.ls(sl=True, dag=True)
  181.  
  182. for x in selected:
  183. try:
  184. breaker = x.split('_')
  185. if breaker[-1] == effectedItems:
  186. #print 'key: {0}' . format(x)
  187. effectedDelivery.append(x)
  188. except:
  189. print 'the stored name provide is not found'
  190. if opType == 2:
  191. sceneSelect = pm.ls(type = 'transform')
  192. for x in sceneSelect:
  193. try:
  194. breaker = x.split('_')
  195. if breaker[-1] == effectedItems:
  196.  
  197. #print 'key: {0}' . format(x)
  198. effectedDelivery.append(x)
  199.  
  200. except:
  201. print 'the stored name provide is not found'
  202.  
  203. def applied_attr(self):
  204. global confirmedKeys
  205. confirmedKeys = []
  206. if self.txCheck.isChecked() == True:
  207. confirmedKeys.append('.tx')
  208. if self.tyCheck.isChecked() == True:
  209. confirmedKeys.append('.ty')
  210. if self.tzCheck.isChecked() == True:
  211. confirmedKeys.append('.tz')
  212. if self.rxCheck.isChecked() == True:
  213. confirmedKeys.append('.rx')
  214. if self.ryCheck.isChecked() == True:
  215. confirmedKeys.append('.ry')
  216. if self.rzCheck.isChecked() == True:
  217. confirmedKeys.append('.rz')
  218. if self.sxCheck.isChecked() == True:
  219. confirmedKeys.append('.sx')
  220. if self.syCheck.isChecked() == True:
  221. confirmedKeys.append('.sy')
  222. if self.szCheck.isChecked() == True:
  223. confirmedKeys.append('.sz')
  224.  
  225. def select_op(self):
  226. self.effected_storage()
  227. for x in effectedDelivery:
  228. #print 'selecting: {0}' . format(x)
  229. pm.select(x, add=True)
  230.  
  231. def reset_ctrls(self):
  232. self.effected_storage()
  233. self.applied_attr()
  234.  
  235.  
  236. for x in effectedDelivery:
  237. for y in confirmedKeys:
  238. #print y
  239. if y[1] == 's':
  240. pm.setAttr(x + y, 1)
  241. else:
  242. pm.setAttr(x + y, 0)
  243.  
  244.  
  245. def key_op(self):
  246. self.effected_storage()
  247. self.applied_attr()
  248. #print confirmedKeys
  249.  
  250. keyAttr = ".tx"
  251. for x in effectedDelivery:
  252. for y in confirmedKeys:
  253. targetedKey = '{0}{1}' . format(x, y)
  254. #print targetedKey
  255. pm.setKeyframe([str(targetedKey)])
  256. print __name__
  257. if __name__ == "animToolset":
  258.  
  259. try:
  260. open_animTool.close() # pylint: disable=E0601
  261. open_animTool.deleteLater()
  262. except:
  263. pass
  264.  
  265. open_animTool = OpenAnimTool()
  266. open_animTool.show()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement