Outliner 树¶
Outliner 就是 rig。窗口里其他一切——Navigator、Editor、Compose 按钮对你是否准备好的判断——都读取你在这里选中的内容。
结构¶
这一列由三样东西堆叠而成:一个工具栏(+ 和 −)、一个筛选栏(显示模式、搜索、漏斗)、以及树本身。
没有"Outliner"这个标题——工具栏就是这一列的名字。
+ 菜单¶
点击 +(或在树的空白处右键)会打开 ORC 中处处相同的这个菜单。它有三组:
| 项目 | 创建的内容 |
|---|---|
| Pose Layer | 一个空的 pose layer。新建的 layer 生来是全局的——把它拖到某个 control 上即可嵌套进去。 |
| Control | 一个空的 control,名为 New Control,内联重命名已经打开。 |
| Look-At | 一个 look-at 节点。见 Look-At。 |
| Driver | 一个 driver,直接路由进 Driver 编辑器——没有对话框。 |
| Constraint | 一个 constraint,直接路由进 Constraint 编辑器。 |
| Visibility Group | 一个位于根级别的组,与 Hidden 是兄弟节点。(要把一个组嵌套进另一个,右键父组并使用 New Visibility Group Inside。) |
| Import MC | 把 Harmony 的 Node View 中当前选中的 Master Controller 作为一个新 layer 导入——它的 grid、已 author 的 frame 和 target 都会一并带来。见 Re-editing a Composed MC。 |
− 移除当前选择。当 rig 中没有任何 layer 时禁用。
两个分区¶
树的最上层永远正好是两个标题:
Rig —— rig 图的第 0 层。它容纳所有 control,同时也容纳不属于任何 control 的一切:全局 pose layer、全局 knob、全局 driver、constraint 和全局 look-at。把一个 layer 拖放到 Rig 标题下,意味着"不属于任何 control"。
Visibility Groups —— 组的层级结构。默认折叠。
两个标题都不能被选中、重命名或删除,但都可以接受拖放。
读懂一行¶
每一行都带着一对图标:左边是一个角色图标,右边是一个类型图标。角色说明这是什么种类的东西;类型说明它是什么形状的 widget。
角色图标¶
| 图标 | 角色 |
|---|---|
| Control | |
| Pose layer | |
| Knob —— 一个被用作维度来源的 layer | |
| 一个 control 自己的 knob | |
| Look-At | |
| Driver | |
| Constraint | |
| Visibility Group | |
| 永久性的 Hidden 组 |
类型图标¶
| 图标 | 类型 | 含义 |
|---|---|---|
| Combo Slider | 1-D、离散——它在每个刻度上停住 | |
| Continuous Slider | 仅用于 driver | |
| Combo Grid | 2-D、离散 | |
| Continuous Grid | driver pad 和 look-at | |
| Checkbox | driver |
图标会自己说明自己
内部的线条 就是 snap 的停靠点。 一个连续类型正好等于它的离散孪生体减去这些线条。一旦你看懂了这一点,就能不靠图例读出任何一行的形状。
第二列¶
在默认的 Dimensions 模式下,右侧的列显示这一行跨越了多少个轴。芯片是灰色的,只有一个例外:
| 颜色 | 含义 |
|---|---|
| 灰色 | 正常。 |
| 红色 | 一个 compose blocker——两个 extra knob 写入了同一个 node 和 channel,无法相加。Compose 会拒绝执行,直到你解决它。 |
红色不局限于芯片本身:整行都会被重新着色——名字、芯片和两个图标——因为这是唯一会阻止你交付的状态。
一个 pose layer 显示的是它所有轴的诚实总和——自己的 grid,加上它的 carrying parent,再加上每个 extra knob。
芯片之后,一行还可能带一个尾部图标:
| 图标 | 含义 |
|---|---|
| 一个 control 同时有 Front 和 Back 两个 face——一个 turnaround。 | |
| 一个 pose layer 有 L/R mirror 配对。两个或更多会附加一个小小的凸起计数。 | |
| Σ | 这个 layer 或 driver 以叠加方式合成——它的 key 是相对于中性态的增量,而不是绝对值。 |
mirror 图标和 Σ 共用一个位置,并且 Σ 总是优先。
把鼠标悬停在任意芯片上:tooltip 会用文字拼出完整的总和,例如"5D — total axes this layer keys across (own grid + carrying parent + each extra knob)."
Pin¶
Control、pose layer 和 knob 各自都有自己的 navigator,所以它们在第二列最右侧带一个小小的图钉。
| 图标 | 状态 |
|---|---|
| 已固定——实心的钉头 | |
| 未固定——空心的钉头,更暗 |
点击它只切换图钉状态,不做别的——不会选中这一行,也不会开始拖拽。见 Navigator。
树是如何嵌套的¶
你不能直接选择一行的父级;ORC 会根据这个 node 实际跨越的内容来推导它。在 Dimensions 模式下:
- 一个全局的自由 layer 位于
Rig下的第 0 层——除非它跨越某个 knob,这种情况下它会嵌套在那个 knob 下。 - 一个 control 的 Front / Back face 会被吸收进 control 里,完全不会作为独立的行显示出来。
- 一个跨越同一个 control 内的 knob 的 layer,会嵌套在那个 knob 下。
- 否则,一个被分配给某个 control 的 layer 会嵌套在它下面。
- 一个 knob 会镜像它的使用者所在的位置——如果使用者在某个 control 里,knob 也会进到那个 control 里。
- 一个 look-at 会嵌套在它绑定的 pose layer 下(如果有的话);否则,如果它是全局的,就嵌套在
Rig下;否则,作为它所属 control 的第一个子节点。 - 一个 driver 会嵌套在它所跨越的东西之下:一个 control、一个 pose layer,或者全局 driver 就在
Rig下。 - Constraint 只能是全局的,永远是
Rig的直接子节点。
如果一个 node 的所有者被删除了,这个 node 不会消失——它会回落到 Rig 下,你可以在那里看到它并重新安排归属。任何东西都不会因为父级消失而被隐藏。
选择¶
这棵树支持多选,但同一时间只有一行是激活的(那一行有更亮的石板灰高亮)。Editor 跟随的是激活行,而不是整个选择集——所以选中八个 layer 准备删除它们,永远不会让 editor 变空。
- 在已经处于多选集合中的一行上 Ctrl/Shift-点击,只会把它变成激活的那一行,而不会打散整个集合。
- 点击空白处会清空一切,Editor 会显示它的空状态。
- 点击一个已经是激活状态的行,依然会重新把 Editor 路由过去。
展开¶
Chevron 在展开时是 ▾,折叠时是 ▸,并且只在这一行有可见的子节点时才会出现——一个被吸收的 face 不会得到一个。
| 手势 | 效果 |
|---|---|
| 点击 chevron | 展开/折叠这一行。 |
| Shift + 在 chevron 条带上点击 | 展开或折叠下方整个分支。 |
| 双击名字 | 内联重命名。 |
| 在名字之外双击(例如在第二列) | 切换展开状态。 |
重命名¶
F2 或双击名字。Control、pose layer、knob、look-at、driver、constraint 和自定义的 visibility group 都可以重命名。分区标题、被吸收的 face,以及永久性的 Hidden 组不能重命名。
提交一个空白名字会保留原来的名字。
拖放¶
拖拽是你重构 rig 的方式。这一行的一个幽灵会跟随光标,并且在你松开之前,一个实时 tooltip 始终准确说明这次放下会做什么。
两种放置提示:
- 放入某一行内——整行下方出现半透明蓝色填充,带虚线轮廓。
- 放在两行之间——一条 2 px 的蓝色标线,带一个小凸起。凸起的水平位置就是所提供的深度,所以向左拖表示放得更浅。
| 你拖拽的 | 放到 | 结果 |
|---|---|---|
| Pose layer / knob | 一个 Control(中央) | 变成它内部的自由 layer。按住 Alt 表示 Front,Alt+Ctrl 表示 Back。 |
| Pose layer / knob | 另一个 layer(中央) | 那个 layer 变成这一个所跨越的 knob。 |
| Pose layer / knob | Rig 下的两行之间 |
第 0 层——一个没有归属的全局 layer。 |
| Driver | 一个 Control | 跨越那个 control 的 grid。 |
| Driver | 一个 pose layer | 跨越那个 layer。 |
| Look-At | 一个 Control | 锚定在那个 control 的 key domain 上。 |
| Look-At | 一个 pose layer | 跨越那个 layer 打 key。 |
| Visibility Group | 另一个组 | 嵌套进它里面。 |
| Visibility Group | Visibility Groups 标题 |
移动到顶层。 |
有些放置会被拒绝,并且 tooltip 里总会给出原因:
- "A driver can't sit under an empty knob — drop it on a control or a pose layer."
- "Checkbox drivers are Global only — pick another widget type to own this driver with a control."
- "A group can't nest inside itself."
分配 face 是破坏性操作
分配 Front 或 Back 会替换原本占据那个位置的东西,这就是为什么它需要 Alt 组合键,而不是普通的拖放。ORC 从不替你挑选"第一个空位"——位置永远是明确指定的。
在 Flat 显示模式下什么都不能拖拽;它没有层级结构可以表达。
键盘¶
| 按键 | 效果 |
|---|---|
| F2 | 重命名激活的 node。 |
| Delete | 删除整个选择集。 |
| Ctrl+D | 复制选择集中可复制的行。 |
| Ctrl+C | 把选择集复制到树内部的剪贴板。 |
| Ctrl+V | 粘贴——复制一次,粘贴多次。 |
Driver、constraint、look-at、pose layer 和 control 都可以复制;visibility group 和分区标题不行。
删除¶
删除操作只有在有数据会丢失时才需要两次点击确认。这种情况下,反馈条会变黄:
Delete node "Eyebrows"? Keyed poses, drivers and look-at frames on them are removed. Click − again within 5s to confirm (Ctrl+Z to undo).
在一个什么都没有打 key 的 rig 上,删除是即时的——一个总是触发的确认只是个减速带,不是安全网。
多选删除只确认一次,撤销也只需要单独一次 Ctrl+Z。
删除会做什么:
- 删除一个 control 会把它的自由 layer 发送到第 0 层,并删除它的 face。一个被释放的 face 会重新变成可见的一行。
- 根
Headcontrol 是可删除的——它只是变空。 Delete Hierarchy会移除这个 node 以及它拥有的一切。一个 control 拥有它的 face、knob、look-at 和自由 layer。一个 visibility group 只拥有它的子组——它的成员会被重新分配归属,而不会被删除。- 不可删除的: 两个分区标题,以及永久性的 Hidden 组。
Hidden 是唯一固定的组
其他每一个组——包括 All——都可以重命名或删除。Hidden 会一直留着,因为每个 rig 都需要一个地方,放那些不该被触及的东西。
右键菜单¶
每种 node 都有自己的菜单。如果你右键点击一个不在当前多选集合中的行,你会得到那一行自己的菜单,而不是多选菜单。
| 项目 | 备注 |
|---|---|
+ Add Pose Layer |
在这个 control 内部创建 layer(不同于工具栏的 +,后者创建的是全局 layer)。 |
⤓ Unroll Poses… |
只有在加载了 MC 时才有。见 Unroll。 |
Rename Control F2 |
|
Remove Control |
|
Delete Hierarchy |
只有当 control 拥有子节点时才有。 |
Duplicate Control ▸ Structure only Ctrl+D |
克隆各个 face——grid、widget 外观、knob、back 开关——target 列表为空。这是上/下眼睑的工作流:克隆形状,重新指向 target。 |
Duplicate Control ▸ Full (layers & targets) |
克隆一切:face、target、自有的 pose layer、knob、driver 和 look-at,带上全新的 key 和重新映射的引用。 |
Import MC ▸ Front Face / Back Face |
把一个 Harmony MC 直接导入这个 control 的 face 槽位——你明确地说出是哪个 face,而不是"恰好处于激活状态的那一个"。和 Control 页面的 [Set ▾] 菜单走同一条路径。 |
整个菜单就是这些——control 的右键只在这个 control 内部创建。根级别的创建(一个全局 layer、另一个 control、一个 driver……)放在工具栏的 + 和空白处,那里"根级别"才是你真正想要的。
| 项目 | 备注 |
|---|---|
Rename F2 |
|
+ Add Pose Layer |
|
Duplicate Pose Layer Ctrl+D |
克隆结构和 target。pose 不会被复制。 |
Make Global |
这个 layer 会在每一个 head pose 上合成。保留当前 snap 的 pose。当结果会超出全局 4D 预算时会被拒绝(并说明原因)——见下文。 |
Move to… ▸ |
拖动节点这个手势的菜单版本——一份列表,两类目标,每一个都戴着 outliner 的双 glyph。选一个 control 会重新挂接这个 layer(它按那个 control 的 pose 来合成)。选一个 pose layer 或 knob,它就成为这个 layer 的轴——layer 跨越它打 key,并替换掉当前的 knob(和 Knob 选择器同样的单轴规则)。 |
Remove Pose Layer |
只有当存在不止一个 layer 时才有。 |
Move to… 列表只提供真正行得通的选项:不允许成环,不允许别的 control 的 knob,也不允许越过维度预算——一个 layer 在链条上有 control 时的上限是 6D,完全全局时是 4D。一个已经跨越 2D knob 打 key 的全局 2D layer 就是一条 4D 链,所以它永远不会作为目标出现在另一个全局 layer 的列表里。见 Dimensions & Key Domains。
一个 extra knob 是一个有父级的真正的 layer,所以它像任何 pose layer 一样拥有 Make Global 和 Move to… ▸。它的消费者不会被带走:变成全局的意思是"这个 dimension 变得可以被共享"——跨越它打 key 的那些 layer 留在原处,并继续跨越它打 key。当还有全局 layer 在跨越一个 knob 打 key 时,把它移进一个 control 会被拒绝,并点名那些 layer——一个全局 layer 只能跨越全局 knob 打 key,没有任何东西会在沉默中被重新安置。
一个 control 的 :W knob 和一个 face 仍然没有这些移动选项——它们的位置就是 control 本身。
| 项目 | 备注 |
|---|---|
Rename F2 |
|
Duplicate Ctrl+D |
|
Mute / Unmute |
"Skip this driver at compose without deleting it (dimmed in the outliner)." |
Make Global |
处处都是同一个值——不再按 snap 打 key。这个 driver 的 key 会被清除(已经没有 pose 轴可以承载它们了)。 |
Move to… ▸ |
一个 driver 能跨越打 key 的一切,全部带双 glyph:control(Control 作用域——按那个 control 的 pose 打 key)以及 pose layer / knob(跨越那个 layer 的 grid 打 key;一个自有 layer 同时也按它的 control 的 pose 打 key,一个全局 layer 则独自打 key)。和拖动 driver 节点走的是同一个漏斗。 |
Delete Driver |
一个 checkbox driver 永远是全局的——它不跨越任何东西打 key——所以 Make Global 和 Move to… 会灰化并给出这个原因,Behaviour 对话框也与之呼应:当 driver 处于某个作用域时,Checkbox 是不可选的。
| 项目 | 备注 |
|---|---|
Rename F2 |
|
Duplicate Ctrl+D |
|
Mute / Unmute |
|
Delete Constraint |
| 项目 | 备注 |
|---|---|
Rename F2 |
|
Make Global |
当它还不是全局的时候。 |
Move to… ▸ |
每个其他 control 一个条目,带双 glyph(类型那一半让你一眼分清 1D control 和 2D control)。 |
Duplicate Ctrl+D |
|
Delete Look-At |
每一个 look-at 都拥有每一个手势——head 的第一个 look-at 并不比第四十九个更特殊。
| 项目 | 备注 |
|---|---|
Rename F2 |
在 Hidden 上禁用。 |
New Visibility Group Inside |
唯一能在任意深度创建嵌套组的方式。 |
Delete Visibility Group |
在 Hidden 上禁用。 |
Delete Hierarchy |
只有当这个组确实是子组的父级时才有。 |
在 Hidden 上,被禁用的项目会自我说明:"Hidden is the permanent sink — every rig needs somewhere to hide nodes. Any other group can be renamed or deleted."
| 项目 |
|---|
Duplicate {n} node(s) Ctrl+D |
Delete {n} nodes |








