명령행에서 스크립트 실행

3ds Max에서는 명령행에서 직접 스크립팅 명령을 입력할 수 있습니다. DOS 명령행에서 3ds Max를 실행할 때 특정한 시작 MAXScript 또는 Python 스크립트를 수행하도록 할 수 있습니다. 이 기능은 무인 배치 렌더링과 같은 태스크에 유용할 수 있습니다.

이 기능은 3ds Max가 시작할 때 실행될 유틸리티를 지정하는 기존의 -U 명령행 옵션을 사용합니다. -U 옵션은 시작 스크립트의 이름으로 취해지는 선택적 추가 인수(MAXScript 및 Python용)를 허용합니다. MAXScript의 대/소문자(대문자화)는 다음 예와 같아야 합니다(CD 명령을 사용하여 3ds Max 디렉토리로 이동한 후 입력).

3dsmax -U MAXScript rendercams.ms

이 예제 명령행은 3ds Max 실행 파일을 시작하고 MAXScript를 시작한 다음 rendercams.ms 시작 스크립트를 실행하게 합니다.

다음의 두 시작 스크립트 예는 두 개의 배경을 로딩하고 각각의 카메라로부터 프레임을 렌더링한 후 3ds Max를 종료합니다.

loadMaxFile "foo.max"
for c in cameras do render camera:c outputfile:("foo_"+c.name+".bmp")
loadMaxFile "baz.max"
for c in cameras do render camera:c outputfile:("baz_"+c.name+".bmp")
quitMax #noPrompt

이 예에서는 스크립트가 끝났을 때 3ds Max를 종료하기 위해 quitMax() 메소드를 사용합니다. 실행 스크립트는 이 예제에서와 같이 배치 스크립트일 필요는 없지만 배경 파일의 로딩 및 일부 사용자 인터페이스 옵션 설정과 같은 대화식 사용을 위하여 3ds Max에 조건을 입력하기 위하여 사용될 수 있습니다.

정상적인 시작 스크립트 startup.ms₩scripts₩startup 디렉토리의 스크립트는 실행 스크립트 이전에 실행됩니다. 배경을 열거나 닫거나 기타 어떤 이벤트 시점에 자동으로 실행되는 개별 배경 파일에 스크립트를 설치하는 것도 가능합니다.

주: 명령행 -U MAXScript 시작 스크립트는 3ds Max이 완전히 부트되고 표준 스크립트와 시작 스크립트가 실행된 후에 실행됩니다.

MAXScript 및 Python 명령행 스위치

다음 스위치가 특히 MAXScript와 Python의 파일 및 함수와 함께 동작합니다.

스위치 효과
-mi 3ds Max를 최소화 모드에서 시작합니다. 그러나 대화식 사용을 위하여 창을 여는 것은 절대 허용하지 않습니다.
-mxs 이 옵션은 기본적으로는 -U MAXScript file.ms와 동일하지만 .ms 파일을 사용하지 않을 수 있게 해줍니다. 사용자는 MAXScript 명령 옵션을 따를 수 있습니다.
-silent MAXScript 명령 setSilentMode와 비교하여 이 옵션은 -U 명령에 의해 지정된 배치 스크립트가 중단되지 않도록 MAXScript와 3ds Max UI의 모든 대화상자를 억제합니다.
-u MAXScript <filename> 지정된 MAXScript 파일을 엽니다.
-u PythonHost <filename> 지정된 Python 스크립트 파일을 엽니다.

바람직한 구문 사용의 예는 다음과 같습니다.

3dsmax.exe -silent -mxs "for c in cameras do render c outputFile:(c.name + ".bmp") vfb:off " file.max

이 예는 3ds Max를 자동 모드에서 시작하고 file.max를 열어 렌더링된 프레임 창을 표시하지 않고 각 카메라의 뷰를 BMP 파일로 렌더링합니다.

3dsmax.exe -q -mi -U MAXScript \\server1\folder\myScript.ms \\server2\folder\file.max

이 예는 3ds Max를 최소화 상태로 시작하는 동안 스플래시 창을 억제하며 네트워크 서버에서 file.max를 열고 다른 서버에 있는 myScript.ms를 실행합니다. myScript.ms가 첫번째 예와 동일한 명령을 포함하고 있다면 이 두 가지 예는 모두 동일한 결과를 제공합니다.

3dsmax.exe -q -silent -mip -mxs  "for c in cameras do render c outputFile:(c.name + ".bmp") vfb:on; quitMAX() #nopromptfile.max" file.max

마지막 예는 3ds Max를 자동 모드 및 영구적인 최소화 모드로 시작하는 동안 시작 화면을 표시하지 않고 file.max를 열어 렌더링된 프레임 창을 표시하면서 각 카메라의 뷰를 BMP 파일로 렌더링한 다음 3ds Max를 종료합니다.