【问题标题】:In Maya, how to query the world space coordinates of the control points of a curve using MELMaya中如何使用MEL查询曲线控制点的世界空间坐标
【发布时间】:2013-02-12 20:24:58
【问题描述】:

我使用 EP 曲线工具创建了一条曲线。然后我尝试使用以下 MEL 命令查询这条曲线的控制点的世界空间坐标:

createNode curveInfo;
connectAttr curveShape1.worldSpace curveInfo1.inputCurve;
getAttr "curveInfo1.cp[*]";

但它只是打印出对象空间中的 cv 坐标,结果如下:

// Result: 0 0 0 1 0 0 2 0 0 3 0 0 //

根据 Maya 文档,“curve”命令可用于查询世界空间位置,这是文档中的 sn-p:

createNode 曲线信息;

connectAttr curveShape1.worldSpace curveInfo1.inputCurve;

getAttr “curveInfo1.knots[*]”;

// 这个序列创建一个曲线信息节点,将信息节点连接到 曲线并使用曲线信息节点查询曲线的节点向量。 您可以使用曲线信息节点来查询其他属性,例如 世界空间 CV 值和弧长。

如何使用“曲线”命令查询世界空间位置?

我也尝试使用“xform”命令,但它似乎不适用于我的曲线。结果是这样的:

xform -q -t -ws curve1;
// Result: 0 0 0 //

【问题讨论】:

  • xform 命令按预期工作,它给出了形状对象变换节点的变换。注意:curve1 不是曲线节点的名称,而是变换的名称。 Maya 只是通过该节点有一些别名快捷方式,以便更好地从艺术家的角度处理数据。

标签: maya mel


【解决方案1】:

最简单的方法是使用pointPosition 命令例如:

pointPosition -w object.ep[1] 

点位置适用于任何点属性 ep、cv、uv、pt 等。但一次只能查询一个点,因此您需要循环。

节点没有任何世界或局部空间坐标的概念(很难改变空间),只有原始数据坐标。结不是您所寻找的坚韧结定义曲线的参数化方式。一般来说,Maya 文档对于初学者来说有点难以阅读,因为 Maya 在对象访问器模型上运行。所以命令和操作不一定会做你认为他们会做的事情。相当多的命令是对某物的访问者,它们只对它们作为访问者的对象进行操作。曲线命令没有可征服的属性,因此无法查询。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-13
    相关资源
    最近更新 更多