在Maya中,如何使用MEL查询曲线控制点的世界空间坐标

时间:2013-02-27 05:54:43

标签: maya mel

我使用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”命令可用于查询世界空间位置,这里是文档的片段:

  

createNode curveInfo;

     

connectAttr curveShape1.worldSpace curveInfo1.inputCurve;

     

getAttr“curveInfo1.knots [*]”;

     

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

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

我也试过使用“xform”命令,但似乎它对我的曲线不起作用。结果如下:

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

1 个答案:

答案 0 :(得分:2)

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

pointPosition -w object.ep[1] 

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

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