Saturday, July 11, 2009

MEL 의 move 명령 메모 Set Position

MEL 에서 헷갈리기 쉬운 것이 move 명령의 플래그 -wd 와 -os 등이다. -a 와 -r, -wd, -os 등을 정리해보자.

move 명령은 주로 다음과 같이 쓴다.

물체를 절대좌표 원점으로 옮기기

  • move -a 0 0 0 $obj; // -a 는 -absolute 의 약자.

물체를 vector로 나타낸 절대좌표 $pos 로 옮기기

  • move -a ($pos.x) ($pos.y) ($pos.z) $obj;

물체를 현재위치에서 relative하게 object space 기준으로 z축 -3 만큼 이동

  • move -relative -objectSpace -worldSpaceDistance 0 0 -3 $obj;
  • move -r -os -wd 0 0 -3 $obj; // (위와 동일)

-worldSpaceDistance 라는 플래그는 object space 에서 scale 등이 적용되었을 때 world space 내의 distance 와 object space 내의 distance 가 다르기 때문에 사용된다.

Object space 단위의 distance 로 움직이려면 -wd 를 빼고 다음과 같이 하면 된다. Scale 하고 rotate 한 오브젝트로 시험해보면 쉽게 알 수 있다.

  • move -r -os 0 0 -3 $obj;

주의할점은 물체를 월드 상의 특정 위치에 위치시키려할때

  • setAttr ($obj + ".translateX") ($pos.x); setAttr ($obj + ".translateY") ($pos.y); setAttr ($obj + ".translateZ") ($pos.z);

와 같이 하지 말고 move 명령을 -a 플래그와 함께 써야 쓰라는 것이다. 또는 MMM 의

  • GeomUtil_SetPos();

를 쓰면 편하다.

No comments:

Post a Comment