전체 글 226

기본 오브젝트 만들기

안녕하세요. 애니메이터가 들려주는 맥스 스크립트의 스크립팅하는 애님입니다. 오늘부터 본격적(?)으로 맥스 스크립트를 이용하여 뷰포트 상에서 작업해 보겠습니다. 우선 가장 기본적인 오브젝트인 박스를 만들도록 하겠습니다. 아! 참고로 오늘부터는 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번 라..

반복문(while)

안녕하세요.애니메이터가 들려주는 맥스 스크립트의 스크립팅하는 애님입니다.오늘은 while문에 대해서 얘기를 해보겠습니다. 지난번에 for문에 대해서 이야기를 했는데요.for문은 항상 어디부터 어디까지 라는 범위가 있었습니다.즉 반복의 끝이 있는 명령어입니다. 하지만 while문의 경우 범위에 대해서 미리 지정하지 않습니다.단지 특정 조건을 가지고 있고, 그 조건이 만족할 때까지 반복을 하는 구조입니다.만족을 하지 못한다면 무한 반복이 되는데요.정말로 맥스가 다운될 때까지 반복되므로 사용에 주의가 따릅니다. 다음 예문을 보도록 합시다. 123456a = 1while a (        format "a = %\n" a    a += 1)cs 1번 라인은 변수 a에 1을 넣습니다.2번 라인은 while 문을..

반복문(for)

안녕하세요. 애니메이터가 들려주는 MAX Script의 스크립팅하는 애님입니다. 오늘은 반복문 for문에 대해서 얘기를 하겠습니다. 반복문이란 말 그대로 같은 행동을 반복 시기는 것입니다. 원한다면 무한정 반복 할 수도 있고, 횟수를 정해서 반복시키는 것도 가능합니다. 가장 기본적인 포문을 한번 확인해 봅시다. 1 2 3 4 for i = 1 to 5 do ( format "i = %\n" i ) cs 맥스 스크립트에서 실행한것을 확인하기 전에 내용을 살펴봅시다. 1번 라인이 이야기중인 for문입니다. for문은 for뒤에 변수를 지정하고 지정된 값에 조건에 맞게 반복을 합니다. 여기서는 i가 반복을 위한 변수가 되고 처음에는 1이 입력되고 1씩 증가하여 5가 되면 반복을 멈춥니다. 더 정확히 표현하면 ..

제어문(case)

안녕하세요. 애니메이터가 들려주는 MAX Script의 스크립팅하는 애님입니다. 어제 배운 if에 이어 오늘은 case를 배우겠습니다. case는 if문과 비슷한 조건에 따라 반응하는 함수입니다. 조금 더 정확하게 얘기하자면 if와 else if로 반복되는 긴 문장을 간략하게 표시하는 명령어입니다. 다음 내용을 봅시다. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 if(a > 100) then ( format "Number 1\n" ) else if(a > 90) then ( format "Number 2\n" ) else if(a > 80) then ( format "Number 3\n" ) else if(a > 70) then ( f..

제어문(if)

안녕하세요. 애니메이터가 들려주는 MAX Script의 스크립팅하는 애님입니다. 오늘은 제어문의 'if'문에 대해서 얘기해 보려고 합니다. 'if'문은 어떤 조건에 따라 어떠한 반응을 할지를 결정하는 제어문입니다. 스크립트 작업을 할 때 변수의 값이 다른 무엇과 비교해서 그 결과를 가지고 작업을 진행해야 하는 경우가 매우 많이 발생합니다. 예를 들어 변수 'a'라는 값이 '10'인데 '20'보다 작으면 '작다'라고 출력하고 싶습니다. 맥스 스크립트에서는 이런것을 다음과 같이 적습니다. 1 2 3 4 5 a = 10 if(a 10) then ( if(b == true) then ( format "good\n" ) else ( format "bad\n" ) ) else ( format "bad\n" ) cs..

배열 함수

안녕하세요. 오늘은 어제에 이어 배열에 대해 계속 알아보겠습니다. 배열의 값을 조작하는 함수들인데 맥스 스크립트에서 배열을 자주 쓰기 때문에 기억해 두시면 편합니다. append ' append'는 배열의 마지막에 값을 추가하는 함수입니다. 사용방법은 append 배열 값 입니다. 'Script editor'에서 다음과 같이 적어 봅시다. 1 2 3 a = #("a", "b", "c") append a "d" format "a = %\n" a cs 배열형 변수 a에 'a', 'b', 'c'값을 넣고 생성합니다. 'append' 함수를 사용하여 변수 a에 'd'를 추가해 줍니다. 'format' 함수를 이용하여 결괏값을 확인합니다. 이전 내용에 변수에 값을 추가하는 방법으로 1 2 a[5] = "e" fo..

배열

안녕하세요. 오늘은 배열에 대해서 얘기해 봅시다. 배열은 여러 개의 변수가 모여 있는 변수의 집합입니다. 지금까지 배운 변수들이 하나의 상자라면 배열은 그런 상자들이 여러 개 모여있는 것입니다. 넣을 수 있는 타입도 개수도 제한이 없습니다. 심지어 배열 안에 배열도 넣을 수 있습니다. 배열은 복수개의 값이 있기 때문에 반복문(for, while문)과 연결되어 사용되는 경우가 많습니다. 백문이 불여일견이니 확인해 보도록 합시다. 1 value_array = #() cs 이것은 배열형 변수인 'value_array'를 만드는 명령입니다. 배열에 들어가는 값은 '#(값1, 값2, 값3, .... 값n)'과 같은 형태를 가져야 합니다. 위에 적은 입력값은 '#()'안에 값이 없기 때문에 비어있는 형태입니다.(이..

변수의 범위

오늘도 변수에 대해 얘기를 하겠습니다. (항상 적당 적당 사용했는데 막상 적으려니 내용이 많네요) 변수는 형으로 나뉘지만, 범위로도 나뉠 수가 있는 전역 변수(Global Variables)와 같이 코드 전체에 사용되는 변수가 있고, 지역변수(Local Variables)와 같이 일정 범위에서만 사용되는 변수가 있습니다. 전역변수는 한번 선언하면 맥스가 종료될 때까지 존재하기 때문에 사용이 편하지만 많이 사용될수록 작업자가 기억해야 하는 변수의 수가 많아지기 때문에 변수의 충돌이 생길 수 있어 변수의 관리가 많아집니다. 지역변수는 일정 범위 내에서만 사용되기 때문에 코드를 범위내에서 확인하기 편합니다. 범위 밖으로 나가면 변수가 삭제 되므로 변수끼리의 충돌도 적습니다. 전역 변수는 변수명 앞에 'Glob..

변수의 연산

안녕하세요. 오늘은 전에 얘기한 변수의 연산에 대해 알아보도록 하겠습니다. 변수는 타입(형식)에 따라 연산이 가능합니다. 숫자 숫자의 경우 우선 4칙연산이 가능합니다. 1 2 3 4 5 6 num1 = 5 num2 = 2 value1 = num1 + num2 value2 = num1 - num2 value3 = num1 * num2 value4 = num1 / num2 cs (맥스 스크립트에서 곱하기는 '×'가 아니라 '*'로 표시되고 나누기는 '÷' 대신 '/'를 사용합니다.) 이렇게 한다면 다음과 같은 결과를 보여줍니다. 그런데 위의 결과를 보면 나누기의 경우 소수가 없습니다. 5 / 2 를 한다면 2.5가 나와야 하는데 정수만 표시됩니다. 이것은 정수와 정수의 계산은 정수로만 표시되는 맥스 스크립트..