我使用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 //
答案 0 :(得分:2)
最简单的方法是使用pointPosition命令,例如:
pointPosition -w object.ep[1]
点位置适用于任何点属性ep,cv,uv,pt等。但是一次只能查询一个点,因此需要循环。
节点没有任何世界或局部空间坐标的概念(很难改变空间),只是原始数据坐标。结是不是你寻找艰难的结来定义曲线如何参数化。通常,Maya文档对于初学者来说有点难以阅读,因为Maya在对象访问器模型上运行。因此,命令和操作不一定按照你的想法行事。相当多的命令是某些东西的访问者,它们只对它们所访问的对象进行操作。曲线命令没有可征服的属性,因此无法查询。