跳转至

Visibility Groups

Video tutorial — coming soon

一个 visibility group 决定动画师能在画面上看到什么、够到什么。

一个做完的 head rig 可能带有五十个 widget。Group 就是让动画师改为拿到四个 checkbox 的方法——HeadEyebrowsEyelidsMouth——只打开他们正在处理的那部分。

Visibility group editor

+ → Visibility Group 添加一个。它被创建在根层级,是 Hidden 的兄弟节点。要把一个嵌套到另一个里面,右键点击那个父级,使用 New Visibility Group Inside——这是创建嵌套 group 的唯一方式。

每个 widget 都属于一个 group

Pose layer、control、driver、constraint、look-at 及其 overlay slider,各自都带有一个 Visibility Group 选择器。这个选择器在任何地方读起来都一样:

No Group
Hidden
──────────
<your groups>
──────────
+ New Group
条目 含义
No Group 始终可见——没有任何 group 管理这个 widget。这是一个真实的状态,也是退出一个 group 的方式。
Hidden 关闭,不碍事。
+ New Group 一个动作,不是一个选项——它会创建一个 group,并打开它的重命名。

一个没有 group 的 widget 对什么都不响应

这包括 All 这个 checkbox。如果一个 widget 看起来对每个开关都无动于衷,检查它是不是处在 No Group 里。

Cascade 还是 Override

一个 group 唯一真正做出的决定。

Mode 一个关闭的父级会隐藏……
Cascade(默认) 只有子级的 checkbox。它们的 widget 仍留在画面上。
Override 子级的 checkbox,以及它们的 widget

可以这样理解:Cascade 整理的是控制面板。Override 才是真正把那个部分关掉。

一个 group 自己的 checkbox 永远不会隐藏它自己——你需要它来把 group 重新打开。

在 Outliner 的 Visibility 显示模式 里,第二列会显示每个 group 的 mode,所以一个孤立的 Override 会一眼就显得突兀。

关闭意味着够不到

当一个 group 关闭时,它的 widget 不会被绘制,也不能被点选。它们不只是变暗——它们完全不在 control 列表里了。

不会做的是移除状态。一个被隐藏的 driver 仍然保有它的值;一个被隐藏的 look-at 仍然在瞄准。隐藏关乎的是 control,不是行为。

Hide Nodes

除了 widget 之外,一个 group 还可以禁用 Harmony 节点本身。从 Node View 把它们添加到这个 group 的 Hide Nodes 列表里,那么每当这个 group 被关闭时,它们就会被禁用。

这就是为什么一个 Hidden 的道具 group,能把这个道具从渲染中拿掉,而不只是把它的 handle 从画面上拿掉。

同样的手法也覆盖了仅供界面使用的 drawing:rig 里经常带有纯粹为了 OpenGL 视图而存在的美术资源——摆 pose 的参考线、区域标记、一个表示视线方向的十字——它们绝不能出现在渲染结果里。把这些 drawing 放进某个 group 的 Hide Nodes 里,在渲染前把它们关掉;在动画过程中把它们留在一个始终开启的 group 里,它们的表现就像是 UI 的一部分。

Hidden 这个 group

Hidden 是唯一一个永久性的 group。它不能被重命名或删除,选中它显示的是一段干巴巴的消息,而不是一个设置页面:

Anything placed in Hidden stays off and out of the way — nothing to set up here.

Hidden 是你存放某样东西而不删除它的方式。有两个地方依赖它:

  • 一个 driver 的 influence 只有在它处于 Hidden 时才存在。Hidden 就是 influence 的关闭开关;没有一个单独的 checkbox。
  • Look-at 的 overlay slider 全部被创建在 Hidden 里。把一个拖出来,就能把那个字段暴露给动画师。

Hidden 是唯一固定的 group

其他每一个 group——包括 All——都由你来重命名、嵌套或删除。删除 All,下一个根层级的 group 就会接替它成为整个宇宙。

嵌套

Group 可以嵌套到你想要的任意深度。在 Outliner 里,把一个拖到另一个上面来嵌套它,或者拖到 Visibility Groups 的标题上来把它带回顶层。

一个 group 不能嵌套进它自己或它自己的后代里——这次拖放会被拒绝,并提示 "A group can't nest inside itself."

Delete Hierarchy 会移除一个 group 及其子级 group。它的成员会被重新指定父级,绝不会被删除——删除一个 group 绝不能删掉一个 driver。

自动清理

默认情况下,自身没有任何内容的 group 会从 compose 出来的 MC 里被剔除——没有 driver、没有 constraint、没有 hide-nodes、没有 widget,也不是某个存活下来的 group 的祖先。这可以避免占位用的 group 作为死的 checkbox 被发布出去。

你的 rig 数据会保留它们;只有 compose 的输出会受影响。如果你想看到这些占位符,可以在 Preferences 里关掉这个选项。

在 Outliner 里读取它们

把 Outliner 切换到 Visibility 模式,树就会以 group 的层级结构重新生根:Rig 这个区块消失,根层级的 group 被提升到顶部,每个成员都作为一个叶子出现在它所属的 group 之下。

Visibility mode

这是回答"这个 checkbox 到底控制什么?"这个问题最快的方式。

相关内容