안녕하세요.
애니메이터가 들려주는 맥스 스크립트의 스크립팅하는 애님입니다.
오늘은 지금까지 작업한 오브젝트의 머지에 UI를 추가해서 더욱 사용하기 편하게 해 보겠습니다.
이번 내용으로 끝냈으면 하는데, 할 이야기가 길어진다면 두 번에 걸쳐서 진행하겠습니다. ㅎㅎ
(계속 계속 늘어지네요.)
지난 번까지 작업한 스크립트는 그냥 에디터에서 실행하면 바로 실행되는 형태였습니다.
이것을 좀더 예쁘게 꾸미고 사용자가 스크립트 진행에 개입을 할 수 있도록 해 봅시다.
좀 더 프로그램 툴 같은 느낌을 갖도록 하는 것입니다.
우선 MAXScript Editer에서 새로운 탭을 엽니다.
그리고 적당히 다이얼로그를 만들어 줍시다.
다음과 같이 입력하고 실행해 봅시다.
1
2
3
4
|
rollout merge_roll "머지툴"
(
)
createdialog merge_roll
|
cs |
다음과 같이 조마한 다이얼로그가 생깁니다.
여기에 실행을 하는 버튼을 만들어 줍니다.
1
2
3
4
5
|
rollout merge_roll "머지툴"
(
button run_btn "실행" height:20 width:40
)
createdialog merge_roll
|
cs |
지금은 실행 버튼을 눌러도 실행이 되지는 않습니다.
그럼 실행 버튼이 눌리면 머지 실행이 되도록 밑 작업을 준비해 줍니다.
다음과 같이 추가를 합시다.
1
2
3
4
5
6
7
8
9
10
|
rollout merge_roll "머지툴"
(
button run_btn "실행" height:20 width:40
on run_btn pressed do
(
format "정상!!\n"
)
)
createdialog merge_roll
|
cs |
format문은 버튼이 정상 작동하는지 확인하려고 넣은 겁니다.
실행해 보시면 정상!!이라고 뜹니다. ㅎㅎ
format문을 지우고 지운 자리에 이전에 작업한 스크립트를 넣어 줍니다.
들여 쓰기가 맞지 않으니 Tab키를 이용하여 들여 쓰기를 맞춰 줍시다.
꼭 필요한 건 아니지만 나중에 수정할 때 보기 좋게 해 줍니다.
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
44
45
46
47
48
49
50
|
rollout merge_roll "머지툴"
(
button run_btn "실행" height:20 width:40
on run_btn pressed do
(
pName = getSavePath caption:"바뀔 파일" initialDir:"D:\\"
if(pName != undefined) then
(
-- pName에 값이 입력된다면
maxFiles = getFiles (pName + "\\*.max")
if((maxFiles.count > 0)and(doesFileExist (pName + "\\머지할.max") == true)) then
(
format "%\n" maxFiles
for i = 1 to maxFiles.count do
(
if(matchPattern maxFiles[i] pattern:"*머지할.max" == false) do
( -- 추가부분
loadmaxfile maxFiles[i] quiet:on
figLayerNum = biped.getCurrentLayer $'Bip001'.controller
if(figLayerNum != 0) do biped.setCurrentLayer $'Bip001'.controller 0
$'bip001'.transform.controller.figureMode = true
mergeMAXFile "D:\\test\\머지할.max" quiet:true
$'Point Head'.parent = $'Bip001 Head'
$'Point Spine3'.parent = $'Bip001 Spine3'
$'Point L Hand'.parent = $'Bip001 L Hand'
$'Point R Hand'.parent = $'Bip001 R Hand'
$'Point L Pelvis'.parent = $'Bip001 Pelvis'
$'Point R Pelvis'.parent = $'Bip001 Pelvis'
$'bip001'.transform.controller.figureMode = false
if(figLayerNum != 0) do biped.setCurrentLayer $'Bip001'.controller figLayerNum
saveMaxFile (maxFilePath + maxFileName)
resetMaxFile #noPrompt
)
)
)
else
(
messagebox "맥스파일이 없습니다."
)
)
else
(
-- pName에 값이 없다면
messagebox "취소를 선택하셨습니다."
)
)
)
createdialog merge_roll
|
cs |
이제 실행 버튼을 누르면 이전에 작업했던 내용이 정상 실행됩니다.
역시나 오늘 중에 끝내지는 못 했네요.
다음에도 이어서 UI를 추가하여 더 꾸며 보겠습니다.
'맥스스크립트 심화' 카테고리의 다른 글
오브젝트의 선택(3) (0) | 2019.09.14 |
---|---|
오브젝트의 선택(2) (0) | 2019.09.13 |
오브젝트의 선택(1) (0) | 2019.09.12 |
오브젝트의 머지(7) (0) | 2019.09.11 |
오브젝트의 머지(5) (0) | 2019.09.09 |
오브젝트의 머지(4) (0) | 2019.09.08 |
오브젝트의 머지(3) (0) | 2019.09.07 |
오브젝트의 머지(2) (0) | 2019.09.06 |