안녕하세요.
애니메이터가 들려주는 맥스 스크립트의 스크립팅하는 애님입니다.
지난번에 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들을 변수에 저장했습니다.
다음과 같이 박스가 생성이 됐나요?
속성
이 상태에서 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를 알아보도록 하겠습니다.
'맥스스크립트 기본' 카테고리의 다른 글
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 |