안녕하세요, 애니메이터가 들려주는 MAX Script의 스크립팅하는 애님입니다.
이야 정말로 오래간만에 글을 올립니다.
다들 예방접종은 잘 맞으셨는지요?
빨리 코시국이 끝났으면 좋겠네요.
오늘은 2일전 쯤 'TANKS'님이 질문을 주셔서 그 부분에 대해 알아보려고 합니다.
해결방법을 알아 내셨는지 지금은 질문을 삭제하셨는데요.(ㅎㅎㅎ 제가 게을러서 타이밍을 놓쳤네요.)
기억하기론 작업을 할때마다 특정 형식의 파일을 열면 'Hierarchy > Link Info > Lock'이 모두 잠겨 있어서 이 부분을 모두 열어 주는 것이 번거로워서 스크립트로 해결하고 싶다 였을 겁니다.(대충 그런 느낌이었습니다.)

관련된 기능은 저도 써본적이 없어서 '역시 맥스는 넓다.'라는 생각을 하게 되네요.
구글링을 해보니 해당 스크립트가 존재하네요.
http://www.scriptspot.com/3ds-max/scripts/lockunlock-link-info
Lock/Unlock link info | ScriptSpot
When you want lock an object like a camera, you must check each box on the hierarchy > link info Same thing when you want to unlock. This script automatically do it for all entries. Additional Info: Links
www.scriptspot.com
여기에는 한 번에 모두 잠그거나 여는 스크립트가 구현되어 있는데, 해당 내용을 확인하고, 다른 선택 옵션도 알아보겠습니다.
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
|
macroScript lockUnlock
category:"Vinc3rz tools"
toolTip:"Lock/Unlock"
ButtonText:"Lock/Unlock"
(
rollout lockUnlock "lockUnlock" width:84 height:63
(
label lbl1 "Links info :" pos:[2,2] width:80 height:15
button btn1 "Lock All !!ง" pos:[2,19] width:80 height:20
button btn2 "Unlock" pos:[2,41] width:80 height:20
on btn1 pressed do
setTransformLockFlags selection #all
on btn2 pressed do
setTransformLockFlags selection #none
)
createDialog lockUnlock style:#(#style_titlebar, #style_toolwindow, #style_sysmenu)
)
|
cs |
1번 ~ 4번 라인은 맥스 스크립트를 매크로 형식으로 정하는 부분입니다.(매크로로 정하면 바로 실해되지는 않지만 단축키나 메뉴에 등록을 해서 바로 사용할 수 있는 장점이 있습니다.)
그 아래 내용은 대화 상자를 표기하는 데 사용되고 실제 Lock와 관련된 부분은 12번 라인과 14번 라인입니다.
12번 라인은 모두 잠금이고,
14번 라인은 모두 열림입니다.
해당 명령어의 문법은 아래와 같습니다.
getTransformLockFlags <node> -- mapped
setTransformLockFlags <node> (#all|#none| <bitarray>)-- mapped
getTransformLockFlags
'getTransformLockFlags'는 현제 Lock세팅을 받아 오는 것입니다.
이것은 하나의 오브젝트에서만 받아올 수 있기 때문에 위 스크립트와 같이 'selection'(복수개)을 쓸 수 없습니다.
여러 개를 한 번에 확인하고 싶다면 for문을 이용하여 각각 하나씩 확인하는 방법은 있겠습니다.(이 부분은 이미 숙지하셨다고 생각하고 해당 내용은 생략하겠습니다.)

위와 같이 박스 하나를 만든 후 선택하고 Lock를 이렇게 저렇게 원하시는대로 세팅한 다음
getTransformLockFlags $
를 실행시켜 보겠습니다.
결과 값으로 '#{1..9}', '#{1..3, 6}', '#{1.. 3}'이런 식으로 표현될 것입니다.
'..'은 연속되었다는 의미로 '1..4'는 '1, 2, 3, 4'라는 의미를 줄여서 표현 한 겁니다.
','는 연속되지 않았다는 의미입니다.
setTransformLockFlags
'setTransformLockFlags'는 현제 Lock 세팅하는 것입니다.
복수개를 세팅할 수 있기 때문에 위 스크립트에 나와 있는 것처럼 'selection'을 사용할 수 있습니다.
옵션의 '#all'은 모두 잠금, '#none'은 모두 열림, 'bitarray'는 배열 형식으로 '#{1..9}', '#{1..3, 6}', '#{1..3}'이렇게 작성하면 됩니다.
딱히 따로 예제는 적지 않겠습니다.(몇 번 테스트해보시면 금방 숙지할 수 있습니다.ㅎㅎ)
Inherit의 설정
참고로 'Locks'의 아래에 있는 'Inherit'는
getInheritanceFlags <node> -- mapped
setInheritanceFlags <node> (#all|#none| <bitarray>)-- mapped
로 확인하거나 설정할 수 있습니다.
사용방법은 'Lock'와 동일합니다.
오래간만에 생존신고네요. ㅎㅎㅎ
오늘은 여기까지 하겠습니다.
다들 건승하시고 행복하세요.
'맥스스크립트 심화' 카테고리의 다른 글
| 'selectKeys'의 응용 (7) | 2023.01.18 |
|---|---|
| 배치스크립트 2 (2) | 2021.06.27 |
| 배치스크립트 1 (2) | 2021.06.27 |
| Edit poly, Editablepoly, Edit Mesh, Editable Mesh 확인하고 분기나누기. (1) | 2021.05.12 |
| 오브젝트의 하이드와 박스모드 쉽게하기(2) (0) | 2021.05.11 |
| 오브젝트의 하이드와 박스모드 쉽게하기(1) (3) | 2021.05.10 |
| 파일머지 편하게하기(8) (0) | 2021.05.03 |
| 파일머지 편하게하기(7) (0) | 2021.04.30 |