Tuesday, August 20, 2013

Modo 에서 script 및 pie menu 만들기 기초

modo 에서 실행하는 모든 것들은 명령어로서 실행된다.
그것들은 F5를 누르면 나타나는 command history 에서 확인 가능하다.
예를 들어 X axis 상의 Symmetry 를 켠다면
그에 해당하는 명령어인 select.symmetryState x 가 command history 에 나타난다.


이 명령을 command 창에서 직접 입력하면 UI 에서 해주는 것과 동일한 결과를 얻는다.


x symmetry 를 켜는 명령어는 select.symmetryState x 이고
symmetry 를 끄는 명령어는 select.symmetryState none 이다.
이들 command 에 shortcut 을 지정하거나 pie menu 에 넣어서 쓰면 편리할 것이다.
더 편리하게 하려면, 이들 각각에 shortcut 을 지정하기보다는 Symmetry 를 켜고 끄는 것을 toggle 시키는 것이 낫겠다.
이는 command 하나로는 안되므로 스크립트를 짜서 해결해보자.

스크립트 작성
modo 는 스크립트 언어로 Perl, Python, Lua 를 지원한다.
여기서는 Python을 이용해 X axis 상의 Symmetry 를 켜고 끄는 스크립트를 짜보자.
텍스트 에디터에서 다음과 같이 스크립트를 짜서
 #python  
 currentSymm = lx.eval("select.symmetryState ?")  
 if currentSymm == 'none':  
   lx.eval("select.symmetryState x")  
 else:  
   lx.eval("select.symmetryState none")  
다음과 같은 파일로 저장했다고 하자.
/Users/me/scripts/symmetry.py

똑같은 기능을 perl 로 다음과 같이 짤 수도 있다.
 #perl  
 my $currentSymm = lxq("select.symmetryState ?");  
 if($currentSymm eq "none")  
 {  
   lx("select.symmetryState x");  
 }  
 else  
 {  
   lx("select.symmetryState none");  
 }  
이 경우, 다음과 같이 perl 확장자로 저장해주면 된다.
/Users/me/scripts/symmetry.pl

이를 실행하는 방법에는 몇가지가 있는데

1. 스크립트 파일을 직접 여는 방법
Shift + F5 로 파일 다이얼로그를 띄워서 이 파일을 선택해서 실행한다.

2. command 창에서 실행
오른쪽 맨 아래의 command 창에서 다음과 같이 실행한다.
@"/Users/me/scripts/symmetry.py" 또는
@{/Users/me/scripts/symmetry.py}
파일명을 지정 안하고 그냥 @ 를 입력하면 Shift + F5 누를때와 동일한 다이얼로그 박스가 뜬다.

만일 modo 인스톨된 곳의 Scripts 폴더 내에 넣는다면 그냥
@symmetry.py
라고 실행할 수도 있다.

shortcut 과 pie menu 를 지정하면 더 쉽게 실행할 수 있다.

3. shortcut 을 지정해줌
이것을 , 에 shortcut 으로 지정해주자. System > Input Editor 에서 , 키에
@{/Users/me/scripts/symmetry.py}
라고 넣어주면 된다.
자세한 방법은 Modo 에서 새로운 shortcut 을 만드는 방법 을 참조한다.

4. pie menu 에 지정해줌
System > Form Editor 를 열고
Pie Menus 밑에 새로운 Form 을 만들어서
(new control) 을 클릭해서 Symmetry Toggle 이라는 이름으로
@{/Users/me/scripts/symmetry.py} 가 실행되도록 만든다.

Pie menu 를 만들었으면 오른클릭 > Assign to Key ... 로 핫키를 지정해준다.
자세한 방법은 Modo 에서 custom Pie menu 만드는 법 을 참조한다.

스크립트를 짤 때 터미널에서 텍스트를 출력할 수 있는 기능은 디버깅할때 매우 중요하다.
Hello World 를 출력하는 스크립트를 짜보자.
 #python  
 import lx   
 lx.out('Hello World!')   
이것을 다음과 같이 저장한다.
/Users/me/scripts/helloWorld.py

System > Advanced > Event Log
를 띄우고 helloWorld 를 실행하면 Event Log 에 Hello World! 라고 찍히는게 보인다.

스크립트 짜는 법에 대해 더 알고 싶으면 모도가 인스톨된 폴더 내의
Scripting_and_Commands.pdf
라는 help 파일을 참조한다.

키워드 : 튜토리얼, tutorial, primer, basics
레퍼런스 : Modo Script 관련 자료

No comments:

Post a Comment