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.

Reply via email to