소스 코드에서 내가 짠 부분의 Tip 을 간략하게 정리하고자 한다.
1. 특정한 오브젝트를 생성한 다음, 그 오브젝트의 이름을 바꾸어주기
string $bbcmd = "polyCube -ch on -o on -w " + $fx + " -h " + $fy + " -d " + $fz + " -cuv " + 4;
string $bbname[] = eval($bbcmd);
rename $bbname[0] "BBB";
2. Bounding Box 를 그리는 Template 함수를 만들었다.
global proc makeBBTemplate(string $name, int $tx, int $ty, int $tz, int $rx, int $ry, int $rz)
{
float $nx = `intSliderGrp -q -value cellY`;
float $ny = `intSliderGrp -q -value cellZ`;
float $nz = `intSliderGrp -q -value cellX`;
string $bbCmd;
if($name == "LEFT" || $name == "RIGHT")
{
$bbCmd = "polyPlane -w " + $nx + " -h " + $ny + " -sx 1 -sy 1";
}
else if($name == "FRONT" || $name == "BACK")
{
$bbCmd = "polyPlane -w " + $nz + " -h " + $nx + " -sx 1 -sy 1";
}
else if($name == "TOP" || $name == "BOTTOM")
{
$bbCmd = "polyPlane -w " + $nz + " -h " + $ny + " -sx 1 -sy 1";
}
string $bbname[] = eval($bbCmd);
rename $bbname[0] $name;
if(eval("objExists " + " " + $name))
{
select $name;
string $move = "move -x " + $nz/2.0*($tx) + " -y " + $nx/2.0*($ty) + " -z " + $ny/2.0*($tz);
string $rotate = "rotate -x " + $rx + " -y " + $ry + " -z " + $rz;
eval($move);
eval($rotate);
}
string $tx_lock = $name + ".tx";
string $ty_lock = $name + ".ty";
string $tz_lock = $name + ".tz";
string $rx_lock = $name + ".rx";
string $ry_lock = $name + ".ry";
string $rz_lock = $name + ".rz";
string $sx_lock = $name + ".sx";
string $sy_lock = $name + ".sy";
string $sz_lock = $name + ".sz";
setAttr -lock true $tx_lock;
// string 을 만든 후, 내가 원하는 attribute 를 받아서 그것을 Lock 시키는 코드.
setAttr -lock true $ty_lock;
setAttr -lock true $tz_lock;
setAttr -lock true $rx_lock;
setAttr -lock true $ry_lock;
setAttr -lock true $rz_lock;
setAttr -lock true $sx_lock;
setAttr -lock true $sy_lock;
setAttr -lock true $sz_lock;
string $bbTextCurve = "textCurves -t " + $name;
string $bbTextCurveName[] = eval($bbTextCurve);
string $CurveName = $name + "Curve";
rename $bbTextCurveName[0] $CurveName;
if(eval("objExists " + " " + $CurveName)) // 함수 내부에는 이런 식으로 써줄 수 있다.
{
select $CurveName;
string $move = "move -x " + $nz/2.0*($tx)*(1.1) + " -y " + $nx/2.0*($ty)*(1.1) + " -z " + $ny/2.0*($tz)*(1.1);
string $rotate, $move2;
if($name == "LEFT")
{
$rotate = "rotate -y -90";
$move2 = "move -z -5.6 ";
}
else if($name == "RIGHT")
{
$rotate = "rotate -y 90";
$move2 = "move -z 6.5";
}
else if($name == "TOP")
{
$rotate = "rotate -x -90";
$move2 = "move -x -4.7";
}
else if($name == "BOTTOM")
{
$rotate = "rotate -x 90";
$move2 = "move -x -9.6";
}
else if($name == "BACK")
{
$rotate = "rotate -y 180";
$move2 = "move -x 6.6";
}
else if($name == "FRONT")
$move2 = "move -x -7.7";
eval($move);
eval($move2);
eval($rotate);
}
}
ThEnd.