I got your point. but don't know whats happening. Check my script below def createShader2(shaderType='alSurface', name='PLASTIC', shaderOutput = 'sg'): if name == '': name = shaderType name = pm.shadingNode(shaderType, asShader=True, name=name) sg = pm.sets(renderable=True, noSurfaceShader=True, empty=True, name='%sSG' %(name))
# connect shader to SG shaderOutput = 'outValue' if shaderType== 'mia_material' or shaderType == 'mia_material_x': if shaderType == 'mia_material_x': shaderOutput = "result"; pm.connectAttr('%s.%s' %(name,shaderOutput), '%s.miMaterialShader' %(sg), force=True) pm.connectAttr('%s.%s' %(name,shaderOutput), '%s.miShadowShader' %(sg), force=True) pm.connectAttr('%s.%s' %(name,shaderOutput), '%s.miPhotonShader' %(sg), force=True) else: pm.connectAttr('%s.outColor' %(name), '%s.surfaceShader' %(sg), force=True) pm.setAttr('%s.weight1' %(name),0.85) pm.setAttr('%s.roughness1' %(name),0) pm.connectAttr('ramp1.outColor', '%s.metallic1' %(name), f=True) return [name, sg] This is the error I'm getting "# RuntimeError: The source attribute 'ramp1.outColor' cannot be found" On Tuesday, June 26, 2018 at 12:16:53 PM UTC+5:30, Michael Boon wrote: > > If I create a ramp and connect it to the normalMapSamplerTexture input on > a material, Script Editor shows something like this: > connectAttr -f ramp1.outColor my_material.normalMapSamplerTexture; > > The maya.cmds equivalent is > cmds.connectAttr('ramp1.outColor', 'my_material.normalMapSamplerTexture', > f=True) > or in PyMel > pm.connectAttr('ramp1.outColor', 'my_material.normalMapSamplerTexture', f= > True) > or if you have PyMel nodes for your materials, or even PyMel attr objects, > you can use the >> operator to connect them (assuming you don't need the > 'f' switch): > pm.PyNode('ramp1').attr('outColor') >> pm.PyNode('my_material').attr( > 'normalMapSamplerTexture') > > > On Tuesday, 26 June 2018 15:34:34 UTC+10, AMAL ARJUN wrote: >> >> This is working fine. But can you give me one more example to connect >> something to an attribute? for example, if I want to connect a ramp or >> aiNoise to weight. Thanks in advance. >> >> On Tuesday, June 26, 2018 at 9:39:16 AM UTC+5:30, Michael Boon wrote: >>> >>> I don't have Arnold installed here so I can't help a whole lot, but I >>> can use very similar script to set "diffuse" on a Lambert material. This >>> works for me: >>> import pymel.core as pm >>> name = 'CHROME' >>> shaderType = 'lambert' >>> name = pm.shadingNode(shaderType, asShader=True, name=name) >>> sg = pm.sets(renderable=True, noSurfaceShader=True, empty=True, name= >>> '%sSG' %(name)) >>> pm.setAttr('%s.diffuse' %(name),0.25) >>> >>> I'd be looking at the attribute name. Is 'kd' a valid attribute on a >>> aiStandard material node? Maybe create the node and set the attribute using >>> Hypershade, then look in the Script Editor and see what MEL commands have >>> been printed. >>> >>> >>> On Tuesday, 26 June 2018 13:46:39 UTC+10, AMAL ARJUN wrote: >>>> >>>> Not working. Still getting an error "# MayaAttributeError: Maya >>>> Attribute does not exist (or is not unique):: u'CHROME3.kd' # " >>>> >>>> >>>> Script here: >>>> >>>> def createShader(shaderType='aiStandard', name='CHROME', shaderOutput = >>>> 'sg'): >>>> >>>> >>>> >>>> #pm.setAttr('%s.%s.kd' %(name,shaderOutput),0.25) >>>> if name == '': >>>> name = shaderType >>>> name = pm.shadingNode(shaderType, asShader=True, name=name) >>>> sg = pm.sets(renderable=True, noSurfaceShader=True, empty=True, >>>> name='%sSG' %(name)) >>>> pm.setAttr('%s.kd' %(name),0.25) >>>> >>>> >>>> >>>> please help >>>> >>>> On Friday, June 22, 2018 at 5:25:17 PM UTC+5:30, vince touache wrote: >>>>> >>>>> def createShader(shaderType='aiStandard', name='CHROME'): >>>>> name = pm.shadingNode(shaderType, asShader=True, >>>>> name=name or shaderType) >>>>> sg = pm.sets(renderable=True, noSurfaceShader=True, >>>>> empty=True, name='%sSG' %(name)) >>>>> pm.setAttr('%s.weight' %(name),0.25) >>>> >>>> -- You received this message because you are subscribed to the Google Groups "Python Programming for Autodesk Maya" group. To unsubscribe from this group and stop receiving emails from it, send an email to python_inside_maya+unsubscr...@googlegroups.com. To view this discussion on the web visit https://groups.google.com/d/msgid/python_inside_maya/6ccf3769-2f61-48ee-b085-538ea0575efa%40googlegroups.com. For more options, visit https://groups.google.com/d/optout.