跳转至

Drivers

视频教程 — 即将推出

driver 是一个写入数值的 widget。

pose layer 说的是"在这个位置,显示第 861 帧",而 driver 说的是"把这个节点的 OPACITY 设为 43.7",或者"替换这张 drawing",或者"禁用这个节点"。

在 Outliner 里用 + → Driver 添加一个。它创建后会直接跳转到自己的编辑器 — 没有对话框。

Driver editor

编辑器分两个部分:Setup(它驱动什么、怎么驱动)在上,Values(你实际转动的那个 knob)在下。


四种类型

类型 Widget 试一下
Checkbox 两种状态
Combo Slider N 个离散选项
Continuous Slider 一个连续区间
Continuous Grid 一个 2-D 面板

driver 的面板永远是连续的 — 一个离散的 2-D 东西是 pose layer,不是 driver。

改变类型会实时重建 Values 的 knob,新类型驱动不了的属性会被丢弃,而不是悄悄留着。


Setup

Targets

这个 driver 写入的节点。+ 提供:

条目 添加的内容
Add from Node View Harmony 里当前选中的东西
Look-At ▸ 一个 look-at field — driver 接管该 field 的值
Driver ▸ 另一个 driver — 这一个驱动那一个
Constraint ▸ 一个 constraint — 这个 driver 控制它的开关

这份列表是混合的:Harmony 节点和内部 target 并列存在。

只能是同一类型

driver 只能驱动自己这一类型的另一个 driver,或者同类型的 look-at field。checkbox 驱动 checkbox,slider 驱动 slider。原因很实际:checkbox 往 slider 里写 0/1 会把它钉死在两个值上,而 slider 往 checkbox 里写 37.5 会被读成"开"。

当没有任何选项符合条件时,子菜单会被禁用并说明原因: "No other Slider driver to be driven by — a driver can only drive one of the same kind."

只有 Checkbox 类型的 driver 才能控制一个 constraint 的开关,因为 constraint 只有开和关两种状态。

Behaviour

字段 作用
Label 动画师在 widget 上看到的名字。
Widget Checkbox / Combo Slider / Continuous Slider / Continuous Grid。
Operation 这个数值做什么 — 见下文。
Attribute 写入哪个 Harmony 属性。列表只会显示这种 widget 类型实际能驱动的属性。
Visibility Group widget 所在的位置。
Blend 只有当一个 target 与另一位作者重叠时才会出现。

Operations,按类型分:

类型 Operations
Checkbox Toggle AttributeEnable / Disable NodeShow / Hide Node ControlsShow / Hide Deformers
Slider Set ValueMulti-Attribute
Combo Set ValueMulti-AttributeDrawing Substitution
2-D pad Set ValueMulti-Attribute

Multi-Attribute 下,Attribute 字段会被禁用,并显示 "mapped per row in Options ▸ Attribute Mappings" — 每一行在那边都有自己的属性。

灰掉,但绝不隐藏

当某种 widget 类型不可用时,ORC 会把它灰掉,并把出路写在 tooltip 里 — 比如 "This driver drives «Blink», which is a Checkbox — remove that target from the Targets list to change type." 你永远不用猜某个选项为什么用不了。

Options

这里出现的内容取决于类型和 operation。

Handle Min / Handle Max — handle 映射到的数值区间,默认 0–100。Default — 它的起始位置。

在 Multi-Attribute 下 min/max 会消失:handle 本身就是一个百分比,每一行 mapping 都带着自己的区间。

X Min / X Max / Y Min / Y Max,加上 Default X / Default Y。两个轴的默认范围都是 0–1。

+ Option 添加一个条目。一个 option 里包含什么取决于 operation:

Operation 一个 option 是
Set Value 一个 label 和一个数字
Multi-Attribute 一张卡片,里面装着若干属性行和/或 drawing 替换
Drawing Substitution 每个 READ target 一张 drawing,自动镜像

Default 决定 rig 从哪个 option 开始。

零个 option 时 Values 的 knob 会被禁用,并显示: "This knob has no options yet. Add them in Setup ▸ Options to make it usable."

用于 Multi-Attribute 下的 slider 或 pad。每一行是一个节点、一个属性、一个 min、一个 max,以及 — 对 pad 来说 — 由哪个 axis 驱动它。driver 的 0–100% 会被重新映射到每一行自己的区间里。

Influence

每个 driver 都可以带一个 influence:一个 0 到 1 的第二 widget,决定这个 driver 能做多少

字段 含义
Influence Widget Slider(可以停在中间任意位置)或 Checkbox(全有或全无)
Influence Visibility Group widget 所在的位置 — Hidden隐藏
Influence Default rig 出生时的强度 — 100% 是满驱动,是中性值

default 用的是 ORC 其它地方一样的 widget 来设置 — 带锚点和箭头、以百分比刻度呈现的 nav slider,或者当 influence 本身就是 checkbox 时用 checkbox。

Widget Editor 里,influence 是一个和其它 widget 一样的 widget:始终列在列表里(处于 Hidden 时变灰,和所有被隐藏的东西一样),它自己的 Visibility Group 就在那里可编辑,有它自己的 Label 字段(默认 <driver> - Influence,与合成后的 rig 共享),还有一个跟随它 slider / checkbox 类型的字形。

Hidden 只隐藏 widget;default 依然生效。 一个 influence 停在 Hidden 、值为 100% 中性值的 driver,单纯地驱动 — rig 里不会多出任何东西。但如果把 default 设成比如 50% 并隐藏它,你就硬编码了"这个 master 永远只驱动一半",而不给动画师留一个 slider:这个值作为一个属性活在合成后的 MC 的 Layer Properties 里,只有在那里能碰到 — 和 Interpolation 开关得到的待遇一样。

influence 意味着什么取决于被驱动的是什么:

驱动的对象 influence 为 0 时
一个数值属性 值回到这个 driver 介入之前的样子 — 一次直接的 blend
一个 toggle driver 什么也不做(低于 0.5 时直接被跳过;一个半开的节点没有诚实的意义)
另一个 widget,或一个 look-at field driver 释放它 — target 重新听从自己原本的 control

最后一条最值得记住:driver 到 driver 之间链接上的 influence 是释放/持有,不是 blend。

Scope

字段 决定什么
Control 哪个 control 拥有这个 driver — 或者 Globals
Keyed across GlobalControlPose Layer,或 Control + Pose Layer
Pose Layer 对 layer 相关的 scope,选哪个 layer,以及 Use pose layer knob
Side 当 layer 不止一个 page 时,选哪一侧 page

这就是这个 driver 的 key domain — 它决定 driver 是到处保持同一个值,还是每个 snap 各有一个值。

checkbox 类型的 driver 只能是 Global

其它一切都会灰掉并给出原因。如果你需要按 snap 开关,用带两个 option 的 Combo Slider。


Values

Driver values

knob 本身,加上区块标题里一个小小的 auto-key 圆点 — 打开时是绿色。

Slider 和 combo 自带导航元素: / 一次移动一格,两端的锚点 — start 和 end — 可以直接跳到任意一个极值。

重新打开后,改动过的值会变黄

在从合成好的 MC 重新打开的 rig 上,某个 snap 处的 driver 值被改动过,该 snap 就会在 driver 的导航元素上 — layer grid、slider 的 tick head、knob card — 以及它上方的 control snap 上标成黄色。重新打相同的值不会标出任何东西:黄色报告的是"哪里不一样",不是"你的光标去过哪里"。见 Visual Indicators

给 driver 打 key

把鼠标悬停在 knob 上按 F6,或者右键点击它:

项目 说明
Set Key F6 在 Global scope 下禁用,并给出原因
Remove Key F7 这里没有 key 时禁用
Set as Default
Reset to Default
Driven by ▸ 是哪个 driver 驱动这一个

在 Global scope 下,打 key 的这些项目会自己解释原因:

This driver's Scope is Global, so it holds one value everywhere. Set Scope to a control grid in Setup to key per snap.

颜色

颜色 含义
绿色 在这个 snap 上有 key
红色 插值 — 从相邻的 key 混合而来
粉色 被另一个 driver driven

绿色的有 key 状态胜过粉色的 driven 状态,当你移除这个 key 时,粉色会在下面重新露出来。一个 driven 的 knob 依然可以交互 — 你可以把它推动来预览,compose 时它会被从自己的来源覆盖。


Additive drivers

blend 为 Additive 的 driver,写入的内容是叠加在另一位作者已经产出的结果之上的。它的 key 是增量,不是绝对值,零表示没有变化。Outliner 用一个 Σ 标记它。

blend 的默认值跟随 scope — 全局 driver 是叠加,按 snap 的 driver 是覆盖 — 这一行只有在某个 target 确实与另一位作者重叠时才会出现。

Additive 只应用于真正重叠的 target。一个独占作者的节点没有可以叠加的基础,而叠加在自己之前写过的值上正是数值失控的原因。


Mute

在 Outliner 里右键点击一个 driver,选择 Mute: "Skip this driver at compose without deleting it (dimmed in the outliner)."

这一行会变暗,driver 仍留在 rig 里,但 Compose 会忽略它。这是在不删除某个 driver 的情况下测试 rig 的办法。


driver 会变成什么

在 Compose 时,每个 driver 都会变成画布上的一个 widget,加上一个在它移动时以及每次 rig 更新时都会运行的函数。它在 MC 节点上带着自己的属性,所以动画师可以像对待任何其它 Harmony 属性一样,在时间线上给它打 key。

相关