脚本与安全

Blend文件中包含Python脚本的能力在进阶任务如绑定、自动化和使用游戏引擎中是很有价值的。然而,由于Python并没有严格限制脚本的行为,也带来了一些安全风险。

因此,你应当只运行你知道且信赖的来源的脚本。

自动运行脚本选项默认是禁用的,但是一些blend文件需要启用该选项才能正常工作。

当blend文件试图运行脚本并且未被允许,标题栏将显示信息,并提供 重新加载受信任(脚本) 或者 忽略 该消息的选项。

../../_images/animation_drivers_troubleshooting_autorun-info-header.png

An Auto-run warning in the Info editor's header.

Scripts in Blend-Files

自动运行

下面是一些blend文件可能自动运行脚本的方式。

注册的文本块
文本块可以启用 注册 选项,这意味会在启动时自动加载。
动画驱动
Python表达式可以用于 驱动 值,并且经常在进阶的绑定和动画中使用。
Game Engine Auto Start
脚本经常用于游戏逻辑,blend文件可以启用 自动启动 选项,加载后自动运行游戏。

手动运行

There are other ways scripts in a blend-file may execute that require user interaction (therefore will run even when auto execution is off), but you should be aware that this is the case since it is not necessarily obvious.

  • Running a script in the Text editor.
  • 使用FreeStyle 渲染,由于 FreeStyle 使用脚本控制线条样式。
  • 运行游戏引擎。

控制脚本运行

Blender提供了一些用于控制是否允许blend文件中脚本自动运行的方法。

First of all, the File Browser has the option Trusted Source which you can use on a case-by-case basis to control auto execution.

不过,你可能会忘记设置这个选项,或者不通过文件浏览器打开文件 -- 所以你可以改变默认选项(下面继续说明)。

设置默认值

在用户设置的 文件 选项卡中,有 自动运行Python脚本 的选项。

这意味着文件浏览器中的 受信任来源 选项会默认启用,并且无需通过文件浏览器,blend文件加载后,脚本就可以自动运行。

一旦启用,你可以排除特定目录,典型的配置是信任除下载目录外的所有路径。

../../_images/animation_drivers_troubleshooting_autorun-user-preference.png

The Auto Run Python Scripts checkbox.

命令行

你可能想要从命令行执行批处理渲染或一些其他的任务 — 不使用界面运行Blender。

这种情况下,前面的用户设置同样适用,不过你也许想要覆盖该设置:

  • 使用 -y or --enable-autoexec 启用
  • 使用 -Y or --disable-autoexec 禁用

示例

在后台模式渲染动画,允许使用驱动和其他脚本:

blender --background --enable-autoexec my_movie.blend --render-anim

Note

These command-line arguments can be used to start a regular Blender instance and will still override the User Preferences.