跳转至

Pages, Pairs & Sides

视频教程 — 即将推出

一个角色有两条眉毛。它们通常是镜像的,有时不是,而且大多数时候需要一起摆姿势,少数时候需要分开摆。

Pages、pairs 和 sides 就是一个 pose layer 处理这件事的方式。

A paired pose layer

Page

page 是一个 layer 的 grid 的编号变体。一个 layer 从一个 page 开始,用 grid 那一行的 添加更多。

一个 page 装的是:

  • 一个 pair — 两个 grid,分别标着 Left-1Right-1,或者
  • 一个 solo — 一个 grid,标着 Solo-1

grid 那一行下面那条带编号按钮的细条用来切换 page。只有一个 page 时它会被隐藏。

page 编号是稳定的 id

删掉 page 2,剩下的还是 13。这个空缺是对的 — 你的 target 的 side 归属仍然指着 page 3,重新编号会悄悄改变它们的指向。

什么随 page 变化,什么不变

随 page 变化吗?
grid 驱动哪些节点 — 这正是 page 的意义
创作出来的 — 在任何一个 page 上创作的帧,会在所有 page 上生效
mirror 轴 — 它们属于整个 layer

最后一条常让人意外。page 关乎的是路由,不是时间:同一个表情发生在同一帧上;不同的是哪个 grid 牵动哪些节点。

Pair 和 Solo

grid 头部的那个按钮很聪明:

显示 做的事
一个成对的 grid × 移除那个 grid — 这个 page 变成 solo
一个 solo grid + 把第二个 grid 加回来 — 这个 page 变成 pair

变成 solo 不会丢失任何东西。帧本来就是共享的,而任何原本在被丢弃那一侧的 target,从此单纯由留下的那个 grid 驱动

ORC 会记得每个 target 原本来自哪里,所以重新配对这个 page,会把每个 target 放回它原来的 grid。 你可以自由地收拢和重新配对。

Side

每个 target 都带一个 Side,说明哪个 grid 驱动它。只要 layer 不止一个平凡的单一 solo page,target 列表里就会出现 Side 列。

The Side column

含义
Left-1 由 page 1 的左侧 grid 驱动
Right-2 由 page 2 的右侧 grid 驱动
Both-3 由 page 3 的两个 grid 一起驱动
Solo-1 page 1 是 solo;只有一个 grid
Mixed 一个 deform 曲线互相冲突的组 — 仅用于提示信息,永远不能被选择

look-at 的 peg 和 deform 列表还多一个值,Orphan,表示 side 因为 solo pair 而被丢弃 — 见 Look-At。pose layer 从不显示它。

一个 solo page 只贡献它的 Solo-N 这一项 — 不会有对应这个编号的 Left、Right 或 Both。

即使显示的已经是对的,也要重新选一次 side

一行如果是从它所属的组继承 side,显示的就是那个 side。再选一次同样的值仍然会真正提交它,这一点很重要:一个镜像 rig 上继承来的 Both,会把左右取平均,可能正好抵消回静止 pose。如果一个 target 看起来毫无反应,就明确地给它设置 side。

Cascade

deform 链按一个方向解析它们的 side:

curve  →  group  →  target

一条什么都没说的 curve 继承它所在 group 的 side;一个什么都没说的 group 继承 target 的 side。行显示的是解析后的值,所以一行永远不会误导你哪个 grid 在驱动它。继承来的值以暗淡显示;设置过的显示为实色。

一次分配多个

选中多行,改动一个 Side 组合框 — 改动会级联到整个选区。

Mirror

layer 头部的 Mirror XMirror Y 决定一对 grid 中的双胞胎 grid,如何跟随你正在拖动的那一个。

翻转的方向
X(默认开启) 左/右 — 标准的左右对称
Y 上/下 — 用于眼睑/嘴唇之类的配对
两者都关 双胞胎是一份原样复制,不是镜像

这两个轴属于整个 layer,不属于某个 page — rig 本身是对称的,一对的 mirror 轴和它的兄弟不一致,那是 bug,不是特性。

在创作之前先设置好 mirror 轴

创作一个 snap 时也会把它写入双胞胎 grid,但双胞胎的 snap 会沿这些轴翻转。开着 Mirror X,在左边打 key R0C0,写入的是右边 grid 的 R0C6 — 不是它的 R0C0

这意味着你创作那一刻生效的轴,会被烙进这些帧落地的位置,之后再改轴不会重新映射你已经做好的 key。一个开着 Mirror X 创作过的 layer,关掉之后重新配对,新的 key 会落在和旧 key 不一样的 snap 上。

在一个空 layer 上改变 mirror 轴不花任何代价。在一个已创作的 layer 上,这是一个决定,不是意外:它同样也是故意反转双胞胎读取方向的手段。只需预期已有的 key 会留在原处 — 只有新的创作会跟随新的轴。

在合成后的 rig 里,动画师会得到两个运行时开关:

开关 效果
Mirror 在一对之内 — 最后移动的那个 handle 驱动它的双胞胎。
Mirror All 跨越多对 — 移动一对会驱动每一个兄弟对。只有当某个 layer 确实持有两个或更多成对的 page 时才会出现。

Mirror All 生效期间会强制打开 Mirror。

Flip Sides

Targets 工具栏里的 按钮,在同一个 page 编号内交换 LeftRight:Left-1 变成 Right-1,Right-2 变成 Left-2Both-NSolo-N 不受影响。

它只翻转存储的 side 值 — 从不涉及节点路径,从不涉及关键帧,从不涉及 pose。它是用来修正一个建反了的 target 列表的工具。

在没有 pair 的 layer 上,这个按钮会带着原因被禁用,而不是隐藏: "Flip Sides — this layer has no L/R pair (solo grids have no sides to flip)."

look-at 的 peg 和 deform 列表带有同样的按钮。

Copy & Paste Sides

在 target 列表里右键点击一个 target 行:

项目 复制的内容
Copy Side (L) 只有这一行的 side
Copy Sides (7 curves) 这一行整个 side 模式,逐条曲线复制
Paste Sides 应用这个模式
Paste Sides Mirrored 应用它,并交换 L 和 R

范围写在标签里,从来不取决于这一行是否折叠。 有几百个 target 时,你折叠组是为了塞进屏幕,不是为了表达意图 — 折叠只决定哪个项目会以粗体作为默认项。

一个不兼容的剪贴板,会让 Paste 带着原因作为 tooltip 被禁用,而不是悄悄地只粘贴一部分。这个保护是结构性的:组数相同、每组曲线数相同、模块顺序相同。

剪贴板在切换 layer 时依然保留,即使源 target 被删除也依然保留。

Share Sides

那是一个 control 的功能,不是 layer 的 — 它让 control 的 Back face 复用 Front 的极值列。见 Controls → Share Sides

相关