맥스스크립트 기초

User Defined

스크립팅하는애님 2019. 10. 2. 16:11
728x90
반응형

안녕하세요.

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

오늘 이야기할 것은 오브젝트의 Properties에 있는 User Defined에 대해 이야기하려고 합니다.

 

 

User Defined는 번역하자면 사용자 정의 가되겠습니다.

오브젝트에 붙어 있는 사용자 정의이기 때문에 어떤 오브젝트에 사용자가 특별히 무언가를 남길 때 사용하는 것입니다.

본업이 애니메이터인 저로서는 사용할 일이 없기 때문에 이 기능에 대해서 주목하지 않았습니다.

우연히 어떤 엔진에서 User Defined을 이용해 엔진으로 익스포트 되는 파일에 익스포트에 필요하지 않은 오브젝트를 체크하는 데 사용하는 것을 봤습니다.

 

우선 문법에 대해서 알아보겠습니다.

 

getUserPropBuffer <node>

해당 노드의 User Defined에 적혀 있는 내용을 불러옵니다.

 

setUserPropBuffer <node> <string>

해당 노드의 User Defined에 입력한 문자열을 저장합니다.

 

위 내용들은 변수에 값을 입력하는 것과 비슷한 기능이지만, 일반적인 변수와는 다르게 맥스 자체에 저장되기 때문에 맥스를 껐다가 다시 실행하여 파일을 불러와도 저장된 값이 유지됩니다.

물론 맥스의 변수 중에도 파일 자체에 저장되는 변수(Persistent global)도 있지만 특별한 경우가 아니라면 거의 사용하는 경우가 없습니다.(저는 한 번도 없었습니다.)

오브젝트에게 어떤 값을 적용한다면 직관적으로 사용할 수 있는 User Defined을 추천하겠습니다.

 

간단하게 사용방법에 대해서 알아보겠습니다.

우선 뷰포트에 오브젝트를 하나 추가합니다.(저는 박스를 추가했습니다.)

 

박스의 이름은 Box001입니다.

그럼 Box001의 User Defined을 확인해 보겠습니다.

다음과 같이 입력하고 실행해 봅시다.

 

1
getUserPropBuffer $'Box001'
cs

 

결과는 ""로 나올 것입니다.

이유는 User Defined에 아무것도 없기 때문입니다.

그렇다면 User Defined에 값을 입력해 보겠습니다.

 

1
setUserPropBuffer $'Box001' "Hello!!"
cs

 

 

오브젝트의 Properties에서 User Defined를 확인해 보니 정상적으로 저장되어 있습니다.

아까와 같은 getUserPropBuffer $'Box001'스크립트로 확인해 봅시다.

 

 

"Hello!!"라고 잘 나옵니다.

 

Hello!!를 유지하면서 다음 줄에 추가를 해볼까요?

다음과 같이 입력하고 실행해 보겠습니다.

 

1
2
a = getUserPropBuffer $'Box001'
setUserPropBuffer $'Box001' (a + "\r\nNext Line!!")
cs

 

잘 추가 되었습니다.

 

별다른 내용은 없지만 처음 보는 것이 있습니다.

'\r'인데요, 보통 다음 라인을 지칭하는 것은 '\n'인데요.

User Defined에서는 '\n'만으로는 다음 라인으로 넘어가지 못합니다.

'\r\n'을 같이 써야 다음 라인에서 입력이 됩니다.

 

오늘은 User Defined에 대해서 이야기했습니다.

이것에 대한 자세한 응용법은 나중에 알아보도록 하겠습니다.

728x90
반응형

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

Material Editor(4)  (0) 2019.10.08
Material Editor(3)  (0) 2019.10.07
Material Editor(2)  (0) 2019.10.04
Material Editor(1)  (0) 2019.10.03
문자열(String) 함수(5)  (0) 2019.09.04
문자열(String) 함수(4)  (0) 2019.09.03
문자열(String) 함수(3)  (0) 2019.09.02
문자열(String) 함수(2)  (0) 2019.09.01