맥스스크립트 기초 52

함수(2)

안녕하세요. 애니메이터가 들려주는 맥스 스크립트의 스크립팅하는 애님입니다. 지난번에 이어 오늘도 함수에 대해서 이야기해보겠습니다. 지난번에 예제로 사용했던 함수는 rturn문을 생략하고 사용해도 된다고 이야기했습니다. 하지만 꼭 리턴 문을 써야 할 경우도 있습니다. 함수를 꼭 다 실행하지 않고 특정 결과가 나왔을 때 함수를 멈추고 값을 넘겨줘야 하는 경우가 그런 경우입니다. 보드게임에서 주사위의 숫자가 6이 나올 때만 살고 나머지는 죽는다면 다음과 같이 해볼 수 있습니다. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 rollout Dice_Roll "Test!" ( fn DoA_fn num = ( if(num == 6) do return true ret..

함수(1)

안녕하세요. 애니메이터가 들려주는 맥스 스크립트의 스크립팅하는 애님입니다. 지난번에 UI이야기 중에 함수에 대해서 이야기가 나왔는데요. 맥스 스크립트에서 함수의 사용 방법은 정확하게 이야기한 적이 없습니다. 그래서, 오늘은 맥스의 함수에 대해 이야기해 볼까 합니다. 함수는 어떤 값을 입력 받아 그 값을 가공하여 반환하는 것을 말합니다. 알쏭달쏭하게 설명이 됐는데 예를 하나 들어 보겠습니다. 햄버거 가게에서 돈과 함께 원하는 햄버거를 주문하면 가게의 주방에서 내용에 맞춰 햄버거를 만들어 줍니다. 여기서 '돈과 주문'이 '입력 값'이고 '햄버거를 만드는 과정'이 가공이며, '햄버거'가 '반환'입니다. 스크립트를 작업하면 대부분이 '값을 입력하고 공정하고 출력하는'과정입니다. 그런데 함수를 따로 구분지어서 만..

Color Values

안녕하세요. 애니메이터가 들려주는 맥스 스크립트의 스크립팅하는 애님입니다 지난번에 맥스스크립트 기본에서 checkbutton을 이야기하다가 color에 대해서 알아 볼기회가 생겨 여기 기초 게시판에 글을 쓰게 됐습니다. 앞으로도 종종 필요에 따라 게시판을 넘어 다니며 작성을 하도록 하겠습니다. 맥스에서는 색상을 표현하기 위해 color형을 따로 가지고 있습니다. 기본적으론 point3형식(3개의 값을 가지는 형식)을 사용하며 지정된 이름으로 표현되기도 합니다. 뭔 소린지는 천천히 확인해 보겠습니다. 우선 다음과 같이 박스를 만들고 wirecolor가 어떤 색인지 알아봅시다. 1 2 myBox = box() myBox.wirecolor cs 뷰포트에 박스가 생성되고 MAXScript Listener에 위 ..

오브젝트의 옵션

안녕하세요. 애니메이터가 들려주는 맥스 스크립트의 스크립팅하는 애님입니다. 오늘은 오브젝트의 여러 가지 옵션에 대해서 알아보겠습니다. 우선 저는 뷰포트에서 다음과 같이 오브젝트를 만들었습니다. 2개 이상만 있으면 되니 적당히 만들어 줍시다. 저는 더미까지 3개를 만들었습니다. 맥스 스크립트로 오브젝트(노드)를 지칭할 때는 $'오브젝트 이름'이라고 하면 됩니다. 우선 박스를 숨겨 볼까요? 제가 만든 박스 이름은 Box001이기 때문에 저는 다음과 같이 적겠습니다. 1 hide $'Box001' cs 아까까지만 해도 존재했던 박스가 없어졌습니다. 삭제된 것은 아니고 숨긴 것입니다. 그럼 숨겼던 오브젝트를 다시 나오게 할까요? 이어서 다음과 같이 적은 후 실행을 해봅시다. 2 unhide $'Box001' c..

오브젝트의 Transform (4)

안녕하세요. 애니메이터가 들려주는 맥스 스크립트의 스크립팅하는 애님입니다. 오늘도 오브젝트의 Transform에 대해서 얘기해 보도록 하겠습니다. coordsys coordsys는 맥스의 여러 가지 축을 선택할 수 있도록 합니다. 맥스의 다음과 같은 역활을 한다고 생각하시면 됩니다. 종류로는 coordsys world : 월드 기준의 값을 사용합니다. coordsys local : 로컬 기준의 값을 사용합니다. coordsys parent : 부모 기준의 값을 사용합니다. coordsys grid : 그리드 기준의 값을 사용합니다. coordsys screen : 스크린 기준의 값을 사용합니다. coordsys 노드 : 선택한 노드 기준의 값을 사용합니다. 가 있습니다. 그냥 이렇게 보면 어떻게 쓰는지를..

오브젝트의 Transform (3)

안녕하세요. 애니메이터가 들려주는 맥스 스크립트의 스크립팅하는 애님입니다. 오늘도 오브젝트의 Transform에 대해서 얘기해 보도록 하겠습니다. 오늘은 미뤄 왔던 회전에 대해서 이야기해 보겠습니다. Quaternian 우선은 박스를 하나 만들어 보겠습니다. 1 myBox = box() cs 만들어진 박스의 회전값을 알아보도록 하죠. 다음과 같이 이어서 입력하고 라인 실행을 해봅시다. 2 myBox.rotation cs 지금까지 알아 왔던 것과는 다른 다른 형식인 (quat 0 0 0 1)으로 표기됐습니다. Quaternian(쿼터니언, 사원수)라는 값인데 회전 값을 표현하는 방법 중 하나이며 그중에 가장 복잡한 형태입니다. 사원수란 '수학에서, 사원수(四元數, 영어: quaternion 쿼터니언[*])..

오브젝트의 Transform (2)

안녕하세요. 애니메이터가 들려주는 맥스 스크립트의 스크립팅하는 애님입니다. 오늘도 오브젝트의 Transform에 대해서 얘기해 보도록 하겠습니다. 순서(?)대로 한다면 회전이 먼저 나와야 할 것 같지만 크기를 먼저 이야기하겠습니다. 회전은 여러 가지 방식이 있기 때문에 다음에 이야기하겠습니다. (귀찮아서 그런 건 아닙니다. ㅎㅎ) 우선은 늘 그렇듯 박스를 하나 만들겠습니다.(꼭 박스가 아니라도 부피를 나타낼 수 있는 오브젝트라면 가능합니다.) 1 myBox = box() cs 예쁘게 만들어졌네요. 그다음엔 pos와 같이 scale값을 확인해 봅시다. 다음 내용을 이어서 적고 라인 실행을 합니다. 2 myBox.scale cs 위 이미지와 같이 [1,1,1]이라고 나올 겁니다. 그런데 저번에 기본적으로 만..

오브젝트의 Transform (1)

안녕하세요. 애니메이터가 들려주는 맥스 스크립트의 스크립팅하는 애님입니다. 오늘은 오브젝트의 Transform에 대해서 얘기해 보도록 하겠습니다. Transform을 사전적인 의미를 보면 '변환'이라고 나오는데요. 오브젝트의 가장 기본적인 변환이라고 할 수 있는 '위치', '회전', '크기'입니다. 위치 : pos (position을 줄인 단어입니다.) 회전 : rotation 크기 : scale 위치, 회전, 크기는 각각 3개의 값이 들어있는 Point3라는 형식으로 되어 있습니다. 맥스가 3차원의 툴이기 때문에 Point3는 x값, y값, z값이 들어 있습니다. point3 얘기로만 하면 뭐하겠습니까, 한번 만들어서 주물러 봅시다. 저번과 같이 박스를 만들어 봅시다. 1 myBox = box() cs..

기본 오브젝트 만들기

안녕하세요. 애니메이터가 들려주는 맥스 스크립트의 스크립팅하는 애님입니다. 오늘부터 본격적(?)으로 맥스 스크립트를 이용하여 뷰포트 상에서 작업해 보겠습니다. 우선 가장 기본적인 오브젝트인 박스를 만들도록 하겠습니다. 아! 참고로 오늘부터는 MAXScript Listener와 Script editor창의 스샷은 특별한 경우가 아니면 생략하겠습니다. 여러분의 맥스 창에서 직접 입력하여 확인해 보도록 하세요. 우선 박스를 하나 만들어 보도록 하겠습니다. 다음과 같이 입력하여 실행해 보세요. 1 box() cs 자 위 이미지와 같이 박스가 만들어졌나요? 박스 만드는 거 생각보다 어렵지 않습니다. 박스의 상태를 한본 확인해 봅시다. 우선 위치 값이 월드 축 기준으로 X : 0, Y : 0, Z : 0이네요. 그..

맥스스크립트의 알아두면 좋은 것

안녕하세요. 애니메이터가 들려주는 맥스 스크립트의 스크립팅하는 애님입니다. 오늘은 맥스 스크립트에서 알아두면 좋은 것 들에 대해서 얘기해 보겠습니다. 주석 문 처리 주석 문이란 코딩 내에 개발자가 메모를 남기는 것으로, 다른 개발자나 자신이 만들었어도 시간이 지나 이해하는데 시간이 걸리는 내용을 알아보기 쉽게 하는 역할을 주로 합니다. 주석으로 처리된 내용은 맥스에서 실행할 때 무시되기 때문에 스크립트에는 아무런 영향을 주지 않습니다. 1 2 3 4 5 6 7 8 9 10 11 a = 10 -- 변수 a에 10값을 넣어준다. for i = 1 to a do ( format "i = %\n" i /* 다음내용 부터는 주석 처리한다. b = i + 3 format "b = %\n" b */ ) cs 1번 라..