工作流程 & 范例

    这个例子展示了如何建立一个变换驱动器。首先确保你用的是正交前视图。 Numpad5, Numpad1.

    • 在物体模式,选择并复制默认立方体。 Shift-D ,将 "Cube.001" 移到一边。
    • 选中 "Cube.001" ,对 旋转 Y 属性添加单个驱动器。
    • 打开 曲线编辑器 ,设置模式为 驱动器
    • 在通道区域,选择 Y欧拉旋转 属性。
    • 按下 N 打开属性区块,向下滚动到驱动器面板。
    • 修改 类型平均化值 ,这将返回所有驱动器变量的平均值。
    • 修改驱动器变量设置:
      • 类型 — 变换
      • 物体 — Cube
      • 变换类型 — X 位移
      • 变换空间 — 世界空间

    结束之后,从左向右移动 "Cube"时,"Cube.001" 会绕Y轴旋转。

    驱动器表达式

    这里是一些使用脚本表达式设置驱动器值的范例。

    物体旋转。

    环绕一个点

    这里对立方体的X位移和Y位移分别添加驱动器。

    • X位移表达式
    • Y位移表达式
      • (frame/8) : 表示当前动画帧除以8,降低环绕速度。 (cos( )*4) : 返回 (frame/8)的余弦值,再乘以4,放大环绕半径。 0 + : 用于控制环绕时 Y 位移偏移量。 与 bpy.context.scene.frame_current 等价。

    驱动器命名空间

    内置的驱动器函数和属性是一个列表。可以使用Python控制台显示出来:

    下面的脚本用于添加一个函数到驱动器命名空间,接下来可以在表达式中使用 driver_func(frame)

    1. import bpy
    2.  
    3. def driver_func(val):
    4. return val * val # return val squared
    5.  
    6. # add function to driver_namespace
    7. bpy.app.driver_namespace['driver_func'] = driver_func

    形态键驱动器

    这是一个形态键驱动器的范例,即对形态键数值添加驱动器。

    形态键驱动器。

    该例子使用骨架的骨骼 "b" 的Z旋转控制形态键数值。骨骼旋转模式设置为XYZ欧拉。

    • 骨骼Z旋转 -2.09 (-120.0): 形态键数值 1.0这种类型的驱动器还可以使用旋转差值变量类型设置。

    更多信息参考 形态键

    下面的屏幕截图展示了结合形态键,骨骼和驱动器,来制作共用基型的多重链状相关形态键。尽管这样没有使用绝对形态键的单一时间计算来的方便,但却可以做出更复杂的形态键关系。

    作为基型的形态键的挤出面完全缩回,Key1的基底完全挤出,Key2A挤出左侧凸起,Key2B挤出右侧凸起。Key2A和2B都和Key1相关(如右下角的形态键面板所见)。

    Key1的值通过一个包含两个变量的驱动器,与两个骨骼的位置属性绑定。每一个变量使用的都是骨骼的全局Z坐标,然后取最大值决定基底的挤出量。多项式生成器用于使基底的上表面与骨骼对齐。

    Key2A的值与 Bone.L 的位置绑定。生成器的参数使得当Key1的值增加到1时,Key2A 才开始从0增长。这样的话,左侧凸起顶部会与 bone.L 一起移动(基本上)。

    由于bone.L 和 bone.R很容易出现位置差异,这意味着Key1的值会导致冲突,有时骨骼无法与对应的凸起对齐。如果Key1的驱动器使用平均值或最小值,而非最大值,来确定形变键的值, bone.L 和 bone.R 的“冲突”则会断然不同。用户可以视动画需求进行选择。