Drivers¶
driver 是一个写入数值的 widget。
pose layer 说的是"在这个位置,显示第 861 帧",而 driver 说的是"把这个节点的 OPACITY 设为 43.7",或者"替换这张 drawing",或者"禁用这个节点"。
在 Outliner 里用 + → Driver 添加一个。它创建后会直接跳转到自己的编辑器 — 没有对话框。
编辑器分两个部分: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 Attribute、Enable / Disable Node、Show / Hide Node Controls、Show / Hide Deformers |
| Slider | Set Value、Multi-Attribute |
| Combo | Set Value、Multi-Attribute、Drawing Substitution |
| 2-D pad | Set Value、Multi-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 |
Global、Control、Pose 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¶
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。
相关¶
- Dimensions & Key Domains — Scope 是什么意思
- Constraints — checkbox 类型的 driver 能控制什么
- Look-At — driver 能接管哪些 field
- Visibility Groups — widget 所在的位置
- Widget Editor — 你在哪里放置它

