跳转至

Display Modes & Filters

filter bar 位于 Outliner 的工具栏和它的 tree 之间——紧凑的一行:

The Outliner filter bar 1 2 3
  1. Display mode — 只显示当前模式的图标;名字出现在弹出菜单里。
  2. Search — 对节点名字做子串匹配,带一个 ✕ 用来清除。
  3. Funnel — Type 和 Role 过滤器。空闲时是灰色,只要有任何过滤器开启就是蓝色

要点在于这个区别:

  • display mode重新扎根(re-root) 这棵 tree — 同一个 rig,围绕不同的主干组织。
  • Filters 只会隐藏行。它们从不改变列,也从不重新组织任何东西。

两者可以组合:一个 filter 会缩小当前 display mode 正在展示的内容。

Display modes

Display modes

最左边的按钮只显示当前模式的图标。名字出现在弹出菜单里。

按钮显示的是 layer-stack 图标。

Dimensions mode

列:Hierarchy | Dimensions

这是标准的 authoring tree。control 位于 Rig 下面;pose layer 嵌套在它们所属的 control 之下,或者它们所打 key 的 knob 之下;look-at、driver 和 constraint 位于它们各自 key domain 所规定的位置。

只有这个模式会绘制尾部图标 — turnaround、mirror 和 Σ — 以及 dimension chip。

按钮显示的是眼睛图标。

Visibility mode

列:Visibility Groups | Mode

这是纯粹地重新扎根到 group 层级上。Rig 这个 section 完全消失,根 group —— AllHidden —— 被提升到顶层:这棵 tree 就是 group 层级本身

每一个成员 — control、layer、driver、constraint、look-at — 都作为叶子出现在它所属的 group 下面。control 的层级关系在这里不会被表达;一个 control 只是另一个成员而已。

第二列显示每个 group 的级联 Mode:CascadeOverride,所以一个反常的 Override 会立刻显得突出。成员显示

一个 widget 总是属于某个 group。一个为空、未设置或过时的 group id 会解析成 All,而不是什么都没有。如果连 All 本身都不存在了,一个斜体的灰色 Unassigned 兜底桶会作为安全网出现,一旦没有东西悬空又会消失。

按钮显示的是三条堆叠的线。

Flat mode

列:Name | Role

所有节点都处于同一层级 — 这是用来搜索和查找的界面。两个 section 表头都会被隐藏,第二列换成节点的 role:ControlLayerKnobLook-AtDriverConstraintGroup

排序仅在 Flat 下可用。 点击表头会循环切换:第 1 次点击 ▼ 降序,第 2 次 ▲ 升序,第 3 次回到原始顺序。 排序箭头只在这个模式下才会绘制。(Dimensions 和 Visibility 都是层级结构;对它们排序会破坏你用来阅读它们的那个结构本身。)

拖动在 Flat 下被禁用。 在没有可见层级的情况下,一次拖放会在一个你看不见的结构里悄悄地重新指定父级。

切换模式始终会保留你的选择,并记住你是否折叠了 Rig。当前模式会在整个会话中保持不变。

占位符是 Filter layers…,带一个小小的 ✕ 用来清除。它是对节点名字做不区分大小写的子串匹配。

Funnel

funnel 按钮用颜色来携带自己的状态:

图标 状态
空闲 — 没有任何过滤
有过滤器开启。 tooltip 会告诉你是什么 — "Filters — Type 2 · Role 1"

弹出菜单里有两个子菜单和一个操作。

Type filter

widget 类型过滤——也就是每一行右边的图标。

项目 适用于
Combo Slider 1-D pose layer、knob、control
Continuous Slider 仅 driver
Combo Grid 2-D pose layer、knob、control
Continuous Grid driver pad 和 look-at
Checkbox driver

Role filter

它是哪种节点过滤——也就是每一行左边的 role 图标。

Pose 结构:ControlPose LayerKnob

附加节点:Look-AtDriverConstraintVisibility Group

底部的 Clear all 会一次性清空两个轴。

过滤器的行为方式

  • 这两个轴和搜索文本是三个独立的约束,以 AND 方式组合。一个空的轴意味着"没有约束",会放行一切。
  • 一个在某个轴上没有值的节点 — 比如 Control 没有 widget 类型 — 只有在那个轴不受约束时才能通过。
  • 祖先会被保留。 如果一行自身匹配,或者它的任意后代匹配,这一行就会显示;否则一个更深处的匹配就会无法到达。
  • 一行如果只是位于通往某个匹配的路径上,而它本身并不是匹配项,就会以 40% 的不透明度绘制——它读起来像一条路径,而不是一个结果。
  • 被吸收的 Front/Back face 从不出现,也从不为它们所属的 control 贡献匹配。