我一直试图让它工作这么长时间,我已经阅读了文档here,但我似乎无法理解如何实现GeometryConstraint。
通常,其衍生版本为:
geometryConstraintNode = pm.geometryConstraint(target, object)
然而,在Pymel中,设置属性看起来好一点,这就是我想使用它的原因,因为它更具可读性。
我试过这个:
geometryConstraintNode = nt.GeometryConstraint(target, object).setName('geoConstraint')
但没有运气,有人可以看看吗?
香农
答案 0 :(得分:2)
这对你不起作用?
import pymel.core as pm
const = pm.geometryConstraint('pSphere1', 'locator1', n='geoConstraint')
print const
const.rename('fred')
print const
输出
geoConstraint
fred
和名为'fred'的约束对象。
pymel节点是从 pm.animation.geometryConstraint 中定义的命令返回的返回值。它返回的是实际场景内约束的类包装器,它在 pm.nodetypes.GeometryConstraint 中定义。这是您可以进行所有属性设置等的类版本;命令版本与maya.cmds中的相同内容匹配,有时会添加少量语法糖。
在这种情况下,pymel节点就像任何其他pymel节点一样,因此renamimg之类的东西使用从DagNode继承的相同'.rename'功能。您还可以使用从Transform继承的函数,例如'getChildren()'或'setParent()'文档通过在nodetype页面的顶部包含继承树,以循环方式清除它。基本上所有的pynode返回将至少共享DagNode(像命名一样的东西),通常是Transform(像移动,旋转,父类)或Shape(查询组件等)