Blender的脚本运行与安全

在混合文档中包含Python脚本的能力对于绑定和自动化等高级任务很有价值。然而,这也伴随着潜在的安全隐患,毕竟Python本身并未对脚本的执行权限做出严格的限制。因此,在操作时,我们应当格外谨慎,只运行那些来自我们熟知且信赖的源的脚本。为了安全起见,建议默认情况下禁用脚本的自动执行功能;当然,也要理解到,有些特定的混合文档确实需要这一功能才能顺畅运行。在享受Python脚本带来的便利的同时,我们也不应忽视其可能带来的风险,确保在信任与安全之间找到恰当的平衡。
当blend文件试图运行脚本并且未被允许,标题栏将显示信息,并提供 允许执行 或者 忽略 该脚本的选项。
信息编辑器标题栏显示的自动运行警告。
Blend文件中的脚本
自动运行
下面是一些blend文件可能自动运行脚本的方式。
注册的文本块
文本数据块可以启用 注册 选项,这意味会在启动时自动加载。
动画驱动
Python表达式可以用于 驱动 值,并且经常在进阶的绑定和动画中使用。
手动运行
还有一些情况下,blend文件需要用户交互才能运行脚本(因此禁用自动运行也会运行),但你需要清楚这种情形,因为它不是那么显而易见。
在文本编辑器中运行脚本。
使用FreeStyle 渲染,由于 FreeStyle 使用脚本控制线条样式。
控制脚本运行
Blender提供了一些用于控制是否允许blend文件中脚本自动运行的方法。
首先,文件浏览器具有 受信任源 选项,您可以根据具体情况使用该选项来控制自动执行。由于您可能会忘记设置此选项,或者可能不通过 "文件浏览器" 打开文件,因此您可以更改默认值(如下所述)。
设置默认值
在偏好设置中,可切换到 自动运行Python脚本 。这意味着默认情况下将启用文件浏览器中的 受信任源 选项,并且脚本可以在未使用文件浏览器加载blend文件时运行。启用后,为了进一步保障安全,我们还能够选择将某些特定目录排除在外。通常的配置是信任除下载目录外的所有路径,这样既能享受脚本带来的便捷,又能有效规避潜在的安全风险。
自动运行Python脚本。
命令行
您可能希望从命令行执行批处理渲染或其他一些任务,在没有界面的情况下运行Blender。在这种情况下,首选项仍在使用,但您可能希望覆盖它们:
使用 -y or --enable-autoexec 启用
使用 -Y or --disable-autoexec 禁用
例子
要在后台模式下渲染动画,允许驱动进程和其他脚本运行,请执行以下操作: