我觉得这应该很容易,但我所有的寻找都是徒劳的。在
我在玛雅,我有一系列的对象,它们的名字以_LOC结尾,我想运行一个python脚本,将它们重命名为以_JNT结尾。我设法让它在单个对象上工作,但for循环只执行第一个对象,然后停止。以下是我目前所掌握的情况:
import maya.cmds as mc
sel=mc.ls(selection=True)
for each in sel:
item=sel[0]
newname=item.split('_')
mc.rename(newname[0]+'_JNT')
Tags:
因为玛雅.cmds使用与mel相同的方法处理字符串,如果重命名子节点的父节点,则脚本可能会失败,因为子节点的全名在Maya中更改,但不会在选择列表中更改。这在很大程度上取决于你的设置。在
我建议改用pymel,因为它依赖mobject而不是字符串:
你实际上没有使用你的循环。您只需要使用循环变量
each
,您当前引用的是选择:其他人已经正确地解决了您代码中的错误。在
Maya在修改->搜索和替换名称下还有一个内置工具来执行此操作。它正是你的代码所做的。它还可以替换场景中的所有名称,或仅替换您的选择。在
相关问题 更多 >
编程相关推荐