728x90
반응형
안녕하세요.
애니메이터가 들려주는 맥스 스크립트의 스크립팅하는 애님입니다.
오늘도 지난번에 이어서 자식 노드를 선택하는 방법을 이어서 진행하겠습니다.
오늘은 두 개 이상의 시작 노드를 처리하는 방법에 대해서 알아보겠습니다.
두 개 이상이라는 것은 같은 행동을 두 번 이상 한다는 것이죠.
그럴 경우에 for문이나 while문을 사용하면 될 것이라 예상할 수 있네요.
우선 지난번까지 작업한 스크립트를 열고 바이 패드를 하나 생성해 줍니다.
스크립트의
1번 라인이 하나의 오브젝트를 저장하도록 되어 있던 것을 여러 오브젝트가 들어올 수 있도록 배열 형태로 변경해줍니다.
1
|
selObj = selection as array
|
cs |
다음으로 선택한 노드가 한 개 이상일 경우가 있기 때문에
7번과 8번 라인을 for문으로 감싸서 각각의 노드를 처리할 수 있도록 해줍니다.
1
2
3
4
5
|
for i = 1 to selObj.count do
(
append childNode selObj[i]
append selNode selObj[i]
)
|
cs |
for문으로 오브젝트를 받아 오기 때문에 selObj[i]같은 형태로 사용해야 합니다.
지금까지 작업한 내용은 다음과 같습니다.
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
|
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 == true) do
(
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]
format "childNode[%].children[%] = %\n" i j childNode[i].children[j]
)
)
childNode = nextChild
nextChild = #()
)
else childNodeFlag = false
)
select selNode
|
cs |
확인해 보시고 바이 패드의 노드를 두 개 이상 선택하고 실행해 봅시다.
내용이 조금 짧은 느낌이 들지만 오늘은 여기서 마치도록 하겠습니다.
다음 시간에는 UI를 적용하여 사용하는 방법에 대해서 알아보겠습니다.
728x90
반응형
'맥스스크립트 심화' 카테고리의 다른 글
슬롯머신(2) (0) | 2019.09.24 |
---|---|
슬롯머신(1) (0) | 2019.09.23 |
Selection Filter확장 (0) | 2019.09.19 |
자식노드 선택(4) (2) | 2019.09.18 |
자식노드 선택(2) (0) | 2019.09.16 |
자식노드 선택(1) (0) | 2019.09.15 |
오브젝트의 선택(3) (0) | 2019.09.14 |
오브젝트의 선택(2) (0) | 2019.09.13 |