맥스스크립트 심화

자식노드 선택(4)

스크립팅하는애님 2019. 9. 18. 16:45
728x90
반응형

안녕하세요.

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

오늘도 지난번에 이어서  자식 노드를 선택하는 방법을 이어서 진행하여 마무리하겠습니다.

 

우선 지난번까지 작업한 스크립트를 열고 바이 패드를 하나 생성해 줍니다.

이 열어준 스크립트를 UI를 사용할 수 있게 하는 것이므로 당연히 다이얼로그를 만드는 스크립트를 넣어 주어야 합니다.

새로운 탭을 열주고 다음과 같이 입력합니다.

 

1
2
3
4
5
6
7
try(destroydialog selChild_roll) catch()
 
rollout selChild_roll "자식선택툴"
(
    button run_btn "자식선택" whidth:50 height:25 pos:[35,10]
 
on run_btn pressed do
(
)
)
createdialog selChild_roll width:130 height:50
cs

 

 

아직 내용이 없기 때문에 버튼을 눌러도 실행은 되지 않습니다.

(UI의 내용이 궁금하시면 '맥스스크립트 기본 > UI'부분을 참고하세요'

 

버튼이 눌리면 실행이 될 수 있도록 해주겠습니다.

'on run_btn pressed do' 블록 사이에 이전에 만든 스크립트를 넣도록 합니다.

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
try(destroydialog selChild_roll) catch()
 
rollout selChild_roll "자식선택툴"
(
    button run_btn "자식선택" whidth:50 height:25 pos:[35,10]
    
    on run_btn pressed do
    (
        selObj = selection as array
        childNode  = #()
        nextChild = #()
        selNode = #()
        childNodeFlag = true
        
        for i = 1 to selObj.count do
        (
            append childNode selObj[i]
            append selNode selObj[i]
        )
 
        while(childNodeFlag == truedo
        (
            if keyboard.escPressed do exit
                
            if(childNode.count != 0) then
            (
                for i = 1 to childNode.count do
                (
                    for j = 1 to childNode[i].children.count do
                    (
                        append nextChild childNode[i].children[j]
                        append selNode childNode[i].children[j]
                    )
                )
                childNode = nextChild
                nextChild = #()
            )
            else childNodeFlag = false
        )
        select selNode
    )
)
createdialog selChild_roll width:130 height:50
cs

 

왼쪽상태에서 버튼을 누르면 오른쪽 상태가 됩니다.

 

잘 작동하네요. ㅎㅎ

 

이로서 자식 노드 선택을 마무리하겠습니다.

자식 노드뿐만 아니라 선택한 노드도 같이 포함되는 데 사용할 때는 선택한 노드도 포함되는 게 자연스러워서 그렇게 작업을 했습니다.

이것이 이상하신 분들은 스크립트를 수정해서 원하는 대로 변경하시면 됩니다.

다음에는 맥스의 기본 선택 툴의 확장에 대해서 알아보겠습니다.

728x90
반응형

'맥스스크립트 심화' 카테고리의 다른 글

슬롯머신(3)  (0) 2019.09.25
슬롯머신(2)  (0) 2019.09.24
슬롯머신(1)  (0) 2019.09.23
Selection Filter확장  (0) 2019.09.19
자식노드 선택(3)  (0) 2019.09.17
자식노드 선택(2)  (0) 2019.09.16
자식노드 선택(1)  (0) 2019.09.15
오브젝트의 선택(3)  (0) 2019.09.14