[MEL script] 현재 작업창 열기 pwd 응용






string $workDirectory = `pwd`;
string $negativeOutDirectory = stringArrayToString({"start ","explorer ",$workDirectory},"");
string $nativeOutDirectory = toNativePath($negativeOutDirectory);
system($nativeOutDirectory);




사용법 및 설명
이걸 복사해서 마야 쉘프 창에 등록해 놓고 쓰시면 편합니다.
현재 작업 프로젝트의 폴더를 버튼 한번 클릭으로 바로 탐색기 실행되어 해당 폴더로 이동하니까요.
다른 말로 하면 현재 프로젝트의 폴더를 탐색기로 열어줍니다.

제작노트

예전에 쓰던 건데 요즘 렌더링 끝날때 마다 이미지 확인 하려고 윈도우 탐색기 열어서 폴더 찾아가는것이 자주 있다 보니 그 과정이 너무 귀찮다.
그래서 그냥 지금 작업하고 있는 프로젝트는 그냥 버튼만 누르는 것으로 해당 폴더가 열리게끔 하면 편하겠단 생각에서 만들었다.
그러면서 2009 버전 이전과 2010이후와의 MEL 구조의 차이점을 발견하게 되어서 수정을 했다.

마야에서 pwd란 명령어가 있다. 현재 프로젝트 폴더를 알려주는 것이다.
그런데 이 결과물이 폴더 경로를 나타낼때 윈도에서 기본으로 쓰는 \(역슬래쉬)가 아니라 /(슬래쉬)를 쓴다.
2009 버전 이전에서는 물론 이 차이가 있긴 하지만 그리 까다롭게 구분되진 않고 실행이 되었는데 2011에서는 이게 인식이 안되는거다.

예를 들면 pwd를 통해서 나온 결과는

P:/Project/ProjectA 가 나오는데

이것을 explorer "P:/Project/ProjectA" 시키면 해당 폴더가 안 열리고 시스템 기본 폴더가 열리는것이다.
그래서 이걸 어떻게 해결하나... 폴더 경로를 배열로 넣어서 일일이 /(슬래쉬)를 찾아서 \(역슬래쉬)로 바꿔줘야 하는건가... 그래서 써치 앤 리플레이스 알고리즘을 짤까? 생각하던 터에 마야에 좋은 명령어를 발견하게 되었다.

바로 toNativePath와 fromNativePath이다

toNativePath는 마야의 기본 폴더 경로 구조(이는 유닉스 리눅스와 비슷한)를 윈도우용으로 전환해주는것이다.
사실 그냥 단순하게 슬래쉬를 역슬래쉬로 바꿔주는 기능을 수행한다.
fromNativePath는 반대로 윈도우 폴더 경로 구조를 마야용(리눅스와 유닉스에서 쓰는 방식)으로 바꿔준다.
그런데 유의할 것은 윈도우용에서 리눅스 용으로 바꾸는 멜을 짤때

P:\Project\ProjectA --->P:/Project/ProjectA 가 아니라
P:\\Project\\ProjectA --->P:/Project/ProjectA 라는 것이다.

\(역슬래쉬)는 프로그래밍에서 단순히 윈도우 탐색기가 쓰듯이 경로 폴더 구분만 해주는 것이 아니라 \n을 하면 한줄 띄어쓰기로 인식되는 것 처럼 고유 기본 기능을 하는 놈이기에 정말 \역슬래쉬를 인식시켜 주려면 \\ 두번을 써줘야 한다.