def __init__(self, parent=None): if uiTool.windowExists(parent, 'AnimFileReader'): return #--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+ super(AnimSceneReaderUI, self).__init__(parent) self.setupUi(self) #-+ icon = QtGui.QIcon() icon.addPixmap(QtGui.QPixmap(os.path.join(scriptTool.getScriptPath(), 'icons', 'map_pin.png'))) self.btn_SelectPath.setIcon(icon) icon = QtGui.QIcon() icon.addPixmap(QtGui.QPixmap(os.path.join(scriptTool.getScriptPath(), 'icons', 'fork.png'))) self.btn_open.setIcon(icon) icon = QtGui.QIcon() icon.addPixmap(QtGui.QPixmap(os.path.join(scriptTool.getScriptPath(), 'icons', 'cloud_upload.png'))) self.btn_saveas.setIcon(icon) icon = QtGui.QIcon() icon.addPixmap(QtGui.QPixmap(os.path.join(scriptTool.getScriptPath(), 'icons', 'blank_folder.png'))) self.btn_OpenFolder.setIcon(icon) icon = QtGui.QIcon() icon.addPixmap(QtGui.QPixmap(os.path.join(scriptTool.getScriptPath(), 'icons', 'light_on.png'))) self.btn_light.setIcon(icon) #-+ self.show()
def __init__(self, parent=None): if uiTool.windowExists(parent, 'ProjectWindow'): return super(ProjectUI, self).__init__(parent) self.setupUi(self) self.show() #- project_icon = QtGui.QIcon(os.path.join(scriptTool.getScriptPath(), 'icons', 'map_pin.png')) self.btn_getProject.setIcon(project_icon) window_icon = QtGui.QIcon(os.path.join(scriptTool.getScriptPath(), 'icons', 'windowIcon.png')) self.setWindowIcon(window_icon) #- self.tableModel = TableModel() self.tableView.setModel(self.tableModel) #- self.delegate = Delegate(self) self.tableView.setItemDelegateForColumn(1, self.delegate) #- self.tableView.verticalHeader().setVisible(False) self.tableView.horizontalHeader().setClickable(False) self.tableView.horizontalHeader().setMovable(False) self.tableView.horizontalHeader().setResizeMode(QtGui.QHeaderView.Fixed) #- self.resizeEvent(QtGui.QResizeEvent(QtCore.QSize(), QtCore.QSize())) #- self.getProjectPath()
def __init__(self, parent=uiTool.getMayaWindow()): if uiTool.windowExists(parent, 'TransWeightsUI'): return #--------------------------------------------------------------------------------------------------- super(TransWeightsUI, self).__init__(parent) self.setupUi(self) self.btn_LoadSkin.setIcon( QtGui.QIcon( os.path.join(scriptTool.getScriptPath(), 'icons', 'load.png'))) self.btn_LoadJoint.setIcon( QtGui.QIcon( os.path.join(scriptTool.getScriptPath(), 'icons', 'load.png'))) self.btn_Export.setIcon( QtGui.QIcon( os.path.join(scriptTool.getScriptPath(), 'icons', 'export.png'))) self.btn_Import.setIcon( QtGui.QIcon( os.path.join(scriptTool.getScriptPath(), 'icons', 'import.png'))) self.show() #--------------------------------------------------------------------------------------------------- self.__data = []
def on_actionConnectHairSystem_triggered(self, clicked=None): if clicked==None:return HairSystem = [] for checkBox in self.HairSystemList.children(): if checkBox.isChecked(): HairSystem.append(str(checkBox.text())) if len(HairSystem) == 0:return ControlFile = os.path.join(scriptTool.getScriptPath(), 'jiesuankaiguan.ma') mc.file(ControlFile, i=True) #---------------------------- HairControlG = mc.ls(assemblies=True)[-1] HairControl = [x for x in mc.listRelatives(HairControlG, ad=True, path=True) if x.endswith('ctrl')][0] attractionScale = [x for x in mc.listRelatives(HairControlG, ad=True, path=True) if x.endswith('attractionScale')][0] mc.connectAttr('%s.%s'%(HairSystem[0], 'message'), '%s.%s'%(attractionScale, 'hairSystem'), f=True) for i, sysNode in enumerate(HairSystem): JointA = mc.connectionInfo('%s.%s'%(sysNode, 'iterations'), sfd=True) JointA = JointA.split('.')[0] mc.connectAttr('%s.%s'%(HairControl, 'chainStartEnveloppe'), '%s.%s'%(JointA, 'chainStartEnveloppe'), f=True) mc.connectAttr('%s.%s'%(HairControl, 'chainStartFrame'), '%s.%s'%(sysNode, 'startFrame'), f=True) mc.connectAttr('%s.%s'%(HairControl, 'chainStiffness'), '%s.%s'%(sysNode, 'stiffness'), f=True) mc.connectAttr('%s.%s'%(HairControl, 'chainDamping'), '%s.%s'%(sysNode, 'damp'), f=True) mc.connectAttr('%s.%s'%(HairControl, 'chainGravity'), '%s.%s'%(sysNode, 'gravity'), f=True) mc.connectAttr('%s.%s'%(HairControl, 'chainCollide'), '%s.%s'%(sysNode, 'collide'), f=True) mc.connectAttr('%s.%s'%(HairControl, 'StarCurveAttract'), '%s.%s'%(sysNode, 'startCurveAttract'), f=True) if i > 0: mc.connectAttr('%s.%s'%(HairSystem[0], 'attractionScale[0]'), '%s.%s'%(sysNode, 'attractionScale[0]')) mc.connectAttr('%s.%s'%(HairSystem[0], 'attractionScale[1]'), '%s.%s'%(sysNode, 'attractionScale[1]')) if mc.objExists('hairExp'):return mel.eval('source "%s"'%os.path.join(scriptTool.getScriptPath(), 'makeScriptNode.mel').replace('\\', '/')) mc.setAttr('hairExp.scriptType', 1)
def __init__(self, parent=uiTool.getMayaWindow()): if uiTool.windowExists(parent, "TransWeightsUI"): return # --------------------------------------------------------------------------------------------------- super(TransWeightsUI, self).__init__(parent) self.setupUi(self) self.btn_LoadSkin.setIcon(QtGui.QIcon(os.path.join(scriptTool.getScriptPath(), "icons", "load.png"))) self.btn_LoadJoint.setIcon(QtGui.QIcon(os.path.join(scriptTool.getScriptPath(), "icons", "load.png"))) self.btn_Export.setIcon(QtGui.QIcon(os.path.join(scriptTool.getScriptPath(), "icons", "export.png"))) self.btn_Import.setIcon(QtGui.QIcon(os.path.join(scriptTool.getScriptPath(), "icons", "import.png"))) self.show() # --------------------------------------------------------------------------------------------------- self.__data = []
def on_btn_makeDriver_clicked(self, args=None): if args==None:return nameData = ioTool.readData(os.path.join(scriptTool.getScriptPath(), 'Data.json')) for n in nameData: if not mc.objExists(n):continue if mc.objExists('%s_RIF_G'%n.rsplit('_', 2)[0]):continue makeRotateInfoForOneJoint(n) self.on_btn_refresh_clicked(True)
def on_btn_makeDriver_clicked(self, args=None): if args == None: return nameData = ioTool.readData( os.path.join(scriptTool.getScriptPath(), 'Data.json')) for n in nameData: if not mc.objExists(n): continue if mc.objExists('%s_RIF_G' % n.rsplit('_', 2)[0]): continue makeRotateInfoForOneJoint(n) self.on_btn_refresh_clicked(True)
def on_actionCreateDynControl_triggered(self, clicked=None): if clicked == None: return SelOBJ = mc.ls(sl=True, type='joint') if len(SelOBJ) != 2: self.refreshHairSystems() return melScripts = os.path.join(scriptTool.getScriptPath(), 'makeIkHair.mel') melScripts = melScripts.replace('\\', '/') mel.eval('source "%s"' % melScripts) self.refreshHairSystems()
def on_actionCreateDynControl_triggered(self, clicked=None): if clicked==None:return SelOBJ = mc.ls(sl=True, type='joint') if len(SelOBJ) != 2: self.refreshHairSystems() return melScripts = os.path.join(scriptTool.getScriptPath(), 'makeIkHair.mel') melScripts = melScripts.replace('\\', '/') mel.eval('source "%s"'%melScripts) self.refreshHairSystems()
def __init__(self, parent=uiTool.getMayaWindow()): if uiTool.windowExists(parent, 'ControlSelecterWindow'): return super(ControlSelecterWnd, self).__init__(parent) self.setupUi(self) self.show() #- connect Signal for btn in self.groupBox.findChildren(QtGui.QPushButton): btn.clicked.connect(self.SelectControl) for btn in self.groupBox_2.findChildren(QtGui.QPushButton): btn.clicked.connect(self.SelectControl) #- refresh characters self.on_btn_loadCharacters_clicked(True) #- read control name Data f = open(os.path.join(scriptTool.getScriptPath(), 'ControlNameData.json'), 'r') self.CONTROL_NAME_DATA = json.load(f) f.close()
def __init__(self, parent): if uiTool.windowExists(parent, 'CopyBlendShapeWeightUI'): return super(CopyBlendShapeWeightsUI, self).__init__(parent) self.setupUi(self) self.show() #------------------ iconPath = os.path.join(scriptTool.getScriptPath(), 'icons') icon = QtGui.QIcon() icon.addPixmap(QtGui.QPixmap(os.path.join(iconPath, 'refresh.png'))) self.btn_refresh.setIcon(icon) icon = QtGui.QIcon() icon.addPixmap(QtGui.QPixmap(os.path.join(iconPath, 'arrow.png'))) self.btn_Copy.setIcon(icon) #-+-+-+-+-+-+-+-+-+ self.__srcModel = ListModel() self.__dstModel = ListModel() self.listView_Src.setModel(self.__srcModel) self.listView_Dst.setModel(self.__dstModel)
def __init__(self, parent=uiTool.getMayaWindow()): if uiTool.windowExists(parent, 'DDrigTools'): return super(PlugTool, self).__init__(parent) self.setupUi(self) #=============================================== self.tabWidget.setCurrentIndex(0) self.toolBox.setCurrentIndex(1) #============================================================================================================ self.setWindowIcon( QtGui.QIcon( os.path.join(scriptTool.getScriptPath(), 'icons', 'windowIcon.png'))) self.btn_TitleA.setIcon( QtGui.QIcon( os.path.join(scriptTool.getScriptPath(), 'icons', 'pencil.png'))) self.btn_TitleB.setIcon( QtGui.QIcon( os.path.join(scriptTool.getScriptPath(), 'icons', 'pencil.png'))) self.btn_TitleC.setIcon( QtGui.QIcon( os.path.join(scriptTool.getScriptPath(), 'icons', 'pencil.png'))) self.btn_GrabWindow.setIcon( QtGui.QIcon( os.path.join(scriptTool.getScriptPath(), 'icons', 'scissors.png'))) self.btn_CleanWindows.setIcon( QtGui.QIcon( os.path.join(scriptTool.getScriptPath(), 'icons', 'brush.png'))) self.btn_Help.setIcon( QtGui.QIcon( os.path.join(scriptTool.getScriptPath(), 'icons', 'help.png'))) #============================================================================================================ self.show()
def __init__(self, parent=uiTool.getMayaWindow()): if uiTool.windowExists(parent, 'DDrigTools'): return super(PlugTool, self).__init__(parent) self.setupUi(self) #=============================================== self.tabWidget.setCurrentIndex(0) self.toolBox.setCurrentIndex(1) #============================================================================================================ self.setWindowIcon(QtGui.QIcon(os.path.join(scriptTool.getScriptPath(), 'icons', 'windowIcon.png'))) self.btn_TitleA.setIcon(QtGui.QIcon(os.path.join(scriptTool.getScriptPath(), 'icons', 'pencil.png'))) self.btn_TitleB.setIcon(QtGui.QIcon(os.path.join(scriptTool.getScriptPath(), 'icons', 'pencil.png'))) self.btn_TitleC.setIcon(QtGui.QIcon(os.path.join(scriptTool.getScriptPath(), 'icons', 'pencil.png'))) self.btn_GrabWindow.setIcon(QtGui.QIcon(os.path.join(scriptTool.getScriptPath(), 'icons', 'scissors.png'))) self.btn_CleanWindows.setIcon(QtGui.QIcon(os.path.join(scriptTool.getScriptPath(), 'icons', 'brush.png'))) self.btn_Help.setIcon(QtGui.QIcon(os.path.join(scriptTool.getScriptPath(), 'icons', 'help.png'))) #============================================================================================================ self.show()
def __init__(self, parent=uiTool.getMayaWindow()): if uiTool.windowExists(parent, 'ControlSelecterWindow'): return super(ControlSelecterWnd, self).__init__(parent) self.setupUi(self) self.show() #- connect Signal for btn in self.groupBox.findChildren(QtGui.QPushButton): btn.clicked.connect(self.SelectControl) for btn in self.groupBox_2.findChildren(QtGui.QPushButton): btn.clicked.connect(self.SelectControl) #- refresh characters self.on_btn_loadCharacters_clicked(True) #- read control name Data f = open( os.path.join(scriptTool.getScriptPath(), 'ControlNameData.json'), 'r') self.CONTROL_NAME_DATA = json.load(f) f.close()
import os from PyQt4 import QtGui, uic import maya.cmds as mc import maya.mel as mel from FoleyUtils import scriptTool, uiTool #--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+ UIfile = os.path.join(scriptTool.getScriptPath(), 'DynControlUI.ui') UIClass, BaseClass = uic.loadUiType(UIfile) class DynControl(UIClass, BaseClass): def __init__(self, parent=None): if uiTool.windowExists(parent, 'dynControlWindow'): return super(DynControl, self).__init__(parent) self.setupUi(self) self.show() def refreshHairSystems(self): for checkBox in self.HairSystemList.children(): checkBox.deleteLater() HairSysTem = mc.listRelatives(mc.ls(type='hairSystem'), p=True) HairSysTem = {}.fromkeys(HairSysTem, None).keys() HairSysTem.sort() for i, hairsys in enumerate(HairSysTem): CBX = QtGui.QCheckBox(self.HairSystemList)
if role == QtCore.Qt.DisplayRole: return self.__modelData[index.row()] def clear(self): self.beginRemoveRows(QtCore.QModelIndex(), 0, self.rowCount()) del self.__modelData[:] self.endRemoveRows() def change(self, L=[]): self.beginInsertRows(QtCore.QModelIndex(), 0, self.rowCount()) self.__modelData = L[:] self.endInsertRows() windowClass, baseClass = uiTool.loadUi( os.path.join(scriptTool.getScriptPath(), 'CopyBlendShapeWeights.ui')) class CopyBlendShapeWeightsUI(windowClass, baseClass): def __init__(self, parent): if uiTool.windowExists(parent, 'CopyBlendShapeWeightUI'): return super(CopyBlendShapeWeightsUI, self).__init__(parent) self.setupUi(self) self.show() #------------------ iconPath = os.path.join(scriptTool.getScriptPath(), 'icons') icon = QtGui.QIcon() icon.addPixmap(QtGui.QPixmap(os.path.join(iconPath, 'refresh.png'))) self.btn_refresh.setIcon(icon)
""" self.beginRemoveRows(QtCore.QModelIndex(), 0, self.rowCount()) del self.__baseList[:] del self.__fileList[:] self.endRemoveRows() def getValue(self, row): return self.__baseList[row] def result(self): return self.__baseList, self.__fileList # ------------------------------------------------------------------------------------- windowClass, baseClass = uiTool.loadUi(os.path.join(scriptTool.getScriptPath(), "nameToolUI.ui")) class NameUI(windowClass, baseClass): """ user control pannel... """ def __init__(self, parent=None): if uiTool.windowExists(parent, "foleyNameToolWindow"): return super(NameUI, self).__init__(parent) self.setupUi(self) # ---------------------------------------------------- # - hide control
#======================================== # author: changlong.zang # mail: [email protected] # date: Thu, 16 Oct 2014 10:31:59 #======================================== import os.path from FoleyUtils import scriptTool, uiTool import maya.cmds as mc #--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+ baseClass, windowClass = uiTool.loadUi(os.path.join(scriptTool.getScriptPath(), 'clusterWeightsUI.ui')) class ClusterWeightsUI(baseClass, windowClass): def __init__(self, parent=None): if uiTool.windowExists(parent, 'MirrorClusterWindow'): return super(ClusterWeightsUI, self).__init__(parent) self.setupUi(self) self.show() def on_btn_Geometry_clicked(self, args=None): if args == None:return sel = mc.ls(sl=True) if len(sel) < 1:return if not mc.listRelatives(sel[0], s=True, type='mesh'):return self.let_Geometry.setText(sel[0]) def on_btn_Source_clicked(self, args=None): if args == None:return sel = mc.ls(sl=True) if len(sel) < 1:return
import os, json import maya.cmds as mc from FoleyUtils import scriptTool, uiTool UIwndClass, baseClass = uiTool.loadUi( os.path.join(scriptTool.getScriptPath(), 'SetDrivenKeysforToes.ui')) class SetDrivenKeyforToes(UIwndClass, baseClass): def __init__(self, parent=None): if uiTool.windowExists(parent, 'setDrivenKeyForToesWindow'): return super(SetDrivenKeyforToes, self).__init__(parent) self.setupUi(self) self.show() #------------- def setRange(self, Value, OldMin, OldMax, minV, maxV): OutValue = minV + (((Value - OldMin) / (OldMax - OldMin)) * (maxV - minV)) return OutValue def on_actionSetkeys_triggered(self, clicked=None): if clicked == None: return if not os.path.exists('D:/toe.json'): return # open File f = open('D:/toe.json', 'r') ControlNameData = json.load(f) f.close() # get Axis
#================================= # author: changlong.zang # date: 2014-05-05 #================================= import os, re import maya.cmds as mc from FoleyUtils import uiTool, scriptTool #--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+ WindowClass, BaseClass = uiTool.loadUi(os.path.join(scriptTool.getScriptPath(), 'buildTargents.ui')) class BuildTargents(WindowClass, BaseClass): def __init__(self, parent=None): if uiTool.windowExists(parent, 'buildTargentsWindow'): return super(BuildTargents, self).__init__(parent) self.setupUi(self) self.show() def on_actionLoad_Object_triggered(self, args=None): if args==None:return selOBJ = mc.ls(sl=True) if selOBJ == []:return self.LET_Geometry.setText(selOBJ[0]) blendShapes = mc.ls(mc.listHistory(selOBJ[0]), type='blendShape') if blendShapes == []: self.LET_BlendShape.setText('') return
import os, inspect, re, json from PyQt4 import QtCore, uic import maya.cmds as mc from FoleyUtils import scriptTool, uiTool #--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+ UIfile = os.path.join(scriptTool.getScriptPath(), 'FixAnim.ui') UIClass, BaseClass = uic.loadUiType(UIfile) class FixAnim(UIClass, BaseClass): def __init__(self, parent=None): if uiTool.windowExists(parent, 'FixAnimationWindow'): return super(FixAnim, self).__init__(parent) self.setupUi(self) self.show() #---------------------- self.referenceFiles = {} self.sourceFiles = [] def on_actionRefreshScene_triggered(self, args=None): if args == None: return self.referenceFiles.clear() self.ReferenceFilescomboBox.clear() referenceFiles = mc.file(q=True, r=True) for rFile in referenceFiles: baseBame = os.path.basename(rFile) filePath = os.path.dirname(rFile)
import os, re, string from PyQt4 import QtCore, QtGui, uic import maya.cmds as mc from FoleyUtils import scriptTool, uiTool #-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*- UIwndClass, baseClass = uic.loadUiType('%s/HeadStreatchTool.ui'%scriptTool.getScriptPath()) class HeadStreatchUI(UIwndClass, baseClass): def __init__(self, parent=None): if uiTool.windowExists(parent, 'headStreatchWindow'): return super(HeadStreatchUI, self).__init__(parent) self.setupUi(self) self.show() #------------- def on_actionBuildGuide_triggered(self, clicked=None): if clicked==None:return self.guideFile = os.path.join(getScriptPath(), 'HeadStreatch_guide.ma') self.guideFile = self.guideFile.replace('\\', '/') if self.guideFile in mc.file(q=True, r=True):return mc.file(self.guideFile, r=True, namespace='guide', loadReferenceDepth='all', gl=True) def on_actionBuildRig_triggered(self, clicked=None): if clicked==None:return makeHeadStreatch(jointCount=self.jointCountsSpinBox.value())
#================================= # author: changlong.zang # date: 2014-06-23 #================================= import os.path import maya.cmds as mc from PyQt4 import QtGui from FoleyUtils import scriptTool, uiTool #--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+ windowClass, baseClass = uiTool.loadUi(os.path.join(scriptTool.getScriptPath(), 'addGroups.ui')) class AddGroup(windowClass, baseClass): ''' user control pannel... ''' def __init__(self, parent=None): if uiTool.windowExists(parent, 'addGroupWindow'): return super(AddGroup, self).__init__(parent) self.setupUi(self) self.show() def on_btn_append_clicked(self, args=None): if args == None:return lineEdit = QtGui.QLineEdit(self.scrollArea) font = QtGui.QFont() font.setPointSize(10) lineEdit.setFont(font) lineEdit.setMinimumHeight(25) self.verticalLayout_4.insertWidget(self.verticalLayout_4.count()-1, lineEdit)
#======================================== # author: changlong.zang # mail: [email protected] # date: Mon, 22 Sep 2014 10:35:13 #======================================== import os.path import maya.cmds as mc import maya.mel as mel from FoleyUtils import scriptTool, uiTool #--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+ bodywndClass, bodybaseClass = uiTool.loadUi( os.path.join(scriptTool.getScriptPath(), 'transWeights.ui')) class transWeightsUI(bodywndClass, bodybaseClass): def __init__(self, parent=None): if uiTool.windowExists(parent, 'transSkeletonToClusters'): return super(transWeightsUI, self).__init__(parent) self.setupUi(self) self.show() def on_btn_LoadGeometry_clicked(self, clicked=None): if clicked == None: return sel = mc.ls(sl=True) if len(sel) < 1: return self.LET_Geometry.setText(sel[0])
import sys, os, inspect, cmds import maya.cmds as mc from PyQt4 import QtGui, QtCore, uic from FoleyUtils import scriptTool, uiTool reload(cmds) ScriptPath = scriptTool.getScriptPath() if ScriptPath not in sys.path: sys.path.append(ScriptPath) waningWindowClass, warningbaseClass = uic.loadUiType(os.path.join(ScriptPath, 'warningDialog.ui')) class WarningDialog(waningWindowClass, warningbaseClass): def __init__(self, waningText, parent=None): super(WarningDialog, self).__init__(parent) self.setupUi(self) self.warningLabel.setText(waningText) self.exec_() class ComponentFrame(QtGui.QFrame): def __init__(self, parent=None): super(ComponentFrame, self).__init__(parent) self.buildUI() def buildUI(self): self.setGeometry(QtCore.QRect(170, 240, 323, 40)) self.setFrameShape(QtGui.QFrame.NoFrame) self.setFrameShadow(QtGui.QFrame.Raised) Layout_1 = QtGui.QHBoxLayout(self)
import os.path, re import maya.cmds as mc from FoleyUtils import scriptTool, uiTool, mayaTool windowClass, baseClass = uiTool.loadUi( os.path.join(scriptTool.getScriptPath(), 'mirrorCtlShp.ui')) class MirrorControlShp(windowClass, baseClass): def __init__(self, parent=None): if uiTool.windowExists(parent, 'mirrorControlShapeUI'): return super(MirrorControlShp, self).__init__(parent) self.setupUi(self) self.show() def on_btn_mirror_clicked(self, click=None): if click == None: return controlType = str(self.fld_controlType.text()) flipAxis = 'X' if self.rdn_filpX.isChecked(): flipAxis = 'X' elif self.rdn_filpY.isChecked(): flipAxis = 'Y' else: flipAxis = 'Z' if self.rdn_lefttoright.isChecked(): mirrorControlShape(controlType, 'L', 'R', flipAxis) else: mirrorControlShape(controlType, 'R', 'L', flipAxis)
def insertRow(self, row, value, index=QtCore.QModelIndex()): self.beginInsertRows(index, row, row) self.__attributes.insert(row, value) self.endInsertRows() def clear(self): self.beginRemoveColumns(QtCore.QModelIndex(), 0, self.rowCount()) del self.__attributes[:] self.endRemoveRows() shapeBaseClass, shapeWindowClass = uiTool.loadUi(os.path.join(scriptTool.getScriptPath(), 'ShapeBuilderUI.ui')) class ShapeBuilderUI(shapeBaseClass, shapeWindowClass): def __init__(self, parent=None): if uiTool.windowExists(parent, 'ShapeBuilderWindow'): return super(ShapeBuilderUI, self).__init__(parent) self.setupUi(self) #--------------------------------------------------- self.__AttributeModel = BlendShapeModel() self.listView_attributeList.setModel(self.__AttributeModel) #--------------------------------------------------- self.widget_Bs.setEnabled(True) self.widget_BsBs.setEnabled(False) self.widget_SkinBs.setEnabled(False)
return if not mc.attributeQuery(attribute, n=obj, ex=True): print 'Error -> attributes %s was not Exists...'%arg return mc.delete(mc.keyframe(dsn, q=True, n=True)) driverValues = mc.keyframe(src, q=True, fc=True) drivenValues = mc.keyframe(src, q=True, vc=True) for drv, dnv in zip(driverValues, drivenValues): mc.setDrivenKeyframe(dsn, cd=dsr, dv=drv, v=dnv * mirror) windowClass, baseClass = uiTool.loadUi(os.path.join(scriptTool.getScriptPath(), 'mirrorDrivenKeys.ui')) class MirrorDrivenKeysUI(windowClass, baseClass): def __init__(self, parent=None): if uiTool.windowExists(parent, 'mirrorDrivenkeysWindow'): return super(MirrorDrivenKeysUI, self).__init__(parent) self.setupUi(self) self.show() #---------------------------------------------------------------- self.__SrcOBJ = None self.__DstOBJ = None self.__model_SrcDriver = ListModel() self.__model_SrcDriven = ListModel()
def on_btn_Help_clicked(self, args=None): if args == None: return path = os.path.join(scriptTool.getScriptPath(), 'ToolIndex', 'readme.docx') path = path.replace('/', '\\') os.system('explorer.exe %s' % path)
import os.path import maya.cmds as mc from FoleyUtils import scriptTool, uiTool UIwndClass, baseClass = uiTool.loadUi( os.path.join(scriptTool.getScriptPath(), 'ChangeOBJpivot.ui')) class ChangeOBJpivot(UIwndClass, baseClass): def __init__(self, parent=None): if uiTool.windowExists(parent, 'changeObjectPivotWindow'): return super(ChangeOBJpivot, self).__init__(parent) self.setupUi(self) self.show() #------------- def on_actionLoadMoveOBJ_triggered(self, args=None): if args == None: return SelectOBJ = mc.ls(sl=True) if len(SelectOBJ) == 0: return if SelectOBJ[0] == str(self.KeepedOBJLineEdit.text()): return self.MovedOBJLineEdit.setText(SelectOBJ[0]) def on_actionLoadKeepOBJ_triggered(self, args=None): if args == None: return SelectOBJ = mc.ls(sl=True) if len(SelectOBJ) == 0: return if SelectOBJ[0] == str(self.MovedOBJLineEdit.text()): return
influcences = mc.skinCluster(skincluster, q=True, inf=True) vtxCount = mc.polyEvaluate(geometry, v=True) index = influcences.index(Joint) weights = [] for i in range(vtxCount): weights.append(mc.skinPercent(skincluster, "%s.vtx[%d]" % (geometry, i), q=True, v=True)[index]) return weights def setSkinCluster(geometry, Joint, weights): skincluster = mayaTool.findSkinCluster(geometry) for i, w in enumerate(weights): mc.skinPercent(skincluster, "%s.vtx[%d]" % (geometry, i), tv=(Joint, w)) windowClass, baseClass = uiTool.loadUi(os.path.join(scriptTool.getScriptPath(), "TransWeights.ui")) class TransWeightsUI(windowClass, baseClass): def __init__(self, parent=uiTool.getMayaWindow()): if uiTool.windowExists(parent, "TransWeightsUI"): return # --------------------------------------------------------------------------------------------------- super(TransWeightsUI, self).__init__(parent) self.setupUi(self) self.btn_LoadSkin.setIcon(QtGui.QIcon(os.path.join(scriptTool.getScriptPath(), "icons", "load.png"))) self.btn_LoadJoint.setIcon(QtGui.QIcon(os.path.join(scriptTool.getScriptPath(), "icons", "load.png"))) self.btn_Export.setIcon(QtGui.QIcon(os.path.join(scriptTool.getScriptPath(), "icons", "export.png"))) self.btn_Import.setIcon(QtGui.QIcon(os.path.join(scriptTool.getScriptPath(), "icons", "import.png")))
self.beginRemoveRows(QtCore.QModelIndex(), 0, self.rowCount()) del self.__baseList[:] del self.__fileList[:] self.endRemoveRows() def getValue(self, row): return self.__baseList[row] def result(self): return self.__baseList, self.__fileList #------------------------------------------------------------------------------------- windowClass, baseClass = uiTool.loadUi( os.path.join(scriptTool.getScriptPath(), 'nameToolUI.ui')) class NameUI(windowClass, baseClass): ''' user control pannel... ''' def __init__(self, parent=None): if uiTool.windowExists(parent, 'foleyNameToolWindow'): return super(NameUI, self).__init__(parent) self.setupUi(self) #---------------------------------------------------- #- hide control self.widget_windows.setVisible(False)
def data(self, index, role): if role == QtCore.Qt.DisplayRole: return self.__modelData[index.row()] def clear(self): self.beginRemoveRows(QtCore.QModelIndex(), 0, self.rowCount()) del self.__modelData[:] self.endRemoveRows() def change(self, L=[]): self.beginInsertRows(QtCore.QModelIndex(), 0, self.rowCount()) self.__modelData = L[:] self.endInsertRows() windowClass, baseClass = uiTool.loadUi(os.path.join(scriptTool.getScriptPath(), "replaceUV.ui")) class ReplaceUV(windowClass, baseClass): def __init__(self, parent=None): if uiTool.windowExists(parent, "replaceUVwindow"): return super(ReplaceUV, self).__init__(parent) self.setupUi(self) # ---------------- self.__listModel = ListModel() self.listView.setModel(self.__listModel) # ---------------- self.show()
import os, json import maya.cmds as mc from FoleyUtils import scriptTool, uiTool UIwndClass, baseClass = uiTool.loadUi(os.path.join(scriptTool.getScriptPath(), 'SetDrivenKeysforToes.ui')) class SetDrivenKeyforToes(UIwndClass, baseClass): def __init__(self, parent=None): if uiTool.windowExists(parent, 'setDrivenKeyForToesWindow'): return super(SetDrivenKeyforToes, self).__init__(parent) self.setupUi(self) self.show() #------------- def setRange(self, Value, OldMin, OldMax, minV, maxV): OutValue = minV + (((Value-OldMin)/(OldMax-OldMin)) * (maxV-minV)) return OutValue def on_actionSetkeys_triggered(self, clicked=None): if clicked==None:return if not os.path.exists('D:/toe.json'):return # open File f = open('D:/toe.json', 'r') ControlNameData = json.load(f) f.close() # get Axis
def on_actionConnectHairSystem_triggered(self, clicked=None): if clicked == None: return HairSystem = [] for checkBox in self.HairSystemList.children(): if checkBox.isChecked(): HairSystem.append(str(checkBox.text())) if len(HairSystem) == 0: return ControlFile = os.path.join(scriptTool.getScriptPath(), 'jiesuankaiguan.ma') mc.file(ControlFile, i=True) #---------------------------- HairControlG = mc.ls(assemblies=True)[-1] HairControl = [ x for x in mc.listRelatives(HairControlG, ad=True, path=True) if x.endswith('ctrl') ][0] attractionScale = [ x for x in mc.listRelatives(HairControlG, ad=True, path=True) if x.endswith('attractionScale') ][0] mc.connectAttr('%s.%s' % (HairSystem[0], 'message'), '%s.%s' % (attractionScale, 'hairSystem'), f=True) for i, sysNode in enumerate(HairSystem): JointA = mc.connectionInfo('%s.%s' % (sysNode, 'iterations'), sfd=True) JointA = JointA.split('.')[0] mc.connectAttr('%s.%s' % (HairControl, 'chainStartEnveloppe'), '%s.%s' % (JointA, 'chainStartEnveloppe'), f=True) mc.connectAttr('%s.%s' % (HairControl, 'chainStartFrame'), '%s.%s' % (sysNode, 'startFrame'), f=True) mc.connectAttr('%s.%s' % (HairControl, 'chainStiffness'), '%s.%s' % (sysNode, 'stiffness'), f=True) mc.connectAttr('%s.%s' % (HairControl, 'chainDamping'), '%s.%s' % (sysNode, 'damp'), f=True) mc.connectAttr('%s.%s' % (HairControl, 'chainGravity'), '%s.%s' % (sysNode, 'gravity'), f=True) mc.connectAttr('%s.%s' % (HairControl, 'chainCollide'), '%s.%s' % (sysNode, 'collide'), f=True) mc.connectAttr('%s.%s' % (HairControl, 'StarCurveAttract'), '%s.%s' % (sysNode, 'startCurveAttract'), f=True) if i > 0: mc.connectAttr('%s.%s' % (HairSystem[0], 'attractionScale[0]'), '%s.%s' % (sysNode, 'attractionScale[0]')) mc.connectAttr('%s.%s' % (HairSystem[0], 'attractionScale[1]'), '%s.%s' % (sysNode, 'attractionScale[1]')) if mc.objExists('hairExp'): return mel.eval('source "%s"' % os.path.join(scriptTool.getScriptPath(), 'makeScriptNode.mel').replace('\\', '/')) mc.setAttr('hairExp.scriptType', 1)
import os.path, re import maya.cmds as mc from FoleyUtils import scriptTool, uiTool, mayaTool windowClass, baseClass = uiTool.loadUi(os.path.join(scriptTool.getScriptPath(), 'mirrorCtlShp.ui')) class MirrorControlShp(windowClass, baseClass): def __init__(self, parent=None): if uiTool.windowExists(parent, 'mirrorControlShapeUI'):return super(MirrorControlShp, self).__init__(parent) self.setupUi(self) self.show() def on_btn_mirror_clicked(self, click=None): if click == None:return controlType = str(self.fld_controlType.text()) flipAxis = 'X' if self.rdn_filpX.isChecked(): flipAxis = 'X' elif self.rdn_filpY.isChecked(): flipAxis = 'Y' else: flipAxis = 'Z' if self.rdn_lefttoright.isChecked(): mirrorControlShape(controlType, 'L', 'R', flipAxis) else: mirrorControlShape(controlType, 'R', 'L', flipAxis)
#============================================= # author: changlong.zang # mail: [email protected] # date: Wed, 25 Jun 2014 14:43:02 #============================================= import os from PyQt4 import QtGui from FoleyUtils import uiTool, scriptTool #--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+ Uiwnd, UiClass = uiTool.loadUi( os.path.join(scriptTool.getScriptPath(), 'RootUI.ui')) class PlugTool(Uiwnd, UiClass): def __init__(self, parent=uiTool.getMayaWindow()): if uiTool.windowExists(parent, 'DDrigTools'): return super(PlugTool, self).__init__(parent) self.setupUi(self) #=============================================== self.tabWidget.setCurrentIndex(0) self.toolBox.setCurrentIndex(1) #============================================================================================================ self.setWindowIcon( QtGui.QIcon( os.path.join(scriptTool.getScriptPath(), 'icons', 'windowIcon.png'))) self.btn_TitleA.setIcon( QtGui.QIcon(
import os, re, string from PyQt4 import QtCore, QtGui, uic import maya.cmds as mc from FoleyUtils import scriptTool, uiTool #-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*- UIwndClass, baseClass = uic.loadUiType('%s/HeadStreatchTool.ui' % scriptTool.getScriptPath()) class HeadStreatchUI(UIwndClass, baseClass): def __init__(self, parent=None): if uiTool.windowExists(parent, 'headStreatchWindow'): return super(HeadStreatchUI, self).__init__(parent) self.setupUi(self) self.show() #------------- def on_actionBuildGuide_triggered(self, clicked=None): if clicked == None: return self.guideFile = os.path.join(getScriptPath(), 'HeadStreatch_guide.ma') self.guideFile = self.guideFile.replace('\\', '/') if self.guideFile in mc.file(q=True, r=True): return mc.file(self.guideFile, r=True, namespace='guide', loadReferenceDepth='all', gl=True)
import os, inspect, re, json from PyQt4 import QtCore, uic import maya.cmds as mc from FoleyUtils import scriptTool, uiTool #--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+ UIfile = os.path.join(scriptTool.getScriptPath(), 'FixAnim.ui') UIClass, BaseClass = uic.loadUiType(UIfile) class FixAnim(UIClass, BaseClass): def __init__(self, parent=None): if uiTool.windowExists(parent, 'FixAnimationWindow'): return super(FixAnim, self).__init__(parent) self.setupUi(self) self.show() #---------------------- self.referenceFiles = {} self.sourceFiles = [] def on_actionRefreshScene_triggered(self, args=None): if args == None:return self.referenceFiles.clear() self.ReferenceFilescomboBox.clear() referenceFiles = mc.file(q=True, r=True) for rFile in referenceFiles: baseBame = os.path.basename(rFile) filePath = os.path.dirname(rFile) self.referenceFiles[baseBame] = filePath
import os.path import maya.cmds as mc from FoleyUtils import scriptTool, uiTool UIwndClass, baseClass = uiTool.loadUi(os.path.join(scriptTool.getScriptPath(), 'ChangeOBJpivot.ui')) class ChangeOBJpivot(UIwndClass, baseClass): def __init__(self, parent=None): if uiTool.windowExists(parent, 'changeObjectPivotWindow'): return super(ChangeOBJpivot, self).__init__(parent) self.setupUi(self) self.show() #------------- def on_actionLoadMoveOBJ_triggered(self, args=None): if args==None:return SelectOBJ = mc.ls(sl=True) if len(SelectOBJ) == 0:return if SelectOBJ[0] == str(self.KeepedOBJLineEdit.text()):return self.MovedOBJLineEdit.setText(SelectOBJ[0]) def on_actionLoadKeepOBJ_triggered(self, args=None): if args==None:return SelectOBJ = mc.ls(sl=True)
#================================= # author: changlong.zang # date: 2014-06-10 #================================= import os.path from FoleyUtils import scriptTool, uiTool import maya.cmds as mc #--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+ windowClass, baseClass = uiTool.loadUi(os.path.join(scriptTool.getScriptPath(), 'createControlSet.ui')) class CreateControlSetUI(windowClass, baseClass): def __init__(self, parent=None): if uiTool.windowExists(parent, 'makeControlSetUI'): return super(CreateControlSetUI, self).__init__(parent) self.setupUi(self) self.show() #============================================================================================= def __createSet(self, name): if not mc.objExists(name): mc.sets(n=name, em=True) if name != 'Allctrls': return if mc.objExists('body_Ctrls'): mc.sets('body_Ctrls', add=name) if mc.objExists('facial_Ctrls'): mc.sets('facial_Ctrls', add=name)
def on_btn_GrabWindow_clicked(self, args=None): if args == None: return path = os.path.join(scriptTool.getScriptPath(), 'Snapshot', 'SogouSnapShot.exe') path = path.replace('/', '\\') os.popen('explorer.exe %s' % path)
#================================= # author: changlong.zang # date: 2014-06-09 #================================= import os, sys, json, re from PyQt4 import QtCore, QtGui import maya.cmds as mc if '//bjserver2/Temp Documents/Foley/Tools' not in sys.path: sys.path.append('//bjserver2/Temp Documents/Foley/Tools') from FoleyUtils import scriptTool, uiTool, mayaTool #--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+ if scriptTool.getScriptPath() not in sys.path: sys.path.append(scriptTool.getScriptPath()) class ContextMenu(QtGui.QMenu): def __init__(self, Point, btn, parent=None): super(ContextMenu, self).__init__(parent) self.Button = btn action_addControl = self.addAction('Add Controls') self.addSeparator() action_removeControl = self.addAction('Remove Controls') action_addControl.triggered.connect(self.addControls) action_removeControl.triggered.connect(self.removeControls) self.move(Point)
def data(self, index, role=QtCore.Qt.DisplayRole): if role == QtCore.Qt.DisplayRole or role == QtCore.Qt.EditRole: return self.LIST_DATA[index.row()] def changeData(self, inputData): self.beginRemoveRows(QtCore.QModelIndex(), 0, self.rowCount()) del self.LIST_DATA[:] self.endRemoveRows() self.beginInsertRows(QtCore.QModelIndex(), 0, self.rowCount()) self.LIST_DATA = inputData self.endInsertRows() windowClass, baseClass = uiTool.loadUi(os.path.join(scriptTool.getScriptPath(), 'weightsTool.ui')) class WeightsTool(windowClass, baseClass): SOURCE_DEFORM_TYPE = 'cluster' TARGET_DEFORM_TYPE = 'cluster' def __init__(self, parent=None): super(WeightsTool, self).__init__(parent) self.setupUi(self) self.show() self.SOURCE_MODEL = ListModel() self.TARGET_MODEL = ListModel() self.VIW_Source.setModel(self.SOURCE_MODEL) self.VIW_Target.setModel(self.TARGET_MODEL)
def on_btn_EditData_clicked(self, args=None): if args==None:return filePath = os.path.join(scriptTool.getScriptPath(), 'Data.json') filePath = filePath.replace('/', '\\') os.system('explorer.exe %s'%filePath)
Jnt = mc.joint(p=(0, 0, 0)) Loc = mc.spaceLocator(p=(0, 0, 0))[0] uValue = 0.0 if not uValuezerotoone: uValue = i else: uValue = (float(i) - 0) / (float(JointCounts - 1) - 0) * (1.0 - 0.0) + 0.0 _Attach(UppathCus, Loc, uValue, None, uValuezerotoone) _Attach(basePathCus, Jnt, uValue, Loc, uValuezerotoone) UIwndClass, baseClass = uiTool.loadUi(os.path.join(scriptTool.getScriptPath(), 'makeAttachJoints.ui')) class makeAttachJoints(UIwndClass, baseClass): def __init__(self, parent=None): if uiTool.windowExists(parent, 'makeAttachJointsWindow'): return super(makeAttachJoints, self).__init__(parent) self.setupUi(self) self.show() #------------- def on_actionLoadBaseCurve_triggered(self, clicked=None): if clicked==None:return SelOBJ = mc.ls(sl=True) if len(SelOBJ) == 1:
import os.path from PyQt4 import QtGui import maya.cmds as mc from FoleyUtils import scriptTool, uiTool #--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+ UIwndClass, baseClass = uiTool.loadUi(os.path.join(scriptTool.getScriptPath(), 'mirrorSDK.ui')) class MirrorSetDrivenKey(UIwndClass, baseClass): def __init__(self, parent=None): if uiTool.windowExists(parent, 'mirrorSDKwindow'): return super(MirrorSetDrivenKey, self).__init__(parent) self.setupUi(self) self.show() #------------- self.sourceAtrLst = [] self.targentAtrLst = [] def on_btn_deleteItem_clicked(self, args=None): if args==None:return for item in self.SourceAttributeList.selectedItems(): for x in self.sourceAtrLst: if x[1] == item.text(): self.sourceAtrLst.remove(x) break strings = self.SearchFLD.text()
#======================================== # author: changlong.zang # mail: [email protected] # date: Fri, 24 Oct 2014 10:45:39 #======================================== import string, re, os.path import maya.cmds as mc from FoleyUtils import scriptTool, uiTool #--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+ UIwndClass, baseClass = uiTool.loadUi(os.path.join(scriptTool.getScriptPath(), 'inspectScene.ui')) class InspectSceneUI(UIwndClass, baseClass): def __init__(self, parent=None): if uiTool.windowExists(parent, 'inspectSceneWindow'): return super(InspectSceneUI, self).__init__(parent) self.setupUi(self) self.show() #------------- def on_actionInspectScene_triggered(self, *agrs): if not agrs:return self.DuplacatesNamesOBJ = InspectScene.inspectDuplicatesNames() self.NoFreeGeometeys = InspectScene.inspectGeometryAttributes() self.DuplicatesShapesOBJ = InspectScene.insepectDuplicatesShapes() #-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*- def _readResult(OBJList, Field, Button):
#======================================== # author: changlong.zang # mail: [email protected] # date: Thu, 20 Nov 2014 17:10:31 #======================================== import os.path, time, findCoincidentGeometry from FoleyUtils import scriptTool, uiTool #--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+ windowClass, baseClass = uiTool.loadUi(os.path.join(scriptTool.getScriptPath(), 'findCoincidentGeometry.ui')) class findCoincidentGeometryUI(windowClass, baseClass): def __init__(self, parent=None): if uiTool.windowExists(parent, 'findCoincidentGeometryUI'): return super(findCoincidentGeometryUI, self).__init__(parent) self.setupUi(self) self.show() #------------------ def on_pushButton_clicked(self, args=None): if args == None:return self.plainTextEdit.setPlainText('') self.plainTextEdit.appendPlainText('------ %s ------'%time.strftime("%H:%M:%S", time.localtime())) geometrys = findCoincidentGeometry.findCoincidentGeometrys() self.plainTextEdit.appendPlainText('\n'.join(geometrys)) self.plainTextEdit.appendPlainText('------ %s ------'%time.strftime("%H:%M:%S", time.localtime()))
#======================================== # author: changlong.zang # mail: [email protected] # date: Thu, 20 Nov 2014 17:10:31 #======================================== import os.path, time, findCoincidentGeometry from FoleyUtils import scriptTool, uiTool #--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+ windowClass, baseClass = uiTool.loadUi( os.path.join(scriptTool.getScriptPath(), 'findCoincidentGeometry.ui')) class findCoincidentGeometryUI(windowClass, baseClass): def __init__(self, parent=None): if uiTool.windowExists(parent, 'findCoincidentGeometryUI'): return super(findCoincidentGeometryUI, self).__init__(parent) self.setupUi(self) self.show() #------------------ def on_pushButton_clicked(self, args=None): if args == None: return self.plainTextEdit.setPlainText('') self.plainTextEdit.appendPlainText( '------ %s ------' % time.strftime("%H:%M:%S", time.localtime())) geometrys = findCoincidentGeometry.findCoincidentGeometrys() self.plainTextEdit.appendPlainText('\n'.join(geometrys)) self.plainTextEdit.appendPlainText(
# date: Tue, 29 Jul 2014 09:29:32 #============================================= import math, re, os import maya.cmds as mc from FoleyUtils import uiTool, scriptTool, mayaTool, mathTool #--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+ #-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ #- Refresh Characters + #- Guess Character Type + #- Left arm, Right arm, Left leg, Right leg + #- Left foreleg, Right foreleg, Left hindleg, Right hindleg + #-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ Uiwnd, UiClass = uiTool.loadUi(os.path.join(scriptTool.getScriptPath(), 'IKFKSwitch.ui')) class IKFKSwitch(Uiwnd, UiClass): def __init__(self, parent = None): if uiTool.windowExists(parent, 'DDikfkSwitchWindow'): return super(IKFKSwitch, self).__init__(parent) self.setupUi(self) self.show() #-------- self.on_actionRefreshCharacter_triggered(True) def on_actionRefreshCharacter_triggered(self, args=None): if args==None:return self.Controls = ' '.join(mc.ls())
def data(self, index, role=QtCore.Qt.DisplayRole): if role == QtCore.Qt.DisplayRole or role == QtCore.Qt.EditRole: return self.LIST_DATA[index.row()] def changeData(self, inputData): self.beginRemoveRows(QtCore.QModelIndex(), 0, self.rowCount()) del self.LIST_DATA[:] self.endRemoveRows() self.beginInsertRows(QtCore.QModelIndex(), 0, self.rowCount()) self.LIST_DATA = inputData self.endInsertRows() windowClass, baseClass = uiTool.loadUi( os.path.join(scriptTool.getScriptPath(), 'weightsTool.ui')) class WeightsTool(windowClass, baseClass): SOURCE_DEFORM_TYPE = 'cluster' TARGET_DEFORM_TYPE = 'cluster' def __init__(self, parent=None): super(WeightsTool, self).__init__(parent) self.setupUi(self) self.show() self.SOURCE_MODEL = ListModel() self.TARGET_MODEL = ListModel() self.VIW_Source.setModel(self.SOURCE_MODEL) self.VIW_Target.setModel(self.TARGET_MODEL)
print 'Error -> obj %s was not Exists...' % obj return if not mc.attributeQuery(attribute, n=obj, ex=True): print 'Error -> attributes %s was not Exists...' % arg return mc.delete(mc.keyframe(dsn, q=True, n=True)) driverValues = mc.keyframe(src, q=True, fc=True) drivenValues = mc.keyframe(src, q=True, vc=True) for drv, dnv in zip(driverValues, drivenValues): mc.setDrivenKeyframe(dsn, cd=dsr, dv=drv, v=dnv * mirror) windowClass, baseClass = uiTool.loadUi( os.path.join(scriptTool.getScriptPath(), 'mirrorDrivenKeys.ui')) class MirrorDrivenKeysUI(windowClass, baseClass): def __init__(self, parent=None): if uiTool.windowExists(parent, 'mirrorDrivenkeysWindow'): return super(MirrorDrivenKeysUI, self).__init__(parent) self.setupUi(self) self.show() #---------------------------------------------------------------- self.__SrcOBJ = None self.__DstOBJ = None self.__model_SrcDriver = ListModel()