我试图让maya检查列出的对象是否是blendshape节点。在
这是我的代码:
def bake(self, *args):
self.items["selection"] = cmds.ls(sl = True)
self.items["shapes"] = cmds.listRelatives(self.items["selection"], ad = True)
shapes = ()
for i in self.items["shapes"]:
bs = cmds.listConnections(i, type = "blendShape", exactType = True)
if cmds.objectType(bs, isType = "blendShape"):
print bs
它返回# Error: RuntimeError: file X:/Documents/maya/scripts\jtBakeCharacter.py line 16: No object name specified
第16行是:if cmds.objectType(bs, isType = "blendShape"):
除了指定一个对象名之外,该对象名是bs。。我已经打印了bs的结果,它列出了许多对象。很多。在
你可以试试这个:
代码是多余的。你不需要大部分的台词。listConnections已经确保只有blendshape。确切的问题是,你打电话的对象是:
对于一些额外的形状。这是违法的。但大多数情况下,您的代码可以封装如下:
^{pr2}$但这可能不能完美地抓住你的意图,但却显示出你可能会采取额外的步骤。实际上,如果命令.objectType(bs,isType=“blendShape”):任何东西
Joojaa的答案很优雅,但是您可以使用默认的选择行为将其缩短:
(为了使它更短,我没有检查选择,所以如果没有选择,这个就失败了)。在
注:如果你需要从上游形状中得到混合形状,而不是变形形状,你可以使用listHistory(f=True)
相关问题 更多 >
编程相关推荐