맥스스크립트 기본

Modifier(2) 속성 및 함수

스크립팅하는애님 2019. 7. 21. 16:19
728x90
반응형

안녕하세요.

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

지난번에 Bend를 이용하여 맥스 스크립트에서 Modifier를 적용하는 방법에 대해서 알아봤습니다.

이번에는 Modifier자체 속성 및 함수를 스크립트에서 어떻게 사용하는지 알아보도록 하겠습니다.

 

박스를 생성하고 Modifier들을 쌓아 봅시다.

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

 

1
2
3
4
5
6
7
8
myMod = #()
myBox = box()
addModifier myBox (bend())
append myMod myBox.modifiers[#bend]
addModifier myBox (edit_poly())
append myMod myBox.modifiers[#edit_poly]
addModifier myBox (edit_mesh())
append myMod myBox.modifiers[#edit_mesh]
cs

 

myMod라는 배열형 변수를 생성하고

지난번에도 이야기했듯이

append myMod myBox.modifiers[#bend]

append myMod myBox.modifiers[#edit_poly]

append myMod myBox.modifiers[#edit_mesh]

를 사용하여 생성시킨 Modifier들을 변수에 저장했습니다.

다음과 같이 박스가 생성이 됐나요?

늘 그렇듯 생성된 박스!

 

스택이 3개가 쌓였네요.

 

속성

이 상태에서 Modifier의 속성에 대해 알아봅시다.

a = 3이라고 한다면 3이라는 수와 a라는 변수는 동일한 취급이 가능하기 때문에

modifier가 저장된 변수는 modifier와 동일하다고 생각해도 됩니다.

myMod는 배열형이기 때문에 myMod[1], myMod[2], myMod[3]는 각각 독립적인 modifier입니다.

외부에서는 myMod에 어떤 modifier가 들어 있는지 알 수 없습니다.

알아볼 수 있는 스크립트를 사용해 봅시다.

이어서 다음과 같이 쓰고 블록 실행을 해봅시다.

 

9
10
11
myMod[1].name
myMod[2].name
myMod[3].name
cs

 

 

각각의 modifier의 이름을 보여줍니다.

 

밴드의 modifier 활성화되었는지 아닌지를 알아볼까요?

이어서 다음과 같이 쓰고 블록 실행을 해봅시다.

 

12
myMod[1].enabled
cs

 

맥스 스크립트 리스너에 'true'라고 나왔나요?

밴드 modifier의 전구가 켜져 있다면 'true'가 맞고 꺼져 있다면 'false'가 맞습니다.

 

 

밴드의 활성화 여부를 확인하는 게 아니라 지접 정하는 방법도 알아보도록 하겠습니다.

이어서 다음과 같이 쓰고 블록 실행을 해봅시다.

 

13
myMod[1].enabled = false
cs

 

뒤에 '= true/false'를 넣어 주면 됩니다.

간단하죠?

그런데 막상 실행해보면 변한 게 없어 보입니다.

그냥 맥스의 버그입니다.(2016에서는 버그가 발생합니다.)

 

함수

addModifier는 오브젝트(노드)에 modifier를 추가하는 함수입니다.

지난번에 얘기했지만 한 가지 짚고 넘어가겠습니다.

addModifier myBox (bend())라고 적는다면 bend modifier를 추가하는데요.

어디에 추가될지를 정할 수 있습니다.

'addModifier myBox (bend()) before:1'과 같이 입력을 하면 스택의 위에서 몇 번째 뒤에 modifier를 추가할지를 정할 수 있습니다.

 

추가를 했다면 삭제도 가능하겠죠.

이어서 다음과 같이 쓰고 블록 실행을 해봅시다.

 

1
deleteModifier mybox 1
cs

 

제일 위에 있는 modifier가 삭제됩니다.

다시 또 실행하면 제일 위에 있는 modifier가 삭제됩니다.

mobox 뒤에 오는 숫자 1은 Index값으로 숫자의 값에 따라 위에서 몇 번째 modifier를 삭제하는지 결정합니다.

 

다음 작업을 위해 만든 modifier를 합치고 싶을 수도 있습니다.

이어서 다음과 같이 쓰고 블록 실행을 해봅시다.

 

1
collapseStack myBox
cs

 

모든 스택이 합쳐졌습니다.

 

깔끔

 

오늘은 Modifier의 속성 및 함수에 대해서 이야기해 보았습니다.

맥스 헬프를 찾아보면(Modifier Common Properties, Operators, and Methods) 지금 이야기한 것보다 더 많고 자세한 내용이 있으니 더 공부하고 싶으시면 찾아보시길 바랍니다.

다음은 Modifier의 Symmetry를 알아보도록 하겠습니다.

728x90
반응형

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

UI(6) Spinner의 이벤트  (0) 2019.07.28
UI(5) Spinner의 문법  (0) 2019.07.27
UI(4) Button 이벤트 및 이미지, 메시지박스  (0) 2019.07.26
UI(3) Label, Button  (0) 2019.07.25
UI(2) Dialog의 이벤트  (2) 2019.07.24
UI(1) Dialog-다이알로그  (2) 2019.07.23
Modifier(3) Symmetry  (3) 2019.07.22
Modifier(1) Bend  (0) 2019.07.20