I tried using that for an attribute that I have called .iorFr (index of
refraction fresnel) and while it did return the uber_surface1/2/3 it wont
specifiy which of those shaders belongs to which object. If I use
cmds.ls("*.iorFr", sl=1)
it returns an empty list. I got rid of the mat=true because the node doesnt
get picked up as a maya material.
Now, for example, if I have 3 objs in the scene, each with a unique
uber_surface and I select two of them (plane and a sphere) and I want to
get the correct attached shader. If I do this I get all the uber_surfaces
in the scene, but no specifics.
import maya.cmds as cmds
objNames = cmds.ls(sl=1)
for i in objNames:
print i
selected_uber_surface = cmds.ls("*.iorFr")
print selected_uber_surface
pSphere3
[u'uber_surface3.iorFr', u'uber_surface2.iorFr', u'uber_surface1.iorFr']
plane
[u'uber_surface3.iorFr', u'uber_surface2.iorFr', u'uber_surface1.iorFr']
if I do this and try to drill down to the selected obj in the list
import maya.cmds as cmds
objNames = cmds.ls(sl=1)
for i in objNames:
print i
selected_uber_surface = cmds.ls("*.iorFr", sl=1)
print selected_uber_surface
pSphere3
[]
plane
[]
On Wednesday, October 24, 2012 4:39:52 AM UTC-4, Jesse Capper wrote:
>
> Is the uber_surface a plugin node? Does it have a unique nodeType? If so
> you can look up nodes of that nodeType.
>
> You wouldn't want to use .diffuse in that ls lookup since it's a common
> attribute shared by multiple materials. You can add your own attribute to a
> shader though, like .myUberSurface, and use that to identify the shader.
>
> Then this will return just that shader:
> cmds.ls("*.myUberSurface", o=True, mat=True)
>
>>
>>>
--
view archives: http://groups.google.com/group/python_inside_maya
change your subscription settings:
http://groups.google.com/group/python_inside_maya/subscribe