示例#1
0
class mkOnionUI(object):
    def __init__(self):
        self.dlg = CustomDialog("onion skin")
        self.dlg.addDescription(
            "This tool will duplicate an object for each frame, this is usfull for onion skinning or for creating blend shapes from animations"
        )
        FrameIncraments = [
            '1', '2', '3', '4', '5', '6', '7', '8', '9', '10', '11', '12',
            '13', '14', '15'
        ]
        self.dlg.addComboBox("Incrament", FrameIncraments)
        self.dlg.addTextField("Frame range", defaultValue='', enabled=True)
        self.dlg.addTextFieldButton("Load object",
                                    "select object",
                                    "none",
                                    self.mkLoadobj,
                                    editable=True)
        self.mkTimeRange()
        self.dlg.addButton("Apply")  # Buttons always go on the bottom
        self.dlg.addButton(
            "Close")  # Each button gets and index value returned on exit
        self.result = self.dlg.show(
        )  # result will be 0 for OK, and 1 for Close

    # --------------Time range ------------------------
    def mkTimeRange(self):
        startFrame = cmds.playbackOptions(query=True, minTime=True)
        endFrame = cmds.playbackOptions(query=True, maxTime=True)
        startFrame = int(startFrame)
        endFrame = int(endFrame)
        self.dlg.setValue("Frame range", str(startFrame) + '-' + str(endFrame))

    # ---------------load object-----------------------
    def mkLoadobj(self):
        selectedObj = cmds.ls(sl=True)
        selectedObj = str(selectedObj[0])
        self.dlg.setValue("Load object", selectedObj)
示例#2
0
class mkOnionUI(object):
	def __init__(self):
		self.dlg = CustomDialog("onion skin")
		self.dlg.addDescription("This tool will duplicate an object for each frame, this is usfull for onion skinning or for creating blend shapes from animations")
		FrameIncraments = ['1','2','3','4','5','6','7','8','9','10','11','12','13','14','15']
		self.dlg.addComboBox("Incrament", FrameIncraments)
		self.dlg.addTextField("Frame range",defaultValue= '',enabled=True)
		self.dlg.addTextFieldButton("Load object", "select object", "none" , self.mkLoadobj , editable = True )
		self.mkTimeRange()
		self.dlg.addButton("Apply") # Buttons always go on the bottom
		self.dlg.addButton("Close") # Each button gets and index value returned on exit
		self.result = self.dlg.show() # result will be 0 for OK, and 1 for Close
	# --------------Time range ------------------------
	def mkTimeRange(self):
		startFrame = cmds.playbackOptions (query = True, minTime = True)
		endFrame = cmds.playbackOptions (query = True, maxTime = True)
		startFrame			=		int(startFrame)
		endFrame			=		int(endFrame)
		self.dlg.setValue("Frame range", str(startFrame)+ '-' + str(endFrame))
	# ---------------load object-----------------------
	def mkLoadobj(self):
		selectedObj			=		cmds.ls(sl = True)
		selectedObj			=		str(selectedObj[0])
		self.dlg.setValue("Load object", selectedObj)
class myclass(object):
    def __init__(self):
        parent = QtGui.QApplication.activeWindow()
        fileTpyes = ['jpg', 'tiff', 'tga', 'png']
        resolution = ['256', '512', '1024', '2048', '4096']
        self.dlg = CustomDialog("bake camera projections", parent=parent)
        self.dlg.addDescription(
            "This tool will bake out an animated camera projection")
        self.dlg.addComboBox("formats", fileTpyes)
        self.dlg.addComboBox("resolution", resolution)
        self.dlg.addTextField("Image name", defaultValue='', enabled=True)
        self.dlg.addTextField("Frame range", defaultValue='', enabled=True)
        self.mkTimeRange()
        self.dlg.addTextFieldButton("Load camera",
                                    "select camera",
                                    "none",
                                    self.mkLoadCam,
                                    editable=True)
        self.dlg.addTextFieldButton("Load shader",
                                    "select shader",
                                    "none",
                                    self.mkLoadShader,
                                    editable=True)
        self.dlg.addTextFieldButton("Load object",
                                    "select object",
                                    "none",
                                    self.mkLoadobj,
                                    editable=True)
        self.dlg.addCheckBox("Normal map", state=False)
        self.dlg.addButton("Apply")  # Buttons always go on the bottom
        self.dlg.addButton(
            "Close")  # Each button gets and index value returned on exit
        self.result = self.dlg.show(
        )  # result will be 0 for OK, and 1 for Close

    # --------------Time range ------------------------
    def mkTimeRange(self):
        startFrame = cmds.playbackOptions(query=True, minTime=True)
        endFrame = cmds.playbackOptions(query=True, maxTime=True)
        startFrame = int(startFrame)
        endFrame = int(endFrame)
        self.dlg.setValue("Frame range", str(startFrame) + '-' + str(endFrame))

    # --------------load ui with selections------------------------
    def mkLoadCam(self):
        selectedCam = cmds.ls(sl=True)
        selectedCam = str(selectedCam[0])
        self.dlg.setValue("Load camera", selectedCam)

    def mkLoadShader(self):
        selectedShad = cmds.ls(sl=True)
        selectedShad = str(selectedShad[0])
        self.dlg.setValue("Load shader", selectedShad)

    def mkLoadobj(self):
        selectedObj = cmds.ls(sl=True)
        selectedObj = str(selectedObj[0])
        self.dlg.setValue("Load object", selectedObj)

    # --------------bake camer normal maps------------------------
    def mkCreateCamNrml(self):
        surfaceShdr = cmds.shadingNode('surfaceShader',
                                       asShader=True,
                                       n="surfaceShaderNode")
        setRangeShdr = cmds.shadingNode('setRange',
                                        asUtility=True,
                                        n='setRangeNode')
        samplerInfoShader = cmds.shadingNode('samplerInfo',
                                             asUtility=True,
                                             n='samplerInfoNode')
        cmds.setAttr(setRangeShdr + ".maxX", 1)
        cmds.setAttr(setRangeShdr + ".oldMinX", -1)
        cmds.setAttr(setRangeShdr + ".oldMaxX", 1)
        cmds.setAttr(setRangeShdr + ".maxY", 1)
        cmds.setAttr(setRangeShdr + ".oldMinY", -1)
        cmds.setAttr(setRangeShdr + ".oldMaxY", 1)
        cmds.setAttr(setRangeShdr + ".maxZ", 1)
        cmds.setAttr(setRangeShdr + ".oldMinZ", -1)
        cmds.setAttr(setRangeShdr + ".oldMaxZ", 1)
        cmds.connectAttr(samplerInfoShader + ".normalCameraX",
                         setRangeShdr + ".valueX")
        cmds.connectAttr(samplerInfoShader + ".normalCameraY",
                         setRangeShdr + ".valueY")
        cmds.connectAttr(samplerInfoShader + ".normalCameraZ",
                         setRangeShdr + ".valueZ")
        cmds.connectAttr(setRangeShdr + ".outValue", surfaceShdr + ".outColor")
        shaders = {}
        shaders['surface'] = surfaceShdr
        shaders['setRange'] = setRangeShdr
        shaders['sampler'] = samplerInfoShader
        return (shaders)
class myclass(object):
	def __init__(self):
		parent = QtGui.QApplication.activeWindow()
		fileTpyes = ['jpg','tiff','tga','png']
		resolution = ['256','512','1024','2048','4096']
		self.dlg = CustomDialog("bake camera projections",parent=parent)
		self.dlg.addDescription("This tool will bake out an animated camera projection")
		self.dlg.addComboBox("formats", fileTpyes)
		self.dlg.addComboBox("resolution", resolution)
		self.dlg.addTextField("Image name",defaultValue='',enabled=True)
		self.dlg.addTextField("Frame range",defaultValue= '',enabled=True)
		self.mkTimeRange()
		self.dlg.addTextFieldButton("Load camera", "select camera", "none" , self.mkLoadCam , editable = True )
		self.dlg.addTextFieldButton("Load shader", "select shader", "none" , self.mkLoadShader , editable = True )
		self.dlg.addTextFieldButton("Load object", "select object", "none" , self.mkLoadobj , editable = True )
		self.dlg.addCheckBox("Normal map", state = False)
		self.dlg.addButton("Apply") # Buttons always go on the bottom
		self.dlg.addButton("Close") # Each button gets and index value returned on exit
		self.result = self.dlg.show() # result will be 0 for OK, and 1 for Close
	# --------------Time range ------------------------
	def mkTimeRange(self):
		startFrame = cmds.playbackOptions (query = True, minTime = True)
		endFrame = cmds.playbackOptions (query = True, maxTime = True)
		startFrame			=		int(startFrame)
		endFrame			=		int(endFrame)
		self.dlg.setValue("Frame range", str(startFrame)+ '-' + str(endFrame))
	# --------------load ui with selections------------------------
	def mkLoadCam(self):
		selectedCam			=		cmds.ls(sl = True)
		selectedCam			=		str(selectedCam[0])
		self.dlg.setValue("Load camera", selectedCam)
	def mkLoadShader(self):
		selectedShad		=		cmds.ls(sl = True)
		selectedShad		=		str(selectedShad[0])
		self.dlg.setValue("Load shader", selectedShad)
	def mkLoadobj(self):
		selectedObj			=		cmds.ls(sl = True)
		selectedObj			=		str(selectedObj[0])
		self.dlg.setValue("Load object", selectedObj)
	# --------------bake camer normal maps------------------------
	def mkCreateCamNrml(self):
		surfaceShdr			=		cmds.shadingNode('surfaceShader', asShader=True, n = "surfaceShaderNode")
		setRangeShdr		=		cmds.shadingNode('setRange', asUtility = True, n='setRangeNode')
		samplerInfoShader	=		cmds.shadingNode('samplerInfo', asUtility = True, n='samplerInfoNode')
		cmds.setAttr (setRangeShdr+".maxX", 1)
		cmds.setAttr (setRangeShdr+".oldMinX", -1)
		cmds.setAttr (setRangeShdr+".oldMaxX", 1)
		cmds.setAttr (setRangeShdr+".maxY", 1)
		cmds.setAttr (setRangeShdr+".oldMinY", -1)
		cmds.setAttr (setRangeShdr+".oldMaxY", 1)
		cmds.setAttr (setRangeShdr+".maxZ", 1)
		cmds.setAttr (setRangeShdr+".oldMinZ", -1)
		cmds.setAttr (setRangeShdr+".oldMaxZ", 1)
		cmds.connectAttr(samplerInfoShader+".normalCameraX", setRangeShdr+".valueX")
		cmds.connectAttr(samplerInfoShader+".normalCameraY", setRangeShdr+".valueY")
		cmds.connectAttr(samplerInfoShader+".normalCameraZ", setRangeShdr+".valueZ")
		cmds.connectAttr(setRangeShdr+".outValue", surfaceShdr+".outColor")
		shaders				=		{}
		shaders['surface']=surfaceShdr
		shaders['setRange']=setRangeShdr
		shaders['sampler']=samplerInfoShader
		return (shaders)