Maya Python在重命名节点上



我正在尝试加快玛雅python的速度,所以我一直在阅读这本书(http://www.maya-python.com/)它...我在一个部分(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语句停止该功能并立即返回值。

#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']

最新更新