0

我一直试图让它工作这么久,我已经阅读了这里的文档,但我似乎无法理解如何实现 GeometryConstraint。

通常,它的衍生版本是:

geometryConstraintNode = pm.geometryConstraint(target, object)

但是,在 Pymel 中,设置属性时它看起来更好一些,这就是我想使用它的原因,因为它更具可读性。

我试过这个:

geometryConstraintNode = nt.GeometryConstraint(target, object).setName('geoConstraint')

但是没有运气,有人可以看看吗?

香农

4

1 回答 1

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 节点一样,所以像 renaming 这样的东西使用从 DagNode 继承的相同的“.rename”功能。您还可以使用从 Transform 继承的函数,例如 'getChildren()' 或 'setParent()' 文档通过在节点类型页面的顶部包含继承树以一种迂回的方式清楚地说明了这一点。基本上所有pynode返回将至少共享DagNode(命名之类的东西),通常是Transform(移动,旋转,父级之类的东西)或Shape(查询组件等)

于 2013-08-23T05:13:42.287 回答