在MEL中,如何仅在一个方向上转换对象?

时间:2014-10-30 14:21:35

标签: 3d maya mel

我想编写一个脚本,它将采用多个对象,将各自的枢轴居中,然后将y中的枢轴转换为0。

以下是我目前尝试的两种变体:

string $sel[] = `ls -sl -typ transform`;
string $obj;

for ($obj in $sel) {
    CenterPivot
    setAttr ($obj + ".scalePivot") -ty 0;
    setAttr ($obj + ".rotatePivot") -ty 0;
}

string $sel[] = `ls -sl -typ transform`;
string $obj;

for ($obj in $sel) {
    xform -cp;
    xform -piv 0 -0.098814 0;
}

在第二个脚本中,平移y移动到零(从起始位置开始-0.098814)但是z和x移动远离源对象的中心。

2 个答案:

答案 0 :(得分:0)

string $sel[] = `ls -sl -typ transform`;
string $obj;
for ($obj in $sel)
{
    xform -ws -cp;
    xform -ws -piv 0 -0.098814 0;
}

我认为,添加世界空间将解决您的问题。

答案 1 :(得分:0)

如果我理解正确的话:

for( $i in `ls -sl`){
    select $i; 
    xform -ws -cp;
    $p = `xform -q -piv -ws`;
    xform -ws -piv $p[0] 0 $p[2];}