驱动器面板

../../_images/animation_drivers_drivers-panel_panel.png

编辑驱动器弹窗。

参考

编辑器:

曲线编辑器

模式:

驱动

面板:

侧栏 ‣ 驱动器

快捷键:

N

参考

菜单:

上下文菜单 ‣ 编辑驱动器

快捷键:

Ctrl-D

这个面板在 驱动编辑器 右侧工具栏可见,或者给属性添加驱动器时弹出。

开头显示的是正被驱动的属性名称,然后是决定驱动器如何作用的一系列设置。

驱动器设置

类型

有两类驱动程序:

  • 内置函数 (平均, 求和, 最小值最大值)

    驱动属性将获得被引用 驱动器变量 数值的平均值、总和、最低或最高值。如果只有一个驱动器变量,这些函数将产生相同的结果。

  • 自定义 ( 脚本表达式 )。

    利用 驱动器变量 的Python表达式,变量可以来自的物体属性。详见 表达式

驱动器值

当前驱动器的计算结果。

变量

驱动变量

更新依赖

强制更新驱动器值相关性。

在驱动器编辑器中显示

打开全功能的 驱动器编辑器。该按钮仅显示弹出菜单形式的驱动器。

驱动变量

变量可以是物体单个属性、变换通道(位置缩放等信息)、两个物体的旋转角度差值、两个物体的距离。

驱动器通过 驱动器变量 访问物体数据,而不是以Python表达式形式引用,以便正确跟踪依赖项。

../../_images/animation_drivers_drivers-panel_add-variable.png

添加、复制、粘贴按钮。

添加变量

添加新的驱动变量。

复制/粘贴变量

复制当前的变量列表,供粘贴到其他驱动器的变量列表中。

../../_images/animation_drivers_drivers-panel_single-property.png

单个属性。

../../_images/animation_drivers_drivers-panel_transform-channel2.png

变换通道。

../../_images/animation_drivers_drivers-panel_distance.png

距离。

名称

用于脚本表达式的变量名。必须以字母开头,仅允许包含字母、数字或者下划线。

变量类型

使用的变量类型。

单个属性

检索由数据块引用和路径字符串指定的RNA属性的值。

在变换属性的情况下,这将返回 UI 属性的确切值,而变换通道将根据需要考虑父项和/或约束。

另见 自定义属性

标识类型

标识类型。例如:关键帧,图像,物体,材质。

ID

数据块的 ID,如:"Material.001"。

RNA路径

The RNA name of the property, based on a subset of Python attribute access syntax. For example: location.x or location[0] for the X location animation channel value (before parenting or constraints), or ["prop_name"] for a custom property.

Tip

The easiest way to create a variable of this type is to use the Copy As New Driver context menu option of the input property, and paste the result into the driver via Paste Driver Variables.

变换通道

使用物体或骨骼的某一变换通道。

ID

物体的 ID 。如:Cube、Armature、Camera 。

骨骼

ID of the Armature bone. For example: "Bone", "Bone.002", "Arm.r". This option is for armatures.

类型

譬如 X 位移、X 旋转、X 缩放。

平均缩放 选项检索合并后的缩放值,计算为总体积变化的立方根。与 X/Y/Z 缩放 不同,如果物体被负值缩放翻转,则该值也可以是负数。

模式(旋转)

对于旋转通道,指定要使用的旋转数据类型,包括不同的显式 欧拉 顺序。默认使用目标的欧拉顺序。请参阅 旋转通道模式

空间

世界空间、变换空间、自身空间。

旋转差值

使用两个物体或骨骼的旋转差值。

距离

使用两个物体或骨骼之间的距离。

上下文属性

Provides the value of a property that is implicitly referring to either a scene or a view layer of the currently evaluating animation system. This is a weak reference which does not lead to the scene or view layer referenced from the driver to be linked when linking animation data.

An example when such properties comes in play is referring to a transformation of the active camera. It is possible to setup driver in a character file, and make the driver use the set camera when the character is linked into a set.

RNA路径

The RNA name of the property, based on a subset of Python attribute access syntax. For example: camera.location.x or camera.location[0] for the camera X location animation channel value (before parenting or constraints), or ["prop_name"] for a custom property.

Tip

Although the values of the x/y/z animation channels for the camera location can be accessed via camera.location[0/1/2], retrieving its world space location and orientation after parenting and constraints currently requires using camera.matrix_world. This property can be understood easily by viewing the matrix as an array of four vectors in World space:

  • matrix_world[0][0/1/2] is the Screen Right direction vector (camera local X).

  • matrix_world[1][0/1/2] is the Screen Up direction vector (camera local Y).

  • matrix_world[2][0/1/2] is the opposite of the direction the camera is pointing.

  • matrix_world[3][0/1/2] is the location of the camera.

数值

显示变量数值。

旋转通道模式

旋转变换通道支持多种操作模式,包括:

自动欧拉

使用目标 欧拉 顺序将旋转分解为通道。

XYZ 欧拉,...

明确指定使用的 欧拉 旋转顺序。

四元数

提供旋转的 四元数 表示。

摇摆和 X/Y/Z 扭曲

将旋转分解为两个部分:一个 摇摆 旋转,该旋转以指定轴为最终方向,后跟一个 扭曲 围绕该轴旋转。这通常是驱动纠正: 形态键 和骨骼有机关节旋转所必需的。

此分解通常是在绑定中生成的,使用带有 阻尼跟踪约束 的辅助骨骼来提取摆动部分,其子级用 复制变换 来提取扭曲分量。

摇摆和 Y 扭曲 的通道值为:

../../_images/animation_drivers_drivers-panel_angle-curve.png

加权角度的衰减曲线。

Y 旋转

扭曲旋转的真实角度。

W 旋转

摆动旋转的真实角度,与方向无关。

X 旋转,Z 旋转

表示围绕 X/Z 轴的摆动量的加权角度。

当旋转仅围绕该轴时,角度的幅度等于 W 旋转,当方向向另一个轴移动时,随着右侧图形的衰减曲线,该角度将衰减为零。

Mathematically, the swing angles are computed from quaternion components, using \(2 \arccos(w)\) for W and \(2 \arcsin(x)\) etc. for the others. The component of the swing rotation that corresponds to the twist axis is always 0, and is replaced by the twist angle.

表达式

表达式

一个文本框,可以在其中输入一个任意 Python 表达式,该表达式以名称引用 驱动器变量

表达式可以访问来自 mathbl_math 和其他模块的一组标准常量和数学函数,这些函数在 驱动器命名空间 提供。关于向命名空间添加自定义函数的例子,请参阅驱动器命名空间示例

为了优化性能,最好尽可能使用 简单表达式

使用自身

使用 self 变量引用自身数据。用于物体、骨骼,避免创建指向自身属性的变量。

举例:self.location.x 可用于同一对象的 Y 旋转属性,使对象在移动时旋转。

请注意,可能无法完全跟踪通过 self 访问的属性的依赖项。

简单表达式

Blender可以直接使用Python的函数表达方法,显著提高性能,尤其是在多个系统中。要利用此功能,驱动程序的表达式必须且仅使用以下功能:

变量名称

仅使用ASCII字符。

常量

浮点和十进制的整数。

全局变量

frame

常量

pi, True, False

操作项

+, -, *, /, ==, !=, <, <=, >, >=, and, or, not, 条件运算符/ 三元 if

标准功能

min, max, radians, degrees, abs, fabs, floor, ceil, trunc, int, sin, cos, tan, asin, acos, atan, atan2, exp, log, sqrt, pow, fmod

Blender提供的功能

lerp, clamp, smoothstep

即使禁用 Python 脚本执行,也会计算简单表达式。

当使用此子集外部的表达式时,Blender 将显示 “慢速 Python 表达式” 警告。但是,只要大多数驱动器使用的是简单的表达式,有选择地使用几个复杂表达式是可行的。