重新编辑一个已 Compose 的 MC¶
一个已经 compose 出来的 Master Controller 并不是终点。ORC 把它的整份配置写在该节点上,所以你可以明天 —— 或者下个月 —— 再回来,选中这个 MC,继续工作。
一切都通过一个操作完成:在 Harmony 的 Node View 里选中该 MC,然后 + → Import MC。
接下来发生什么,取决于你选中的是什么。
重新打开一个由 ORC compose 出的 MC¶
如果这个 MC 是 ORC compose 出来的,你会得到 完整的重新编辑 流程,你的 rig 会原样回来。
会回来的东西¶
| 你授权过的一切 | pose layer、grid、已打 key 的 frame、target 及其 side、knob、driver、constraint、visibility group、look-at —— 包括它们各自按 snap 打的 key。 |
| 你的工作区 | 哪个 face 处于激活状态、选中的节点、你钉住的 navigator、outliner 的结构。 |
| MC 的名字 | 自动填入该节点自身的名字,所以 默认情况下重新 compose 会覆盖同一个 MC。 |
| Unroll 的目标 | 指向这个已 compose 出的 MC,而不是它最初来自的那个来源。 |
| 一份 divergence 基线(baseline) | 重新打开时会把这个 MC 当下携带的内容记录为比较基准,从那一刻起,你做的任何改动都会显示黄色的 modified 标记。 |
黄色告诉你,自重新打开以来你动过什么
ORC 不在乎一个 rig 是来自你 import 的 Harmony MC,还是来自你重新打开的 ORC MC —— import 只是省去重新授权已存在内容的一条捷径,而不是另一种 rig。不管哪种情况,它带进来时的那些 frame 都会成为参照,之后你改动的任何 frame 都会被标记。
这主要是一种 安全防护。一次误拖拽,或者输错一个数字,都会留下一个看起来仍然完工的 rig —— 那个 pose 还有 frame,那个点仍然是绿的 —— 如果没有标记,第一个征兆要等到 compose 之后,在 Harmony 里才会出现。黄色会在你还在 ORC 里的时候就说 "这个动过了"。
一份已存在的 baseline 永远不会被覆盖:来自某个 Harmony MC 的 layer,在 compose 和重新打开之间会一直指向 那个 MC,所以一个你还没解决的 divergence 不会悄悄地自己重置。
而每一个黄色都有它的逆操作:右键点击被标记的 snap、grid、Navigator 位置或 knob 刻度,Restore Reference 会把 baseline 恰好恢复到这个标记所覆盖的范围上 —— 被删除的 pose 也包括在内。
第一次搭建的 rig 没有任何东西可以比较
任何 从某个 MC 回来的 rig 都带着一份参照 —— 不管那个 MC 来自 Harmony 还是来自你自己上一次的 compose,都没有区别。选中它,它带来的那些 frame 就是一切的衡量基准。
唯一没有参照的情况,是一个全新 rig 的第一次会话:此时还没有它更早的版本,所以什么都不会被标记,也没什么可标记的。等你第一次 compose 并再次打开它之后,这个情况就会改变。
不会回来的东西¶
| 原因 | |
|---|---|
| 被 import 的 target 的 pose | 被 import 的 target 在设计上是无状态的 —— 它们的值活在 MC 和 timeline 上。 |
| 仍在场景中的原始来源 MC | 如果你最初 import 的 front/back MC 已经从场景中消失,它们的槽位只会作为纯标签保留下来 —— 而使用过它们的那些 face 会被 降级为 native,保留自己的 frame,并从自身合成。什么都不会丢失;见 被 import 的 MC 是加速器。 |
| 由更旧版本的 ORC compose 出的 MC 里的任何东西 | 见下文。 |
重新打开会替换掉你当前的 rig
这是 "加载这个 rig",不是合并。如果你的会话里已经有已授权的工作,ORC 会先询问:
Re-open Master Controller Re-opening this MC replaces your current rig. Your session has authored poses that aren't part of it — compose or save first to keep them.
按钮是 Cancel(默认)和 Replace。一个什么都没授权过的会话会被静默替换。
如果它无法被识别¶
一个在 ORC 把数据迁到磁盘之前就 compose 出来的 MC 无法被重新打开,会转而走普通的 import 流程。log 会这样说:
not ORC-readable — treating as regular MC. Recompose to enable re-edit.
解决办法是用当前版本重新 compose 它。
Import 一个普通 MC¶
选中一个不是 ORC compose 出来的 Master Controller —— 也就是 Toon Boom 自带的向导做出来的那种 —— ORC 会 把它反解成一个 pose layer。
五个只读的处理阶段,边跑边报告:pose grid、已授权的 frame、被控制的节点、它们的类型,然后构建这个 layer。在整个过程中 场景里不会创建任何东西,而且只有当 ORC 开始改动自己的数据时才会记一次 undo 快照 —— 所以中途放弃永远不会留下多余的 undo 步骤。
你会得到什么¶
| 一个 layer | 以该 MC 的名字唯一命名。grid 型的 MC 会变成一个 grid layer;slider 型的 MC 会变成一个 slider layer,而不是一个"N × 1"的 grid。 |
| 它的 frame | 按 position 解码进这个 layer 的各个 snap 里。 |
| 它的 target | 它能识别的每一个被控制的节点。对于一个 deform,只保留最顶层的节点 —— 该组本身已经把整条链暴露为一个 target 了。 |
| 一个 knob | 如果这个 MC 拥有不止一层 pose,ORC 会创建一个单独的 slider layer,命名为 <name>·W,并把它接为这个 layer 的 knob。 |
| slider 的外观 | 一个 native slider 的颜色、尺寸、朝向和标签都会被转译过来,让 import 进来的 slider 与你自己授权的没有区别。 |
默认情况下,这个 layer 会作为一个 global 的 free layer 落地。把它拖进某个 control 的 Front 或 Back face,即可给它一个转身。你也可以在该 control 上用 Set Front → Import MC…,直接 import 进某个 face 里。
成功提示会准确告诉你发生了什么:
Imported 'robin-mouth-MC' — 7×3, 42 targets, 21 frames + W knob 'robin-mouth-MC·W' (13 pos). Added as a Global free layer — drag it into a Control (Front/Back face) to make it head-ful.
拒绝的情况¶
| 消息 | 含义 |
|---|---|
| Nothing selected in Node View. | 先选中那个 MC。 |
| No MasterController in selection. | 你选中的东西不是一个 MC。 |
| 'robin-MC' is already imported — remove it first to re-import. | 重复 import 会让它的 target 翻倍,并让同样的节点被两份配置同时驱动。 |
| 'robin-MC' has no readable pose grid — is it a TB Slider/Grid MC? | ORC 在其中找不到可读的 grid。 |
被 import 的 MC 是加速器,不是依赖¶
这是值得记住的规则。
Import 一个 MC 是一条 捷径 —— 它省去了你手动搭建 grid、手动列出 target 的功夫。它不是一条永久的链接,它消失时你的 rig 不会坏掉。
如果你重新打开一个 rig,而它 import 过的 MC 已经不在场景里了 —— 被删除、被改名,或者因为你把这个 rig 应用到了 另一个角色 上 —— ORC 不会失败。它会 把那个 face 降级为 native:被 import 进来的 frame 会被合并进这个 layer 自己的 frame 里,这个 layer 不再是"被 import 的",并从自身的数据合成。
2 imported MC(s) not found in this scene - composing natively from 528 frame(s)
你的 target 完全不受影响 —— 它们一直都是这个 layer 自己的。导航依然正常,因为被 import 的 frame 仍然可供 navigator 的徽章和跳转使用。
这正是 角色 preset 能够跨角色重用的原因。
复制一个 control¶
在某个 control 上右键 → Duplicate Control:
| 模式 | 复制的内容 |
|---|---|
Structure only Ctrl+D |
face —— grid、widget 外观、knob、back 开关 —— 但 target 列表为空。这是上/下眼皮那种工作流:先克隆形状,再重新指向。 |
Full (layers & targets) |
face、target、自有的 pose layer、knob、driver 和 look-at,附带全新的 key 和重新映射过的引用。 |
两种模式都不会复制 pose。
会话恢复(Session restore)¶
ORC 会在你工作时自动保存会话。如果它在编辑中途被关闭,下次启动时反馈栏会提出恢复:
Saved session found — Front: robin-head-MC [Restore] [Dismiss]
这个提示会自行超时消失。你可以在 Preferences 里打开 Auto-restore session on startup,让恢复变成自动且静默的。
这和重新打开一个 MC 是两回事:会话是你 尚未完成的工作,MC 是你 已交付的成果。
这个循环¶
授权 ──Compose──▶ 场景里的一个 MC
▲ │
└──── Import MC ◀────────┘
而对于你想要变成关键帧的 pose,Unroll 补上了这个三角形的第三条边。
因为 ORC 存的是 frame 引用而不是烘焙好的 pose,这个循环在真正重要的意义上是无损的:在对应的 frame 上修好 pose,重新 compose,改动就会被拾取。
相关¶
- Compose
- Unroll
- Character & Config Presets —— 重用一个 rig 的另一种方式
- Widget Editor —— 不重新 compose 就能给一个已合成的 MC 换皮