안녕하세요.
애니메이터가 들려주는 맥스 스크립트의 스크립팅하는 애님입니다.
오늘도 오브젝트의 Transform에 대해서 얘기해 보도록 하겠습니다.
coordsys
coordsys는 맥스의 여러 가지 축을 선택할 수 있도록 합니다.
맥스의 다음과 같은 역활을 한다고 생각하시면 됩니다.
종류로는
coordsys world : 월드 기준의 값을 사용합니다.
coordsys local : 로컬 기준의 값을 사용합니다.
coordsys parent : 부모 기준의 값을 사용합니다.
coordsys grid : 그리드 기준의 값을 사용합니다.
coordsys screen : 스크린 기준의 값을 사용합니다.
coordsys 노드 : 선택한 노드 기준의 값을 사용합니다.
가 있습니다.
그냥 이렇게 보면 어떻게 쓰는지를 알 수 없으니 예를 하나 들어 보겠습니다.
우선 맥스 뷰포트 창에 박스와 스피어를 만들고 스피어를 박스의 자식으로 링크를 건 후에 스피어를 선택합시다.
스크립트로 만들으셔도 되고 그냥 직접 만드셔도 됩니다.(대충 만드시면 됩니다.)
그 후에 스피어를 월드 축에서 위치 값을 확인해 봅시다.
저는 월드 축 기준으로 위와 같이 위치 값이 나왔습니다.
다음과 같이 적어서 실행해 봅시다.
부모(박스) 축 기준으로 위치 값을 확인해 보니 [11.0981,-87.5025,0]라고 나옵니다.
정말 그런지 맥스 축의 기준을 Parent로 변경하고 나온 값을 확인해 봅시다.
동일한 값이 나왔습니다.
여러분도 동일하게 나왔나요?
한 가지 더 확인해 보도록 하겠습니다.
우선 박스를 x축으로 45도 회전시키겠습니다.
1
|
rotate $'Box001' (eulerAngles 45 0 0)
|
cs |

이상태에서 y축을 기준으로 회전을 하고 싶다면 비스듬히 회전을 하기 때문에 월드 축 기준으로 회전시켜서는 불가능할 정도로 어렵습니다.
그렇때 coordsys local을 사용하여 회전시킵니다.
(꼭 회전뿐만 아니라 이동, 크기에서도 요긴하게 쓰입니다.)
이어서 다음과 같이 입력하고 라인 실행을 하여 로컬 축으로 회전해 봅시다.
네 y축을 기준으로 비스듬히 60도 회전했습니다.
방금 입력한 라인의 내용을 확인해 봅시다.
coordsys local는 로컬축 기준으로 한다는 얘기고,
rotate를 이용해서 회전을 시킵니다.
그 다음에 노드가 와야 하는데 이전까지는 오브젝트를 만들면서 변수에 저장했기 때문에 변수가 노드로 대체됐습니다.
$'Box001'를 풀이하면 Box001이라는 이름을 가진 오브젝트를 얘기하는 것입니다.
그리고 그 오브젝트를 (eulerAngles 0 60 0)를 이용하여 회전하는 것입니다.
이처럼 필요에 따라 자신이 원하는 축을 선택하여 작업을 진행할 수 있습니다.
다른 것들도 필요에 따라 테스트하시고 익숙해 지시기 바랍니다.
다음에는 오브젝트에 사용할 수 있는 옵션에 대해서 이야기해보겠습니다.
'맥스스크립트 기초' 카테고리의 다른 글
함수(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 |