脚本与安全
在 blend 文档中包含 Python 脚本的能力对于绑定和自动化等高级任务很有价值。但是,它带来了安全风险,因为 Python 不会限制脚本可以执行的操作。因此,只应运行来自您知道和信任的源的脚本。默认情况下禁用自动执行;但是,某些 blend 文档需要此功能才能正常运行。
当 blend 文件试图运行脚本并且未被允许,标题栏将显示信息,并提供 允许执行 或者 忽略 该脚本的选项。
Blend 文件中的脚本
自动运行
下面是一些 blend 文件可能自动运行脚本的方式。
- 注册的文本块
文本数据块可以启用 注册 选项,这意味会在启动时自动加载。
- 动画驱动
Python 表达式可以用于 驱动 值,并且经常在进阶的绑定和动画中使用。
手动运行
还有一些情况下,blend 文件需要用户交互才能运行脚本(因此禁用自动运行也会运行),但你需要清楚这种情形,因为它不是那么显而易见。
在文本编辑器中运行脚本。
使用 Freestyle 渲染,由于 Freestyle 使用脚本控制线条样式。
控制脚本运行
Blender 提供了一些用于控制是否允许 blend 文件中脚本自动运行的方法。
首先,文件浏览器具有 受信任源 选项,您可以根据具体情况使用该选项来控制自动执行。由于您可能会忘记设置此选项,或者可能不通过 “文件浏览器” 打开文件,因此您可以更改默认值(如下所述)。
设置默认值
In the Preferences, there is the toggle to Auto Run Python Scripts. This means the Trusted Source option in the File Browser will be enabled by default, and scripts can run when blend-files are loaded without using the File Browser. Once enabled you have the option to exclude certain directories; a typical configuration would be to trust all paths except for the download directory.
命令行
您可能希望从命令行执行批处理渲染或其他一些任务,在没有界面的情况下运行 Blender。在这种情况下,首选项仍在使用,但您可能希望覆盖它们:
使用
-y
或--enable-autoexec
启用使用
-Y
或--disable-autoexec
禁用
例子
要在后台模式下渲染动画,允许驱动进程和其他脚本运行,请执行以下操作:
blender --background --enable-autoexec my_movie.blend --render-anim
Note
命令行参数也可以用来正常启动 Blender,并且覆盖用户设置。