Knobs¶
knob 是被当作轴使用的 pose layer,而不是被当作一组 pose 使用。
knob 是一种角色,不是一种类型。任何 pose layer 都可以变成它:把另一个 layer 的 Knob 选择器指向它,或者在 Outliner 里把一个 layer 拖到它上面。
变成一个轴改变的是它是什么,而不是它自己的 pose 能做什么:
| 保留的 | 放弃的 |
|---|---|
| 它的 grid,以及编辑它的权限 | Pairs — knob 没有 L/R 双胞胎 |
| 它的target 列表 | Pages — knob 只有单一 page |
| 它自己创作的 pose |
knob 永远是独立、单 page 的。这就是全部代价。
所以把一个成对的 layer 变成 knob,必须先把它收拢成一个,ORC 不会背着你这么做。一个有多个 grid、且额外 grid 上有帧的 layer 会被拒绝:
"Mouth" has authored frames on its extra grids — a knob is a single solo grid. Collapse it to one grid first.
自己把它收拢成单一的 solo grid 就能通过。一个额外 grid 是空的 layer 会被无声地收拢。
收拢实际上会付出什么代价
不是帧。一个 layer 的每个 page、每一侧共用同一个 snap 对应同一帧 — 你在一个 grid 上创作,ORC 会把它写到所有 grid 上 — 所以 pose 在收拢过程中会保留下来。
一个 solo layer 无法表达的是 sides:哪个 target 由哪个 grid 驱动。放弃的正是这份路由关系。
Mirror 决定双胞胎帧落在哪里
复制到双胞胎 grid 上的不是直接复制 — snap 会沿着 layer 的 mirror 轴翻转。开着 Mirror X 在左边创作 R0C0,写入的是右边 grid 的 R0C6,不是它的 R0C0。
所以创作那一刻生效的 mirror 轴,会被烙进这些帧落地的位置,之后再改轴并不会重新映射你已经做好的 key。收拢一个镜像过的 layer,关掉 Mirror X,再配成对,新的创作会落在和旧的不一样的 snap 上。
这都不算错误 — 翻转一个轴同样是你故意反转双胞胎读取方向的方式。只有在你没预料到时才是意外。
经验法则:在一个空的 layer 上,随便改。在一个已创作的 layer 上,预期旧的 key 会留在原处,再自己决定要不要重新打 key。
把一个 layer 指定为 control 的 face 也受同样的保护,原因相同。
它带来什么¶
假设你的 mouth layer 有一个 3 × 3 的角形 grid。现在给它一个 13 个位置的 phoneme knob。
mouth layer 并不会多出 13 个 pose。它多出的是每个 phoneme 一整个 3 × 3 grid — 117 个 pose,以"这个角形,在这个 phoneme 上"来定位。
这就是"keying across"的意思,和一个 layer 与它的 control 之间的关系一样 — 只是又深入了一层。
两种类型¶
两者都创作。两者都有 target。区别在于它们自己的 pose 活在哪个 key domain 里 — 由此决定 Navigator 在你创作时给你什么。
| control 的 knob | 额外的 knob | |
|---|---|---|
| 谁指向它 | 一个 control 的 face | 一个普通的 pose layer |
| 它牵动什么 | control 的整个 pose grid — turnaround 本身 | 只有指向它的那个 layer |
| 它自己的 pose 沿着什么 keyed across | 仅自己的轴 | 自己的轴以及 control 的 grid |
| Navigator 给它什么 | 没有 control grid | control 的 grid |
原因不是规则,是算术。control 的 knob 就是 control 的一个维度 — control 已经通过它 key,如果再叠加 control 的 grid,就是把同一个轴数了两遍。选中它时 ORC 会说明:
This knob authors its own dimensions. The control's grid adds no axis here — the control already keys through this knob.
额外的 knob 是作为子级坐在 control 内部的,所以它确实会拿到 head grid,它的 pose 会像其它任何 layer 一样,随 control 的 pose 而变化。
一个 control 的 Front 和 Back face 共用一个 knob — 在一个上设置,另一个也会跟着变。
给 layer 一个 knob¶
两种方式,效果相同:
- 选中 layer,在它头部的
Knob组合框里选一个 layer。 - 拖拽一个 layer 到另一个上,在 Outliner 里。tooltip 会点名你拖到的那个 layer,并准确说明会发生什么 — 拖到一个叫
Head Knob的 layer 上,会显示 "Key across «Head Knob» (it becomes a knob)"。
组合框的 tooltip 是这一页的浓缩版:
The KNOB this layer keys across — its extra control axis (a phoneme/expression grid, the W slider…). Pick a layer to make it this layer's knob (or drag a layer onto another in the outliner). THIS layer's targets stay here; the knob keeps its own grid, targets and poses, but becomes solo and single-page.
消费者的 target 留在消费者身上
这个组合所驱动的东西,列在指向 knob 的那个 layer 上,不在 knob 本身上。knob 自己的 target 列表是独立的,驱动的是这个 knob 自己 pose 出来的东西。
已经有 pose 的 layer 会保留它们 — 落在位置 0
采用一个 knob,会把这个 layer 已有的 key 重新安置到 knob 的第一个位置上:位置 0 显示的正是这个 layer 之前显示的内容,其余每个位置都从空白开始,等着创作。(Compose 本来就是这样读它们的 — 这次移动只是让编辑器与之一致。)
要移除一个 knob,把选择器设回 —。
knob 能是什么、不能是什么¶
每个 layer 只能有一个 knob。 选择器是单个组合框,选新的会替换旧的。
ORC 会拒绝没有意义的接线方式,每次都在反馈栏里给出原因:
| 拒绝 | 原因 |
|---|---|
| "Can't — that would cycle the dimensions." | knob 不能沿着一个反过来沿着它的东西 keyed across。 |
| ""Eyebrows" belongs to "Head" — a layer only keys across knobs of its OWN control. Make the knob global to share it." | Control exclusivity。要在多个 control 之间共享一个轴,把它设为全局。 |
| ""Mouth" has authored frames on its extra grids — a knob is a single solo grid. Collapse it to one grid first." | knob 是单个 grid。Pages 和 pairs 是 pose 的概念。 |
成功后你会得到绿色确认: ""Mouth Corners" now keys across "Head Knob" (it's now an axis)."
knob 是终端节点。 knob 自己不会再有 knob 选择器 — 那一行直接隐藏。knob 的链条不属于这套模型。
编辑一个 knob¶
选中一个 knob,给你的是普通的 pose-layer 页面:一个可编辑的 grid、一个 target 列表、它自己的帧。头部会说明它的角色 — Knob Layer in Head Control — Navigator 会像上表所说的那样,给 control 的 knob 去掉 control grid。
你能对一个 layer 做的一切,在这里都能做:改变它的形状和 Pos 数量、添加 target、给 pose 打 key、设置它的 visibility group。
重新塑形一个 knob 会给它的消费者重新编号
改变 knob 的形状,会把骑在它身上的所有 layer 持有的每一个 key 重新定位,让每个已创作的位置保住自己所在的 snap。ORC 会汇报它做了什么: "Knob reshaped — 84 key(s) renumbered to the new grid."
1-D 和 2-D knob¶
| 形状 | 合成后 rig 里的 widget |
|---|---|
| 一个 slider | 一个 slider — 动画师拖动的一根横条,N 个位置 |
| 一个 grid | 第二个 2-D widget |
一个 2-D knob 的代价是两个维度,而不是一个。这就是一个 5D layer 和一个 6D layer 的区别。
沿着 knob 填充¶
一旦 layer 有了 knob,它的头部就会出现 Fill Dimensions。它会把这个 layer 已创作的帧,按每个位置的帧偏移量,复制到 knob 的每一个位置上 — 在细化之前粗略打好一个 knob 轴的最快方式。
见 Fill Grid & Fill Dimensions。
代价¶
每一个 knob 的位置都会成倍增加你可以创作的 pose 数量、Compose 花费的时间,以及它占用的内存。
| Rig | Pose 数 |
|---|---|
| 一个全局的 3 × 3 layer | 9 |
| ……在一个 5 × 3 control 里 | 135 |
| ……再加一个 13 位置的 knob | 1,755 |
| ……换成一个 3 × 3 的 knob | 1,215 |
你不必把它们全部打上 key — 没打 key 的 snap 会直接从相邻位置混合。但你添加的每一个 knob,都是一个关于这个 rig 需要多少创作量的决定。
相关¶
- Dimensions & Key Domains — 这些轴怎么累加
- Pose Layers — knob 是由什么构成的
- Fill Grid & Fill Dimensions
- Grid Presets — 值得复用的形状
