Maya Python 关于重命名节点
Maya Python on Renaming Nodes
我正在尝试快速了解 Maya Python 所以我一直在阅读这本书 (http://www.maya-python.com/) 有它的在线 pdf...我在部分(For 语句)我没有得到正确的结果,但我也没有收到任何错误。如果有人能看到这个并告诉我是什么导致了这个问题,那就太好了。
所以它创建了 3 个文件节点,并且应该重命名所有 3 个节点以具有前缀 'dirt_'。但它只重命名 'file1' 而不是其他两个节点
过程如下:
#The FOR statement
import maya.cmds;
def process_all_textures(**kwargs):
pre = kwargs.setdefault('prefix', 'my_');
textures = kwargs.setdefault('texture_nodes');
new_texture_names = [];
for texture in textures:
new_texture_names.append(
maya.cmds.rename(
texture,
'%s%s'%(pre, texture)
)
);
return new_texture_names;
#create new Maya scene & list 3 file nodes & print their names
maya.cmds.file(new=True, f=True);
textures = [];
for i in range(3):
textures.append(
maya.cmds.shadingNode(
'file',
asTexture=True
)
);
print(textures);
#pass new texture list to process_all_textures() func and print resulting names
new_textures = process_all_textures(
texture_nodes = textures,
prefix = 'dirt_'
);
print(new_textures);
[u'file1', u'file2', u'file3']
[u'dirt_file1']
行 return new_texture_names
必须缩进四个空格(而不是八个)。
在你的情况下 return
语句停止函数并立即 returns 值。
#The FOR statement
import maya.cmds as mc
def process_all_textures(**kwargs):
pre = kwargs.setdefault('prefix', 'my_')
textures = kwargs.setdefault('texture_nodes')
new_texture_names = []
for texture in textures:
new_texture_names.append(mc.rename(texture,'%s%s'%(pre, texture)))
return new_texture_names
#create new Maya scene & list 3 file nodes & print their names
mc.file(new=True,f=True)
textures = []
for i in range(3):
textures.append(mc.shadingNode('file',asTexture=True))
print(textures)
#pass new texture list to process_all_textures() func and print resulting names
new_textures = process_all_textures(texture_nodes = textures,prefix = 'dirt_')
print(new_textures)
[u'file1', u'file2', u'file3']
[u'dirt_file1']
我正在尝试快速了解 Maya Python 所以我一直在阅读这本书 (http://www.maya-python.com/) 有它的在线 pdf...我在部分(For 语句)我没有得到正确的结果,但我也没有收到任何错误。如果有人能看到这个并告诉我是什么导致了这个问题,那就太好了。
所以它创建了 3 个文件节点,并且应该重命名所有 3 个节点以具有前缀 'dirt_'。但它只重命名 'file1' 而不是其他两个节点
过程如下:
#The FOR statement
import maya.cmds;
def process_all_textures(**kwargs):
pre = kwargs.setdefault('prefix', 'my_');
textures = kwargs.setdefault('texture_nodes');
new_texture_names = [];
for texture in textures:
new_texture_names.append(
maya.cmds.rename(
texture,
'%s%s'%(pre, texture)
)
);
return new_texture_names;
#create new Maya scene & list 3 file nodes & print their names
maya.cmds.file(new=True, f=True);
textures = [];
for i in range(3):
textures.append(
maya.cmds.shadingNode(
'file',
asTexture=True
)
);
print(textures);
#pass new texture list to process_all_textures() func and print resulting names
new_textures = process_all_textures(
texture_nodes = textures,
prefix = 'dirt_'
);
print(new_textures);
[u'file1', u'file2', u'file3']
[u'dirt_file1']
行 return new_texture_names
必须缩进四个空格(而不是八个)。
在你的情况下 return
语句停止函数并立即 returns 值。
#The FOR statement
import maya.cmds as mc
def process_all_textures(**kwargs):
pre = kwargs.setdefault('prefix', 'my_')
textures = kwargs.setdefault('texture_nodes')
new_texture_names = []
for texture in textures:
new_texture_names.append(mc.rename(texture,'%s%s'%(pre, texture)))
return new_texture_names
#create new Maya scene & list 3 file nodes & print their names
mc.file(new=True,f=True)
textures = []
for i in range(3):
textures.append(mc.shadingNode('file',asTexture=True))
print(textures)
#pass new texture list to process_all_textures() func and print resulting names
new_textures = process_all_textures(texture_nodes = textures,prefix = 'dirt_')
print(new_textures)
[u'file1', u'file2', u'file3']
[u'dirt_file1']