맥스스크립트 기초

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

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

안녕하세요.

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

오늘은 맥스 스크립트에서 알아두면 좋은 것 들에 대해서 얘기해 보겠습니다.

 

주석 문 처리

주석 문이란 코딩 내에 개발자가 메모를 남기는 것으로, 다른 개발자나 자신이 만들었어도 시간이 지나 이해하는데 시간이 걸리는 내용을 알아보기 쉽게 하는 역할을 주로 합니다.

주석으로 처리된 내용은 맥스에서 실행할 때 무시되기 때문에 스크립트에는 아무런 영향을 주지 않습니다.

 

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번 라인의 내용에 '-- 변수 a에 10 값을 넣어준다.'라고 적혀 있는 부분이 있는데 '--'부터 이후의 내용이 주석으로 처리됩니다.

'--'는 1줄을 주석으로 처리하기 때문에 주석의 끝에 무언가를 처리하지 않고 다음 줄로 넘어가면 주석의 범위가 끝나게 됩니다.

다음으로 7번부터 10번 라인까지의 내용을 보면

'/* 다음 내용부터는 주석 처리한다.

b = i + 3

format "b = %\n" b

*/'

이라고 되어 있는데 '/*'부터 '*/'까지의 내용이 주석으로 처리됩니다.

'/*'으로 시작되는 주석 문은 여러 줄을 주석 문으로 처리할 수 있습니다.

원하는 만큼 주석으로 처리한 후에 주석 문을 끝내 고싶을때는 '*/'를 해주면 됩니다.

 

주석문이 있는 부분을 확인해 보세요

 

주석문 부분은 처리되지 않았습니다

 

format문과 맥스 스크립트 디버거

format는 MaxScript Listener에 작업자가 필요한 정보를 출력하게 하는 역할을 합니다.

저 같은 경우는 디버깅 용도로 사용하는데요.

디버깅이란 스크립트나 프로그램의 버그를 잡기 위해 데이터의 값의 변화 등을 추적하는 것을 얘기합니다.

저같이 format 문으로 디버깅하는 것도 방법이긴 하지만 사실 맥스는 전용 디버거를 준비하고 있습니다.

저는 개인적으론 디버거가 손에 익혀지지 않아서 사용하지 못하고 있습니다.

(그냥 제가 게으른 거겠죠. ㅎㅎ)

저는 이미 늦은 몸이니 여러분들은 책이나 구글링을 해서 디버거를 꼭 마스터하시기 바랍니다.

 

여기에 디버거 다이랑로그가 있습니다.

 

여기서 디버깅을 하게 됩니다.

 

 

Try문(예외 처리)

맥스에서는 에러가 났을 때 예외 처리를 해주는 Try라는 명령어가 있습니다.

대부분의 프로그램에서 에러라는 것은 내가 생각하지 않은 일이 원인으로 발생하는 경우가 많은데요.

이 원하지 않는 결과가 발생했을 때 처리를 해주는 명령어입니다.

다음 내용을 한번 봅시다.

 

1
2
3
z = "I am Z"
if (z == 10) then z = z + 10
else z = z + 15
cs

 

문자열 변수 Z를 만들어 'I am Z'라고 값을 넣었습니다.

그런데 Z가 10과 같으면 Z에 10을 더하라고 하고,

아니면 Z에 15를 더하라고 했습니다.

하지만 Z는 문자열 변수 이기 때문에 숫자를 더할 수 없습니다.

에러가 발생합니다.

 

 

대충 보면 15는 문자열로 바꿀 수 없다는 군요.

 

다음과 같이 바꿔 볼까요?

 

1
2
3
4
5
6
7
8
9
10
11
z = "I am Z"
try
(
    if (z == 10) then z = z + 10
    else z = z + 15
)
 
catch
(
    format "에러가 났습니다.\n"
)
cs

 

우선 2번 라인에  try ()라는 녀석이 들어왔네요.

이것은 try안의 영역에서 에러가 발생하는 지를 감시 하고 발생한다면

8번 라인의 catch()로 보내는 역할을 합니다.

catch는 try에서 에러를 감지하면 에러를 무시하고 실행하는 영역입니다.

실행해 보시면

 

 

에러가 났기 때문에 '에러가 났습니다'라는 문자가 출력됩니다.

 

try는 굉장히 유용한 기능이긴 하지만, 유용하다고 스크립트 전체를 감싼다던가 하는 식으로 넓은 범위를 커버하면 스크립트가 느려질 뿐만 아니라 에러가 발생해도 어느 부분에서 발생했는지 찾기가 어려워집니다.

꼭 필요한 부분이나 조건이 까다로워서 조건문으로 처리하기 어려운 경우에 가끔 사용하시는 게 좋습니다.

 

한글 문제

맥스는 기본이 영어로 되어 있기 때문에 저처럼 한들을 스크립트에 넣을 경우 깨져서 나오는 일이 자주 발생합니다.

멕스의 기본 언어는 영어를 쓰면서도 한글이 깨지지 않게 하는 방법이 있는데 다음과 같이 세팅을 해주시면 해결됩니다.

 

맥스의 메인메뉴중 Customize

 

빨간 네모칸 부분을 Korean으로 해주세요.

 

오늘은 맥스 스크립트를 하기 전에 알아두면 좋은 것들에 대해서 이야기해 보았습니다.

이야기를 한다면 이것 말고도 많은 것들이 있지만 차후에 차차 이야기하도록 하겠습니다.

다음에는 오브젝트를 생성하고 움직이고 값을 조절하는 방법에 대해서 알아보겠습니다.

728x90
반응형

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

오브젝트의 Transform (3)  (3) 2019.07.16
오브젝트의 Transform (2)  (0) 2019.07.15
오브젝트의 Transform (1)  (2) 2019.07.14
기본 오브젝트 만들기  (1) 2019.07.12
반복문(while)  (3) 2019.07.10
반복문(for)  (8) 2019.07.09
제어문(case)  (5) 2019.07.07
제어문(if)  (3) 2019.07.07