안녕하세요.
애니메이터가 들려주는 맥스 스크립트의 스크립팅하는 애님입니다.
오늘은 이전에도 설명했던 머지에 대해서 이야기하려고 하는데요.
'심화'인 만큼 조금더 쉽게 사용할 수 있는 스크립트를 만들도록 하겠습니다.
애니메이터인 저는 바이패드로 만들어진 캐릭터에 새로운 본이나 오브젝트를 추가하거나 삭제하고 후반 작업을 하는 경우가 많아서 스크립트를 하나 제대로 만들어 편하게 사용하고 있습니다.
여러분들에게 설명도 할겸 지금까지 사용한 것 보다 더 편하고 범용적인 것을 만들어 볼까 합니다.
우선 파일을 머지하려면 머지될 파일의 오브젝트 중 어느 것이 머지될지를 선택해야 하는데,
그런 경우 저는 머지할 오브젝트만 머지했을 때 딱 맞는 자리에 위치시키고 따로 파일을 만들어서 사용합니다.
(이렇게 하는경우가 별다른 문제없이 깔끔하게 머지가 되기 때문에 편리합니다.)
예를 들면 바이패드도 만든 캐릭터 손에 칼을 머지하여 붙여야 한다면 칼 오브젝트만 있는 파일을 따로 만들어 둡니다.
그리고 바이패드가 피겨모드일 때 딱 맞는 위치에 칼 오브젝트를 위치시켜서 머지하여 링크를 걸면 딱 들어맞게끔 하는 것이죠.
우선 UI를 사용할것이기 때문에 늘 그렇듯 기본 대화 상자를 만들도록 하겠습니다.
1
2
3
4
|
rollout Merge_Rollout "Merge"
(
)
createdialog Merge_Rollout
|
cs |
그리고 대화창을 꾸며 보겠습니다.
우선 머지될 파일을 선택하고 실행을 하면, 현재 열려 있는 씬에 머지되도록 하겠습니다.
1
2
3
4
5
6
7
|
rollout Merge_Rollout "Merge"
(
button selectMerge_btn "머지파일선택" pos:[5, 5]
label fileName_lab "FileName" style_sunkenedge:true height:15 width:155 pos:[5, 30]
button run_btn "실행" pos:[5, 60]
)
createdialog Merge_Rollout
|
cs |
3번 라인의 버튼 'selectMerge_btn'은 머지가 될 파일의 위치와 이름을 선택하는 버튼입니다.
위치와 이름을 선택하는것 외에는 따로 하는 역할은 없습니다.
4번 라인의 label 'fileName_lab'은 머지될 파일을 선택했을때 파일의 위치와 이름이 표기되는 부분입니다.
이것도 다른 역할이 있는것은 아니고 사용자가 자신이 선택한 파일을 확인할 수 있도록 하는 것입니다.
먼저 '머지파일선택' 버튼의 이벤트 핸들러를 만들도록 하겠습니다.
해당 버튼은 아까도 이야기했지만 파일을 선택하는 것이기 때문에 다음과 같이 입력하면 됩니다.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
|
fileName = ""
rollout Merge_Rollout "Merge"
(
button selectMerge_btn "머지파일선택" pos:[5, 5]
label fileName_lab "FileName" style_sunkenedge:true height:15 width:155 pos:[5, 30]
button run_btn "실행" pos:[5, 60]
on selectMerge_btn pressed do
(
fileName = getOpenFileName caption:"머지할파일선택:" filename:".max" types:"맥스파일(*.max)|*.max"
fileName_lab.caption = fileName
)
)
createdialog Merge_Rollout
|
cs |
위와 같이 입력하고 '머지파일선택' 버튼을 누르고 머지할 파일을 선택하면 다음과 같이 파일의 위치와 이름이 표시됩니다.
오늘은 여기에서 끊고 다음 시간에 이어서 하겠습니다.
'맥스스크립트 심화' 카테고리의 다른 글
파일머지 편하게하기(5) (0) | 2021.04.28 |
---|---|
파일머지 편하게하기(4) (0) | 2021.04.27 |
파일머지 편하게하기(3) (0) | 2021.04.26 |
파일머지 편하게하기(2) (0) | 2021.04.23 |
선택한 노드 Controller 변경하기(3) (0) | 2021.04.21 |
선택한 노드 Controller 변경하기(2) (0) | 2021.04.20 |
선택한 노드 Controller 변경하기(1) (3) | 2021.04.19 |
actionMan을 이용한 대화상자(3) (0) | 2021.04.16 |