从命令行运行脚本

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

在该例子中当脚本调用结束时,使用 quitMax() 方法退出 3ds Max。启动脚本不一定是本例中的批处理脚本,但可以作为条件 3ds Max 交互使用,例如加载一个场景文件并设置一些用户界面选项。

通常的启动脚本为startup.ms 以及位于 \scripts\startup 目录中的其他脚本文件,在启动脚本之前运行。也可以在单独的场景文件中添加脚本,当场景打开或关闭或遇到其他事件的时候自动运行这些脚本。

注:3ds Max 完全启动且标准脚本和启动脚本已运行后,运行命令行 -U MAXScript 启动脚本。

MAXScript 和 Python 命令行开关

以下开关专门处理 MAXScript 和 Python 文件和函数。

开关 效果
-mi 以最小化模式启动 3ds Max – 但绝不会允许您打开交互使用的窗口。
-mxs 该切换本质上与-U MAXScript file.ms 相同,但取消了必须为 .ms 文件的限制。可以遵照具有 MAXScript 命令的开关。
-silent 与 MAXScript 命令相比,setSilentMode 开关会取消所有 MAXScript 和 3ds Max UI 对话框,以使 -U 命令指定的批处理脚本不被中断。
-u MAXScript <文件名> 打开指定的 MAXScript 文件。
-u PythonHost <文件名> 打开指定的 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