在迭代Maya场景中的节点(多个资源上的多个几何)时,我setting blendShape targets如下:
pm.blendShape(blendshape, edit=True, target=(mesh, target_index, corrective, 1.0))
有时它会起作用,有时我会收到以下错误:
对象不允许别名' corrective_name'要设置。可能是因为该名称的属性已经存在。
...其中 corrective_name 是nt.Transform corrective
的名称。我在blendshape
节点上找不到具有该名称的属性,因此不能成为原因。强制corrective
的值为随机废话(试图保证不会发生冲突),会导致同样的错误。
这种失败的其他原因是什么?
注意:可见的副作用(或原因?)是在调用工作的blendShapes上,我可以看到名称与修正名称匹配的权重。在调用失败的blendShapes上,权重称为weight[0]
,weight[1]
,weight[2]
,依此类推。
注意2:保存.ma文件然后第一次加载后,似乎(某些)属性别名失败。加载后,某些对象的权重属性显示为weight[0]
而不是actualName
。同一个对象一致地失败(该对象上的属性的别名总是失败,其他对象上的别名永远不会失败)。这意味着pm.blendShape
在第一个会话中对该对象成功,但每次加载场景后都会失败。然后,新创建的属性也称为weight[X]
。 (Example of alias failure in a completely different context.)
如果资产(包含多个对象)被导入到场景中,只有在引用它时才会发生这种情况。
资产别名正常工作(首次创建时,以及导入资产时):
资产别名失败(第一次加载资产引用和保存的场景时):