f = open(os.path.join(getScriptPath(), 'ControlNameData.json'), 'r') controlDT = json.load(f) f.close() #- set Data for ctl in selectControl: if ctl in controlDT.get(self.Button, []): controlDT.get(self.Button, []).remove(ctl) #- save Data f = open(os.path.join(getScriptPath(), 'ControlNameData.json'), 'w') json.dump(controlDT, f, indent=4) f.close() windowClass, baseClass = uiTool.loadUi( os.path.join(scriptTool.getScriptPath(), 'ControlSelecterUI.ui')) class ControlSelecterWnd(windowClass, baseClass): selectAdd = False 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)
if not mc.objExists(obj): 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()
#======================================== # 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()))
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.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
#======================================== # 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
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:
#============================================= # 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(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')))
import os import maya.cmds as mc from FoleyUtils import scriptTool, uiTool, mayaTool #--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+ UIClass, BaseClass = uiTool.loadUi( os.path.join(scriptTool.getScriptPath(), 'quickSetDrivenKey.ui')) class QuickSetDrivenKey(UIClass, BaseClass): def __init__(self, parent=None): if uiTool.windowExists(parent, 'quickSetDrivenKeywindow'): return super(QuickSetDrivenKey, self).__init__(parent) self.setupUi(self) self.show() def _loadAttribute(self, LineEdit): SelectOBJ = mc.ls(sl=True) if len(SelectOBJ) == 0: return SelectAttriBute = mc.channelBox('mainChannelBox', q=True, sma=True) if SelectAttriBute == None: return LineEdit.setText('%s.%s' % (SelectOBJ[-1], SelectAttriBute[0])) def on_actionLoadDriverAttribute_triggered(self, args=None): if args == None: return self._loadAttribute(self.DriverAttributeLineEdit)
if role == QtCore.Qt.ForegroundRole: if self.__attributes[index.row()] in self.openAttrLst: return QtGui.QColor(255, 170, 127) 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)
#================================= # 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 == []:
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
#============================================= # author: changlong.zang # mail: [email protected] # date: Wed, 09 Jul 2014 10:49:27 #============================================= import os, math, re from FoleyUtils import scriptTool, uiTool, ioTool from PyQt4 import QtCore, QtGui import maya.cmds as mc #--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+ windowClass, baseClass = uiTool.loadUi( os.path.join(scriptTool.getScriptPath(), 'FixShape.ui')) class ListModel(QtCore.QAbstractListModel): def __init__(self, L=[], parent=None): super(ListModel, self).__init__(parent) self.__data = L[:] def rowCount(self, index=QtCore.QModelIndex()): return len(self.__data) def data(self, index, role): if role == QtCore.Qt.DisplayRole: return self.__data[index.row()] def refresh(self): self.beginRemoveRows(QtCore.QModelIndex(), 0, self.rowCount()) del self.__data[:] self.endRemoveRows()
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() def on_btn_search_clicked(self, clicked=None):
#================================= # 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
def getNewVersionFile(path): lastVersion = publishTool.getLastVersion(path) newVersion = publishTool.getNewVersion(path) lastFile = publishTool.getVersiondFile(path, lastVersion) if os.path.isfile(lastFile): newFile = re.sub('v%s\.' % lastVersion, 'v%s.' % newVersion, lastFile) else: newFile = tempfile.mktemp('.ma') return newFile #--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+ windowClass, baseClass = uiTool.loadUi( os.path.join(scriptTool.getScriptPath(), 'AnimSceneReader.ui')) class AnimSceneReaderUI(windowClass, baseClass): 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',
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 # 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]) def on_btn_LoadSkeleton_clicked(self, clicked=None):
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 # mail: [email protected] # date: Sun, 04 Jan 2015 13:39:56 #======================================== import sys, os, functools from FoleyUtils import scriptTool, uiTool from PyQt4 import QtCore, QtGui import maya.cmds as mc #--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+ baseClass, windowClass = uiTool.loadUi(os.path.join(scriptTool.getScriptPath(), 'ProjectTool_UI.ui')) class ProjectUI(baseClass, windowClass): 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)
#======================================== # 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):
def getNewVersionFile(path): lastVersion = publishTool.getLastVersion(path) newVersion = publishTool.getNewVersion(path) lastFile = publishTool.getVersiondFile(path, lastVersion) if os.path.isfile(lastFile): newFile = re.sub('v%s\.'%lastVersion, 'v%s.'%newVersion, lastFile) else: newFile = tempfile.mktemp('.ma') return newFile #--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+ windowClass, baseClass = uiTool.loadUi(os.path.join(scriptTool.getScriptPath(), 'AnimSceneReader.ui')) class AnimSceneReaderUI(windowClass, baseClass): 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()
import os.path import maya.cmds as mc from FoleyUtils import scriptTool, uiTool UIwndClass, baseClass = uiTool.loadUi( os.path.join(scriptTool.getScriptPath(), 'quickSDKTool.ui')) class quickSDK(UIwndClass, baseClass): def __init__(self, parent=None): if uiTool.windowExists(parent, 'quickSDKwindow'): return super(quickSDK, self).__init__(parent) self.setupUi(self) self.show() #------------- def on_actionLoadAttributes_triggered(self, clicked=None): if clicked == None: return mainChannelBox = 'mainChannelBox' ChannelBoxs = mc.lsUI(typ='channelBox') ChannelBoxs.remove(mainChannelBox) if len(ChannelBoxs) == 0: return DriverOBJ = mc.channelBox(mainChannelBox, q=True, mol=True) DriverAttr = mc.channelBox(mainChannelBox, q=True, sma=True) if not DriverOBJ or not DriverAttr: return self.driverAttributelineEdit.setText('%s.%s' %
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) icon = QtGui.QIcon()
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")))
#================================= # 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)
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()
import os.path import maya.cmds as mc from FoleyUtils import scriptTool, uiTool UIwndClass, baseClass = uiTool.loadUi(os.path.join(scriptTool.getScriptPath(), 'quickSDKTool.ui')) class quickSDK(UIwndClass, baseClass): def __init__(self, parent=None): if uiTool.windowExists(parent, 'quickSDKwindow'): return super(quickSDK, self).__init__(parent) self.setupUi(self) self.show() #------------- def on_actionLoadAttributes_triggered(self, clicked=None): if clicked==None:return mainChannelBox = 'mainChannelBox' ChannelBoxs = mc.lsUI(typ='channelBox') ChannelBoxs.remove(mainChannelBox) if len(ChannelBoxs) == 0:return DriverOBJ = mc.channelBox(mainChannelBox, q=True, mol=True) DriverAttr = mc.channelBox(mainChannelBox, q=True, sma=True)
# 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())
f.close() #- set Data for ctl in selectControl: if ctl in controlDT.get(self.Button, []): controlDT.get(self.Button, []).remove(ctl) #- save Data f = open(os.path.join(getScriptPath(), 'ControlNameData.json'), 'w') json.dump(controlDT, f, indent=4) f.close() windowClass, baseClass = uiTool.loadUi(os.path.join(scriptTool.getScriptPath(), 'ControlSelecterUI.ui')) class ControlSelecterWnd(windowClass, baseClass): selectAdd = False 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)
''' 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)
#============================================= # 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, 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 # mail: [email protected] # date: Wed, 09 Jul 2014 10:49:27 #============================================= import os, math, re from FoleyUtils import scriptTool, uiTool, ioTool from PyQt4 import QtCore, QtGui import maya.cmds as mc #--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+ windowClass, baseClass = uiTool.loadUi(os.path.join(scriptTool.getScriptPath(), 'FixShape.ui')) class ListModel(QtCore.QAbstractListModel): def __init__(self, L=[], parent=None): super(ListModel, self).__init__(parent) self.__data = L[:] def rowCount(self, index=QtCore.QModelIndex()): return len(self.__data) def data(self, index, role): if role == QtCore.Qt.DisplayRole: return self.__data[index.row()] def refresh(self): self.beginRemoveRows(QtCore.QModelIndex(), 0, self.rowCount()) del self.__data[:] self.endRemoveRows()
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)
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()
""" 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
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)
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(), '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)
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 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)
#======================================== # 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])
#======================================== # 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(
#================================= # 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)
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)
import os import maya.cmds as mc from FoleyUtils import scriptTool, uiTool, mayaTool #--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+--+ UIClass, BaseClass = uiTool.loadUi(os.path.join(scriptTool.getScriptPath(), 'quickSetDrivenKey.ui')) class QuickSetDrivenKey(UIClass, BaseClass): def __init__(self, parent=None): if uiTool.windowExists(parent, 'quickSetDrivenKeywindow'): return super(QuickSetDrivenKey, self).__init__(parent) self.setupUi(self) self.show() def _loadAttribute(self, LineEdit): SelectOBJ = mc.ls(sl=True) if len(SelectOBJ) == 0:return SelectAttriBute = mc.channelBox('mainChannelBox', q=True, sma=True) if SelectAttriBute == None:return LineEdit.setText('%s.%s'%(SelectOBJ[-1], SelectAttriBute[0])) def on_actionLoadDriverAttribute_triggered(self, args=None): if args==None:return