9월, 2019의 게시물 표시

Auto-Complete in Maxscript - 3ds Max의 맥스스크립트 에디터에서 자동완성 사용하기 (버전업)

이미지
3ds Max 2017.2 부터 공식적으로 지원하던 (숨겨진) 기능이고 지난 2020.1 업데이트부터는 기본적으로 자동완성이 켜져 있습니다만, 우연한 기회에 2019에 다시 설정을 해보게 되어 포스팅 합니다. 이 기능을 활성화 시켜주면, 맥스 환경에서 스크립트를 작성할 때 타이핑은 줄이고 명령어의 정확도는 올릴 수 있는 장점이 있습니다. (개인적으로 조금 더 편안하게 생각되는 환경은 Sublime Text + Send To 3ds Max 가 있습니다만, 회사 시스템에 추가 프로그램을 설치할 수 없는 경우 등 제약이 있을 때 유용합니다) 자동완성 기능 자체는 Autodesk 공식적으로는 3ds Max 2017 Update 2에서 추가된 내용이지만, 2020.1 이전의 맥스 버전에서 사용하기 위해서는 아래와 같은 추가 작업이 필요합니다. 1. API 명령어 추출 (또는 다운로드) Autodesk에서 제공하는 다음의 경로에서 미리 추출된 API 파일을 다운로드  하세요. 직접 추출하시려면 링크된 GenerateMaxscriptAPI.ms 파일을 받아 맥스에서 실행합니다. 스크립트의 기본 뼈대는 Autodesk 홈페이지 에서 링크된 ScriptSpot 에 공개된 내용을 참조했습니다만 몇 군데 개선할 곳이 있어 다음과 같이 수정했습니다. 속도가 느린 FileStream을 사용하고 있었기에 더 빠른 .Net Class로 변경해 실행시간을 대폭 향상시켰습니다. (제 시스템에서 원본은 파일 쓰기에 4000ms 정도 걸리는데, 개량된 스크립트는 40ms 정도면 파일쓰기가 완성됩니다. 200k도 안되는 크기라 4초가 비정상인게 맞습니다) 원본은 맥스가 설치된 경로에 파일쓰기를 시도하고, 권한 등 문제로 실패할 경우 %Temp% 폴더를 사용하고 있습니다만, 수정된 스크립트는 권한문제에서 자유로운 #userscripts 폴더를 사용하고 있습니다.   완성된 API 파일에 Sort를 적용해 오름차순으로 정렬해 두었습니다. 2. 작성한 A