def update(self, *args): """ Sets the controls to selected object's setting """ try: shapes = cmds.ls(sl=True, o=True, dag=True, s=True) if len(shapes) > 0: self.shadEngine = str(cmds.listConnections(shapes, type="shadingEngine")[0]) # connected materials self.materials = str(cmds.ls(cmds.listConnections(self.shadEngine), materials=True)[0]) # check if connected material is a surface shader or Maya material if cmds.nodeType(self.materials) == "surfaceShader": wireframeColor = cmds.attrColorSliderGrp( "wireframeColor", edit=True, at=self.materials + ".outColor", sb=True ) wireColorSlider = cmds.attrColorSliderGrp( "wireColorSlider", edit=True, at=self.shadEngine + ".miContourColor" ) wirewidthControl = cmds.attrFieldSliderGrp( "wirewidthControl", edit=True, at=self.shadEngine + ".miContourWidth" ) else: wireframeColor = cmds.attrColorSliderGrp( "wireframeColor", edit=True, at=self.materials + ".color", sb=True ) wireColorSlider = cmds.attrColorSliderGrp( "wireColorSlider", edit=True, at=self.shadEngine + ".miContourColor" ) wirewidthControl = cmds.attrFieldSliderGrp( "wirewidthControl", edit=True, at=self.shadEngine + ".miContourWidth" ) except TypeError, UnboundLocalError: pass
def createShader(self, *args): self.shaderName = cmds.shadingNode("lambert", asShader=True, n=("%sPVSHD") % self.geo) self.shadingGroup = cmds.sets(n=("%sSG" % self.shaderName), renderable=True, noSurfaceShader=True, empty=True) cmds.connectAttr("%s.outColor" % self.shaderName, "%s.surfaceShader" % self.shadingGroup) cmds.sets(self.geo, e=True, forceElement=self.shadingGroup) self.colorAttr = "color" cmds.setAttr("%s.%s" % (self.shaderName, self.colorAttr), 1, .7, .4) cmds.attrColorSliderGrp(self.color, e=True, en=True, at="%s.%s" % (self.shaderName, self.colorAttr)) cmds.iconTextButton(self.dragBut, e=True, dgc=partial(self.dragCommand, self.shadingGroup, ("%s.%s" % (self.shaderName, self.colorAttr)))) cmds.button(self.createButton, e=True, bgc=(.5, .2, .2)) cmds.textField(self.shadText, e=True, tx=self.shaderName)
def createUI(self,winName,dock): ##if Maya version is 2011 or above, create a doclable window, ##else create a floating window. if dock==True: if cmds.dockControl("%s_dock" % winName, q=True, exists=True): cmds.deleteUI("%s_dock" % winName) else: if cmds.window(winName, q=True, exists=True): cmds.deleteUI(winName) try: ###create window self.widgets["window"]=cmds.window(title="Render Wireframe", width=350, mnb=False,mxb=False) self.widgets["mainLayout"]=cmds.columnLayout("mainLayout",width=340,height=400,adj=True) self.widgets["scrolFldRprtr"]=cmds.cmdScrollFieldReporter("scrolFldRprtr",w=350,eac=False,fst="python") cmds.separator(h=5,style="none") cmds.separator(h=5,style="none") self.widgets["Amb_Occlus"]=cmds.text( label='Press CTRL button & hit the shelfbar button to render with AO' ) self.widgets["rowColumnLayout"]=cmds.rowColumnLayout(nc=2,cw=[(1,180),(2,140)],columnOffset=[(1,"both",5),(2,"both",2)]) self.widgets["aoCheck"]=cmds.checkBox("aoCheck",label='Render with Ambient Occlusion' , value=self.FLAG) self.widgets["mtrlSg_Attrib_Contrls"]= cmds.frameLayout('mtrlSg_Attrib_Contrls',w=340, label='Change Color and Wire Width', borderStyle='in',parent=self.widgets["mainLayout"] ) self.widgets["formLayout"] = cmds.formLayout("formLayout",numberOfDivisions=100) self.widgets["wireframeColor"]=cmds.attrColorSliderGrp('wireframeColor', sb=True, at='lambert1.outColor', l='Object Color') self.widgets["wireColorSlider"]=cmds.attrColorSliderGrp("wireColorSlider", l='Wire Color', at='initialShadingGroup.miContourColor', ann='the Wires will only show up in Render', sb=False) self.widgets["wirewidthControl"]=cmds.attrFieldSliderGrp("wirewidthControl",at=self.shadEngine+'.miContourWidth', ann='keep value between .5 and .8', min=0.0, max=1.50,l='Wire Width' ) self.widgets["antiAliasControl"]=cmds.floatSliderGrp("antiAliasControl", label='Anti Alias', cc=partial(self._change), field=True, minValue=0.01, maxValue=1.0, ann="change anti-alias contrast", value=cmds.getAttr("miDefaultOptions.contrastR") ) cmds.setParent('..') self.widgets["rowColumnRenLayout"]=cmds.rowColumnLayout( nc=2,cw=[(1,180),(2,140)],columnOffset=[(1,"both",5),(2,"both",2)]) self.widgets["renderSelected"]=cmds.iconTextButton('renderSelbtn', al='left',h=25,image='WireFrameOnShaded.png',ann='Wireframe selected object', style='iconAndTextHorizontal',label='Wireframe Selected',c=self._restrictUiReload) self.widgets["renderBtn"]=cmds.iconTextButton('renderBtn', align="right", h=25, width=100 , ann='Click here to take a test Render Preview\n For good quality use high resolution', c=cmds.RenderIntoNewWindow, style='iconAndTextHorizontal', image='menuIconRender.png', label='Render Preview') self.widgets["mainLayout_btns"]=cmds.columnLayout("mainLayout_btns", width=340, height=400) self.widgets["showSGbtn"]=cmds.button(c=self.showSGroup, l="Show Material", ann="Opens Attribute Editor and displays material of the selected object") self.widgets["formLayout"]=cmds.formLayout("formLayout", edit=True, af=[("wireframeColor",'top',0), ("wireframeColor",'left', -70)]) self.widgets["formLayout"]=cmds.formLayout("formLayout", edit=True, af=[("wireColorSlider",'top',20), ("wireColorSlider",'left', -70)]) self.widgets["formLayout"]=cmds.formLayout("formLayout", edit=True, af=[("wirewidthControl",'top',40), ("wirewidthControl",'left', -70)]) self.widgets["formLayout"]=cmds.formLayout("formLayout", edit=True, af=[("antiAliasControl",'top',60), ("antiAliasControl",'left', -70)]) cmds.scriptJob(parent=self.widgets["window"], e=["SelectionChanged",self.update]) except RuntimeError, err: print err
def createUI(self): self.selButton = cmds.iconTextButton(style="textOnly", label=self.geo, w=120, p=widgets["objectRCLO"], c=self.select) self.createButton = cmds.button(l="create", w=50, p=widgets["objectRCLO"], c=self.createShader) self.color = cmds.attrColorSliderGrp(l="", cw=[(1, 10), (2, 40), (3, 50)], rgb=(.5, .5, .5), p=widgets["objectRCLO"]) self.dragBut = cmds.iconTextButton(l="Drag/Drop", style="textOnly", w=50, fla=False, p=widgets["objectRCLO"], dpc=partial(self.dropCommand, self.geo, self.color)) self.shadText = cmds.textField(w=110, ed=False, tx=self.shaderName) cmds.separator(style="none", h=5) cmds.separator(style="none", h=5) cmds.separator(style="none", h=5) cmds.separator(style="none", h=5) cmds.separator(style="none", h=5) self.shaderCheck() if self.shaderName and self.shadingGroup: if self.shadingGroup != "initialShadingGroup": self.colorAttr = getColorAttr(self.shaderName) if self.colorAttr: cmds.button(self.createButton, e=True, bgc=(.5, .2, .2)) cmds.attrColorSliderGrp(self.color, e=True, en=True, at="%s.%s" % (self.shaderName, self.colorAttr)) cmds.iconTextButton( self.dragBut, e=True, dgc=partial(self.dragCommand, self.shadingGroup, ("%s.%s" % (self.shaderName, self.colorAttr)))) else: cmds.attrColorSliderGrp(self.color, e=True, en=False) pass
def __init__(self, node): super(AE_mila_mix_template, self).__init__(node) self.setNode(node) # LAYER / MIX if cmds.frameLayout(label="Mix", collapsable=True): if cmds.columnLayout(adj=True): # self.on = cmds.attrControlGrp( attribute = self.attr("on")) self.weight = cmds.attrFieldSliderGrp( attribute=self.attr("weight"), label="Weight", columnWidth=columnWidthData) self.addControl("weight", self.weight, cmds.attrFieldSliderGrp) self.weight_tint = cmds.attrColorSliderGrp( attribute=self.attr("weight_tint"), label="Tint", columnWidth=columnWidthData) self.addControl("weight_tint", self.weight_tint, cmds.attrColorSliderGrp) self.bump = AE_bump_template(self.node) cmds.setParent("..") cmds.setParent("..")
def refreshControls(self): if cmds.columnLayout(self.column, exists=True): cmds.setParent(self.column) for rowChild in cmds.columnLayout(self.column, query=True, childArray=True) or []: row = self.column+"|"+rowChild cmds.deleteUI(rowChild) for element in self.listElements: elementName = element[1] cmds.rowLayout(numberOfColumns=6, adjustableColumn=2, columnWidth6=[50, 160, 160, 180, 180, 110], columnAttach=[(1, 'both', 5), (2, 'both', 5), (3, 'both', 5), (4, 'both', 5), (5, 'both', 5), (6, 'both', -5)] ) selectCommand='import maya.cmds as cmds\ncmds.select(\''+elementName+'\')' cmds.nodeIconButton( style='iconOnly', command=selectCommand, image1=element[0]+'.png' ) cmds.text(label=elementName, align='left') cmds.attrColorSliderGrp(label='C:', at=elementName+'.color', columnWidth4=[15,30,70,40], columnAlign=[1,"center"]) if element[0] == 'MeshLightShelf': cmds.attrFieldSliderGrp(label='I:', at=elementName+'.intensity', columnWidth2=[15,45], columnAlign=[1,"center"]) cmds.attrFieldSliderGrp(label='E:', at=elementName+'.aiExposure', columnWidth3=[15,45,70], columnAlign=[1,"center"]) else: cmds.attrFieldSliderGrp(label='I:', at=elementName+'.intensity', columnWidth4=[15,45,70,40], columnAlign=[1,"center"]) cmds.attrFieldSliderGrp(label='E:', at=elementName+'.aiExposure', columnWidth4=[15,45,70,40], columnAlign=[1,"center"]) cmds.rowLayout(numberOfColumns=2, columnWidth2=[60, 50], columnAttach=[(1, 'both', 0), (2, 'both', 5)] ) cmds.intFieldGrp('lightManager_samples_'+elementName, label='S:', columnWidth2=[20,30], columnAlign2=['center','center']) cmds.connectControl('lightManager_samples_'+elementName, elementName+'.aiSamples', index=1) cmds.connectControl('lightManager_samples_'+elementName, elementName+'.aiSamples', index=2) cmds.checkBoxGrp('lightManager_visibility_'+elementName, label="E:", columnWidth2=[18,22]) try: cmds.connectControl('lightManager_visibility_'+elementName, elementName+'.visibility', index=1) cmds.connectControl('lightManager_visibility_'+elementName, elementName+'.visibility', index=2) except: pass cmds.setParent('..') cmds.setParent('..')
def __init__(self, node, label="Max Distance", collapse=True): self.controls = [] self.connectControls = [] def attr(attr): return "%s.%s" % (node, attr) self.node = node if cmds.frameLayout(label=label, collapse=collapse, collapsable=True): if cmds.columnLayout(adj=True): self.use_max_dist = cmds.checkBoxGrp( label="", label1="Use Max Distance", columnWidth=columnWidthData, cc=self.value_changed) self.connectControls.append( ("use_max_dist", self.use_max_dist, 2)) cmds.connectControl(self.use_max_dist, attr("use_max_dist"), index=2) self.max_dist = cmds.attrFieldSliderGrp( attribute=attr("max_dist"), label="Max Dist", columnWidth=columnWidthData) self.controls.append( ("max_dist", self.max_dist, cmds.attrFieldSliderGrp)) self.use_color = cmds.checkBoxGrp( label="", label1="Use Color", columnWidth=columnWidthData, cc=self.value_changed) self.connectControls.append( ("use_max_dist_color", self.use_color, 2)) cmds.connectControl(self.use_color, attr("use_max_dist_color"), index=2) self.color = cmds.attrColorSliderGrp( attribute=attr("max_dist_color"), label="Color", columnWidth=columnWidthData) self.controls.append(("max_dist_color", self.color, cmds.attrColorSliderGrp)) cmds.setParent("..") cmds.setParent("..") self.value_changed()
def __init__(self, node): super(AE_mila_transparency_template, self).__init__(node) self.controls = [] self.addControl( "transparency", cmds.attrColorSliderGrp(attribute=self.attr("transparency"), label="Transparency", columnWidth=columnWidthData), cmds.attrColorSliderGrp)
def update(self, *args): """ Sets the controls to selected object's setting """ try: shapes = cmds.ls(sl=True, o=True, dag=True, s=True) if len(shapes) > 0: self.shadEngine = str(cmds.listConnections(shapes, type ="shadingEngine")[0]) # connected materials self.materials = str(cmds.ls(cmds.listConnections(self.shadEngine), materials = True)[0]) # check if connected material is a surface shader or Maya material if cmds.nodeType(self.materials)=='surfaceShader': wireframeColor=cmds.attrColorSliderGrp("wireframeColor", edit= True, at=self.materials+'.outColor', sb=True ) wireColorSlider=cmds.attrColorSliderGrp("wireColorSlider", edit= True, at=self.shadEngine+'.miContourColor') wirewidthControl=cmds.attrFieldSliderGrp("wirewidthControl", edit= True, at=self.shadEngine+'.miContourWidth' ) else: wireframeColor=cmds.attrColorSliderGrp("wireframeColor", edit= True, at=self.materials+'.color', sb=True ) wireColorSlider=cmds.attrColorSliderGrp("wireColorSlider", edit= True, at=self.shadEngine+'.miContourColor') wirewidthControl=cmds.attrFieldSliderGrp("wirewidthControl", edit= True, at=self.shadEngine+'.miContourWidth') except TypeError,UnboundLocalError: pass
def dropCommand(self, targetGeo, sldrGrp, *args): print "dropCommand passingAttr = %s\ndrop passingSG = %s" % ( GeoObject.passingAttr, GeoObject.passingSG) #connect geo to passed sg cmds.sets(targetGeo, e=True, forceElement=GeoObject.passingSG) #connect slider to passed attr shd = cmds.listConnections("%s.surfaceShader" % GeoObject.passingSG)[0] cmds.attrColorSliderGrp(sldrGrp, e=True, at="%s.%s" % (shd, GeoObject.passingAttr)) #deactivate createButton cmds.button(self.createButton, e=True, bgc=(.5, .2, .2)) #activate drag functionality shd = cmds.listConnections("%s.surfaceShader" % GeoObject.passingSG)[0] self.shadingGroup = GeoObject.passingSG self.colorAttr = GeoObject.passingAttr self.shaderName = cmds.listConnections("%s.surfaceShader" % self.shadingGroup)[0] cmds.iconTextButton(self.dragBut, e=True, dgc=partial(self.dragCommand, self.shadingGroup, GeoObject.passingAttr)) cmds.textField(self.shadText, e=True, tx=self.shaderName)
def AE_tint_roughness_template(node, label="Base", collapse=True): controls = [] def attr(attr): return "%s.%s" % (node, attr) if cmds.frameLayout(label=label, collapse=collapse, collapsable=True): if cmds.columnLayout(adj=True): controls.append( ("tint", cmds.attrColorSliderGrp(attribute=attr("tint"), label="Tint", columnWidth=columnWidthData), cmds.attrColorSliderGrp)) try: controls.append( ("roughness", cmds.attrFieldSliderGrp(attribute=attr("roughness"), label="Roughness", columnWidth=columnWidthData), cmds.attrFieldSliderGrp)) except RuntimeError: pass try: controls.append( ("ior", cmds.attrFieldSliderGrp(attribute=attr("ior"), label="IOR", columnWidth=columnWidthData), cmds.attrFieldSliderGrp)) except RuntimeError: pass try: controls.append( ("intensity", cmds.attrFieldSliderGrp(attribute=attr("intensity"), label="Intensity", columnWidth=columnWidthData), cmds.attrFieldSliderGrp)) except RuntimeError: pass cmds.setParent("..") cmds.setParent("..") return controls
def refreshControls(self): if cmds.columnLayout(self.column, exists=True): cmds.setParent(self.column) for rowChild in cmds.columnLayout( self.column, query=True, childArray=True) or []: row = self.column + "|" + rowChild cmds.deleteUI(rowChild) for element in self.listElements: elementName = element[1] cmds.rowLayout(numberOfColumns=6, adjustableColumn=2, columnWidth6=[50, 160, 160, 180, 180, 110], columnAttach=[(1, 'both', 5), (2, 'both', 5), (3, 'both', 5), (4, 'both', 5), (5, 'both', 5), (6, 'both', -5)]) selectCommand = 'import maya.cmds as cmds\ncmds.select(\'' + elementName + '\')' cmds.nodeIconButton(style='iconOnly', command=selectCommand, image1=element[0] + '.png') cmds.text(label=elementName, align='left') cmds.attrColorSliderGrp(label='C:', at=elementName + '.color', columnWidth4=[15, 30, 70, 40], columnAlign=[1, "center"]) if element[0] == 'MeshLightShelf': cmds.attrFieldSliderGrp(label='I:', at=elementName + '.intensity', columnWidth2=[15, 45], columnAlign=[1, "center"]) cmds.attrFieldSliderGrp(label='E:', at=elementName + '.aiExposure', columnWidth3=[15, 45, 70], columnAlign=[1, "center"]) else: cmds.attrFieldSliderGrp(label='I:', at=elementName + '.intensity', columnWidth4=[15, 45, 70, 40], columnAlign=[1, "center"]) cmds.attrFieldSliderGrp(label='E:', at=elementName + '.aiExposure', columnWidth4=[15, 45, 70, 40], columnAlign=[1, "center"]) cmds.rowLayout(numberOfColumns=2, columnWidth2=[60, 50], columnAttach=[(1, 'both', 0), (2, 'both', 5)]) cmds.intFieldGrp('lightManager_samples_' + elementName, label='S:', columnWidth2=[20, 30], columnAlign2=['center', 'center']) cmds.connectControl('lightManager_samples_' + elementName, elementName + '.aiSamples', index=1) cmds.connectControl('lightManager_samples_' + elementName, elementName + '.aiSamples', index=2) cmds.checkBoxGrp('lightManager_visibility_' + elementName, label="E:", columnWidth2=[18, 22]) try: cmds.connectControl('lightManager_visibility_' + elementName, elementName + '.visibility', index=1) cmds.connectControl('lightManager_visibility_' + elementName, elementName + '.visibility', index=2) except: pass cmds.setParent('..') cmds.setParent('..')
def __init__(self, node): super(AE_mila_scatter_template, self).__init__(node) if cmds.frameLayout(label="Front Scatter", collapsable=True): if cmds.columnLayout(adj=True): self.addControl( "front_tint", cmds.attrColorSliderGrp(attribute=self.attr("front_tint"), label="Tint", columnWidth=columnWidthData), cmds.attrColorSliderGrp) self.addControl( "front_weight", cmds.attrFieldSliderGrp( attribute=self.attr("front_weight"), label="Weight", columnWidth=columnWidthData), cmds.attrFieldSliderGrp) self.addControl( "front_radius", cmds.attrFieldGrp(attribute=self.attr("front_radius"), label="Radius", columnWidth=columnWidthData3), cmds.attrFieldGrp) self.addControl( "front_radius_mod", cmds.attrColorSliderGrp( attribute=self.attr("front_radius_mod"), label="Radius Mod", columnWidth=columnWidthData), cmds.attrColorSliderGrp) cmds.setParent("..") cmds.setParent("..") if cmds.frameLayout(label="Back Scatter", collapsable=True): if cmds.columnLayout(adj=True): self.addControl( "back_tint", cmds.attrColorSliderGrp(attribute=self.attr("back_tint"), label="Tint", columnWidth=columnWidthData), cmds.attrColorSliderGrp) self.addControl( "back_weight", cmds.attrFieldSliderGrp(attribute=self.attr("back_weight"), label="Weight", columnWidth=columnWidthData), cmds.attrFieldSliderGrp) self.addControl( "back_radius", cmds.attrFieldGrp(attribute=self.attr("back_radius"), label="Radius", columnWidth=columnWidthData3), cmds.attrFieldGrp) self.addControl( "back_radius_mod", cmds.attrColorSliderGrp( attribute=self.attr("back_radius_mod"), label="Radius Mod", columnWidth=columnWidthData), cmds.attrColorSliderGrp) self.addControl( "back_depth", cmds.attrFieldSliderGrp(attribute=self.attr("back_depth"), label="Depth", columnWidth=columnWidthData), cmds.attrFieldSliderGrp) cmds.setParent("..") cmds.setParent("..") if cmds.frameLayout(label="Storage And Optimization", collapsable=True): if cmds.columnLayout(adj=True): self.addControl( "scale_conversion", cmds.attrFieldSliderGrp( attribute=self.attr("scale_conversion"), label="Scale", columnWidth=columnWidthData), cmds.attrFieldSliderGrp) self.addControl( "sampling_radius_mult", cmds.attrFieldSliderGrp( attribute=self.attr("sampling_radius_mult"), label="Sampling Factor", columnWidth=columnWidthData), cmds.attrFieldSliderGrp) self.addControl( "resolution", cmds.attrEnumOptionMenuGrp( attribute=self.attr("resolution"), label='Resolution', columnWidth=columnWidthData3, ei=[(0, "2 x Image"), (1, "1 x Image"), (2, "1/2 x Image"), (3, "1/3 x Image"), (4, "1/4 x Image"), (5, "1/5 x Image")]), cmds.attrEnumOptionMenuGrp) self.addControl( "light_storage_gamma", cmds.attrFieldSliderGrp( attribute=self.attr("light_storage_gamma"), label="Gamma", columnWidth=columnWidthData), cmds.attrFieldSliderGrp) cmds.setParent("..") cmds.setParent("..") self.controls += AE_contribution_template(node)
def __init__(self, node): super(AE_mila_layer_template, self).__init__(node) # LAYER / MIX if cmds.frameLayout(label="Layer", collapsable=True): if cmds.columnLayout(adj=True): # self.on = cmds.attrControlGrp( attribute = self.attr("on")) self.weight = cmds.attrFieldSliderGrp( attribute=self.attr("weight"), label="Weight", columnWidth=columnWidthData) self.addControl("weight", self.weight, cmds.attrFieldSliderGrp) self.weight_tint = cmds.attrColorSliderGrp( attribute=self.attr("weight_tint"), label="Weight Tint", columnWidth=columnWidthData) self.addControl("weight_tint", self.weight_tint, cmds.attrColorSliderGrp) self.fresnelLayout = cmds.formLayout() if self.fresnelLayout: self.directionalWeight = cmds.optionMenuGrp( label="Fresnel", columnWidth=columnWidthData, cc=self._setDirectionalMode) if self.directionalWeight: cmds.menuItem("Constant") cmds.menuItem("IOR") cmds.menuItem("Custom") self.scriptJobA = cmds.scriptJob( replacePrevious=True, parent=self.directionalWeight, attributeChange=(self.attr("directional_weight_mode"), self._directionalModeChanged)) self.scriptJobB = cmds.scriptJob( replacePrevious=True, parent=self.fresnelLayout, attributeChange=(self.attr("use_directional_weight"), self._directionalModeChanged)) self.scriptJobs.append( ("directional_weight_mode", self.directionalWeight, "attributeChange", self._directionalModeChanged)) self.scriptJobs.append( ("use_directional_weight", self.fresnelLayout, "attributeChange", self._directionalModeChanged)) self.showCurve = cmds.checkBox(label="Show Curve", cc=self._showCurveChanged, width=10, value=True) self.ior = cmds.attrFieldSliderGrp( attribute=self.attr("ior"), label="IOR", columnWidth=columnWidthData, cc=self.iorFresnelChanged) self.addControl("ior", self.ior, cmds.attrFieldSliderGrp) self.normal_reflectivity = cmds.attrFieldSliderGrp( attribute=self.attr("normal_reflectivity"), label="0 degree", columnWidth=columnWidthData, cc=self.customFresnelChanged) self.addControl("normal_reflectivity", self.normal_reflectivity, cmds.attrFieldSliderGrp) self.grazing_reflectivity = cmds.attrFieldSliderGrp( attribute=self.attr("grazing_reflectivity"), label="90 degree", columnWidth=columnWidthData, cc=self.customFresnelChanged) self.addControl("grazing_reflectivity", self.grazing_reflectivity, cmds.attrFieldSliderGrp) self.exponent = cmds.attrFieldSliderGrp( attribute=self.attr("exponent"), label="Exponent", columnWidth=columnWidthData, cc=self.customFresnelChanged) self.addControl("exponent", self.exponent, cmds.attrFieldSliderGrp) col = cmds.columnLayout(adj=True) if col: self.graphWidget = graphWidgetUI() cmds.setParent("..") cmds.setParent("..") cmds.formLayout( self.fresnelLayout, edit=True, attachForm=[[self.directionalWeight, "top", 2], [self.directionalWeight, "left", 0], [self.showCurve, "top", 2], [self.showCurve, "right", 0], [self.ior, "left", 0], [self.normal_reflectivity, "left", 0], [self.grazing_reflectivity, "left", 0], [self.exponent, "left", 0], [col, "right", 12], [col, "bottom", 10], [col, "left", 190]], attachControl=[ [self.showCurve, "left", 2, self.directionalWeight], [col, "top", 4, self.showCurve], [self.ior, "top", 2, self.directionalWeight], [ self.normal_reflectivity, "top", 2, self.directionalWeight ], [ self.grazing_reflectivity, "top", 2, self.normal_reflectivity ], [self.exponent, "top", 2, self.grazing_reflectivity], ], attachNone=[[self.directionalWeight, "right"], [self.directionalWeight, "bottom"], [self.showCurve, "bottom"], [self.ior, "bottom"], [self.ior, "right"], [self.normal_reflectivity, "right"], [self.normal_reflectivity, "bottom"], [self.grazing_reflectivity, "right"], [self.grazing_reflectivity, "bottom"], [self.exponent, "right"], [self.exponent, "bottom"]], ) self.bump = AE_bump_template(self.node) cmds.setParent("..") cmds.setParent("..") self._directionalModeChanged()
import maya.OpenMayaUI import maya.cmds as cmds import sip from PyQt4.QtGui import * from PyQt4.QtCore import * mainWindow = QMainWindow() centralWidget = QListView() mainWindow.setCentralWidget(centralWidget) dockWidget = QDockWidget("DockWidget", mainWindow) dockWidget.setAllowedAreas(Qt.LeftDockWidgetArea | Qt.RightDockWidgetArea) mayaMainWindow = sip.wrapinstance(long(maya.OpenMayaUI.MQtUtil.mainWindow()), QObject) channelBoxDockWidget = None widget = cmds.attrColorSliderGrp("__MyWidget__") dockWidget.setWidget([ widget for widget in mayaMainWindow.findChildren(QWidget, "__MyWidget__") ][0]) mainWindow.addDockWidget(Qt.DockWidgetArea(Qt.LeftDockWidgetArea), dockWidget) mainWindow.show()
def createUI(self, winName, dock): ##if Maya version is 2011 or above, create a doclable window, ##else create a floating window. if dock == True: if cmds.dockControl(winName + "_dock", q=True, exists=True): cmds.deleteUI(winName + "_dock") else: if cmds.window(winName, q=True, exists=True): cmds.deleteUI(winName) try: ###create window self.widgets["window"] = cmds.window(title="Render Wireframe", width=350, mnb=False, mxb=False) self.widgets["mainLayout"] = cmds.columnLayout("mainLayout", width=340, height=400, adj=True) self.widgets["scrolFldRprtr"] = cmds.cmdScrollFieldReporter("scrolFldRprtr", w=350, eac=False, fst="python") cmds.separator(h=5, style="none") cmds.separator(h=5, style="none") self.widgets["Amb_Occlus"] = cmds.text( label="Press CTRL button & hit the shelfbar button to render with AO" ) self.widgets["rowColumnLayout"] = cmds.rowColumnLayout( nc=2, cw=[(1, 180), (2, 140)], columnOffset=[(1, "both", 5), (2, "both", 2)] ) self.widgets["aoCheck"] = cmds.checkBox("aoCheck", label="Render with Ambient Occlusion", value=self.FLAG) self.widgets["mtrlSg_Attrib_Contrls"] = cmds.frameLayout( "mtrlSg_Attrib_Contrls", w=340, label="Change Color and Wire Width", borderStyle="in", parent=self.widgets["mainLayout"], ) self.widgets["formLayout"] = cmds.formLayout("formLayout", numberOfDivisions=100) self.widgets["wireframeColor"] = cmds.attrColorSliderGrp( "wireframeColor", sb=True, at="lambert1.outColor", l="Object Color" ) self.widgets["wireColorSlider"] = cmds.attrColorSliderGrp( "wireColorSlider", l="Wire Color", at="initialShadingGroup.miContourColor", ann="the Wires will only show up in Render", sb=False, ) self.widgets["wirewidthControl"] = cmds.attrFieldSliderGrp( "wirewidthControl", at=self.shadEngine + ".miContourWidth", ann="keep value between .5 and .8", min=0.0, max=1.50, l="Wire Width", ) self.widgets["antiAliasControl"] = cmds.floatSliderGrp( "antiAliasControl", label="Anti Alias", cc=partial(self.change), field=True, minValue=0.01, maxValue=1.0, ann="change anti-alias contrast", value=cmds.getAttr("miDefaultOptions.contrastR"), ) cmds.setParent("..") self.widgets["rowColumnRenLayout"] = cmds.rowColumnLayout( nc=2, cw=[(1, 180), (2, 140)], columnOffset=[(1, "both", 5), (2, "both", 2)] ) self.widgets["renderSelected"] = cmds.iconTextButton( "renderSelbtn", al="left", h=25, image="WireFrameOnShaded.png", ann="Wireframe selected object", style="iconAndTextHorizontal", label="Wireframe Selected", c=self.wfSeltd, ) self.widgets["renderBtn"] = cmds.iconTextButton( "renderBtn", align="right", h=25, width=100, ann="Click here to take a test Render Preview\n For good quality use high resolution", c=cmds.RenderIntoNewWindow, style="iconAndTextHorizontal", image="menuIconRender.png", label="Render Preview", ) self.widgets["mainLayout_btns"] = cmds.columnLayout("mainLayout_btns", width=340, height=400) self.widgets["showSGbtn"] = cmds.button( c=self.showSGroup, l="Show Material", ann="Opens Attribute Editor and displays material of the selected object", ) self.widgets["formLayout"] = cmds.formLayout( "formLayout", edit=True, af=[("wireframeColor", "top", 0), ("wireframeColor", "left", -70)] ) self.widgets["formLayout"] = cmds.formLayout( "formLayout", edit=True, af=[("wireColorSlider", "top", 20), ("wireColorSlider", "left", -70)] ) self.widgets["formLayout"] = cmds.formLayout( "formLayout", edit=True, af=[("wirewidthControl", "top", 40), ("wirewidthControl", "left", -70)] ) self.widgets["formLayout"] = cmds.formLayout( "formLayout", edit=True, af=[("antiAliasControl", "top", 60), ("antiAliasControl", "left", -70)] ) cmds.scriptJob(parent=self.widgets["window"], e=["SelectionChanged", self.update]) except RuntimeError, err: print err