맥스스크립트 기초

오브젝트의 Transform (4)

스크립팅하는애님 2019. 7. 17. 16:30
728x90
반응형

안녕하세요.

애니메이터가 들려주는 맥스 스크립트의 스크립팅하는 애님입니다.

오늘도 오브젝트의 Transform에 대해서 얘기해 보도록 하겠습니다.

 

coordsys

coordsys는 맥스의 여러 가지 축을 선택할 수 있도록 합니다.

맥스의 다음과 같은 역활을 한다고 생각하시면 됩니다.

 

 

종류로는 

coordsys world : 월드 기준의 값을 사용합니다.

coordsys local : 로컬 기준의 값을 사용합니다.

coordsys parent : 부모 기준의 값을 사용합니다.

coordsys grid : 그리드 기준의 값을 사용합니다.

coordsys screen : 스크린 기준의 값을 사용합니다.

coordsys 노드 : 선택한 노드 기준의 값을 사용합니다.

가 있습니다.

 

그냥 이렇게 보면 어떻게 쓰는지를 알 수 없으니 예를 하나 들어 보겠습니다.

우선 맥스 뷰포트 창에 박스와 스피어를 만들고 스피어를 박스의 자식으로 링크를 건 후에 스피어를 선택합시다.

스크립트로 만들으셔도 되고 그냥 직접 만드셔도 됩니다.(대충 만드시면 됩니다.)

 

 

그 후에 스피어를 월드 축에서 위치 값을 확인해 봅시다.

 

 

저는 월드 축 기준으로 위와 같이 위치 값이 나왔습니다.

다음과 같이 적어서 실행해 봅시다.

 

1
coordsys parent $.pos
cs

 

 

부모(박스) 축 기준으로 위치 값을 확인해 보니 [11.0981,-87.5025,0]라고 나옵니다.

정말 그런지 맥스 축의 기준을 Parent로 변경하고 나온 값을 확인해 봅시다.

 

Parent로 변경합니다.

 

값을 확인해 봅시다.

 

동일한 값이 나왔습니다.

여러분도 동일하게 나왔나요?

 

한 가지 더 확인해 보도록 하겠습니다.

우선 박스를 x축으로 45도 회전시키겠습니다.

 

1
rotate $'Box001' (eulerAngles 45 0 0)
cs

 

저는 Local축으로 선택 했습니다.

 

이상태에서 y축을 기준으로 회전을 하고 싶다면 비스듬히 회전을 하기 때문에 월드 축 기준으로 회전시켜서는 불가능할 정도로 어렵습니다.

그렇때 coordsys local을 사용하여 회전시킵니다.

(꼭 회전뿐만 아니라 이동, 크기에서도 요긴하게 쓰입니다.)

 

이어서 다음과 같이 입력하고 라인 실행을 하여 로컬 축으로 회전해 봅시다.

 

1
coordsys local rotate $'Box001' (eulerAngles 0 60 0)
cs

 

 

네 y축을 기준으로 비스듬히 60도 회전했습니다.

방금 입력한 라인의 내용을 확인해 봅시다.

coordsys local는 로컬축 기준으로 한다는 얘기고,

rotate를 이용해서 회전을 시킵니다.

그 다음에 노드가 와야 하는데 이전까지는 오브젝트를 만들면서 변수에 저장했기 때문에 변수가 노드로 대체됐습니다.

$'Box001'를 풀이하면 Box001이라는 이름을 가진 오브젝트를 얘기하는 것입니다.

그리고 그 오브젝트를 (eulerAngles 0 60 0)를 이용하여 회전하는 것입니다.

 

이처럼 필요에 따라 자신이 원하는 축을 선택하여 작업을 진행할 수 있습니다.

다른 것들도 필요에 따라 테스트하시고 익숙해 지시기 바랍니다.

 

다음에는 오브젝트에 사용할 수 있는 옵션에 대해서 이야기해보겠습니다.

728x90
반응형

'맥스스크립트 기초' 카테고리의 다른 글

함수(2)  (0) 2019.08.12
함수(1)  (3) 2019.08.11
Color Values  (0) 2019.08.02
오브젝트의 옵션  (0) 2019.07.18
오브젝트의 Transform (3)  (3) 2019.07.16
오브젝트의 Transform (2)  (0) 2019.07.15
오브젝트의 Transform (1)  (2) 2019.07.14
기본 오브젝트 만들기  (1) 2019.07.12