Maya Mel Script - 如何获得模型的底线?

时间:2018-06-08 09:02:21

标签: mel

如何通过Mel脚本获得模型的底线? Maya Bottom Point

如果我能得到底点的Y坐标,我可以得到底部的点,但我无法弄清楚如何得到它。

2 个答案:

答案 0 :(得分:0)

  

如果我能得到底点的Y坐标,我可以得到底部的点,但我无法弄清楚如何得到它。

我弄明白:底点的Y坐标=模型最低顶点的Y坐标。所以这样做:循环遍历所有顶点以获得最低的顶点。

假设目标对象是:“pCube1”。这是获得最低Y的代码。

int $vtxIdx;
int $vCount[] = `polyEvaluate -vertex pCube1`; //Get vertex count
float $lowestY = 2147483647.0;
float  $crtY = 0.0;
for ($vtxIdx = 0; $vtxIdx < $vCount[0]; $vtxIdx++)//Loop through vetex
{
    float $pos[] = `xform -q -ws -t ("pCube1.vtx["+$vtxIdx+"]")`;//Get vertex position
    $crtY = $pos[1];
    if($crtY < $lowestY)
    {
        $lowestY = $crtY;//Get the lowest Y
    }
}
print ($lowestY);

所以最低点=(pCube1.X,最低Y,pCube1.Z)。

答案 1 :(得分:0)

循环遍历所有顶点可能很慢,尤其是对于密集网格。可以做的是使用对象的边界框:

float $bb[] = `getAttr pCube1.boundingBoxMin`;
print($bb[1]); // Lowest position in Y

这样做的另一个好处是您不依赖于顶点,因此它不必是多边形网格。