跳转至

匹配树

当你浏览到一个 .anm 时,OTS 会读取文件中的每一项,并试着在你当前的场景里找到它。它展示给你的这个列表就是这次搜索的结果 — 也是你在提交之前最后要看的东西。

Maya 中的一次 .anm 导入,其中一行未匹配、被涂成琥珀色

摘要行

列表上方有一行告诉你手里拿的是什么:

3 pegs — 2 matched · 1 camera · frames 1–60

部分 含义
3 pegs 文件中包含多少项
2 matched 其中有多少项在 这个 场景里解析到了东西
1 camera 其中有多少项是摄像机。摄像机是单独计数的,从不计入已匹配
frames 1–60 该文件导出时所用的范围

如果已匹配的数量低于你的预期,下面的列表会告诉你是哪些没匹配上。


行的颜色

列表中恰好只有 两种 颜色,而它们表示两件毫不相干的事。

颜色出现在哪含义
Camera-P 整行 未匹配 — 文件中的这一项在你的场景里什么也没找到
spaceship 子行上的 Rig 单元格 继承 — 这一项跟随其 root 的 rig;它不是一个独立的选择

图例就这些。列表里其余的一切都是交替行背景上的普通文本,而你在高亮行上看到的蓝色只是选中状态。

琥珀色表示未匹配 — 仅此而已

琥珀色的行不是错误,也不是对你数据的警告。它只陈述一件具体的事:OTS 在你此刻打开的这个场景里,找不到这一项的目标。

它是琥珀色而不是红色,是有意为之 — 这是一个常规状态,下一步该做什么很明显,它并不是拦路虎。

常见且完全正常的原因:

  • 场景是空的。 你正准备按 Create Rig,而这恰恰是该做的事。一切都是琥珀色,因为什么都还不存在。
  • 它是一个摄像机 peg。 在向 Maya 或 Blender 的一次全新导入中,还不存在带着摄像机名字的 joint 或 bone,所以它那一行是琥珀色。Create Cameras 会处理它。这正是摘要中摄像机要单独计数的原因。
  • 名称不一样。 这一侧的 rig 是手工搭的,或者被重命名过,或者来自另一个版本。

它实际会让你付出什么代价:Apply 会跳过未匹配的行。它不会报错,也不会去猜 — 它就是不写这些行。所以如果你按了 Apply 而某个东西没动,就去找琥珀色。

颜色和图标是相互独立的

图标 说明这一行 是什么颜色 说明它 有没有匹配上。它们是分开设置的,所以一个未匹配的摄像机会同时显示两者 — 一个摄像机图标加上琥珀色的文字。任何一个信号都不会遮住另一个。

琥珀色的行不会自己消失

Create RigCreate Cameras 之后,列表显示的仍然是你按下浏览时的匹配状态。即使目标现在已经存在,这些行还是琥珀色的。

要重新执行匹配,对同一个文件再按一次 Browse…。这是预期行为,不是构建失败 — 去检查你的场景,而不是这个列表。


图标

图标 含义
活动摄像机 这一项是摄像机,而且是场景的 默认 摄像机
非活动摄像机 这一项是摄像机,但不是默认的那台
(无) 一个普通的 peg / bone / joint

Blender 的面板用 Blender 自己的图标表达同样的含义 — 已匹配用对勾,未匹配用警告三角,活动与非活动摄像机用它的原生摄像机图标。


匹配是怎么工作的

OTS 会按顺序尝试:

  1. 存储的路径。 每个被导出的项都记录了它在源场景中的完整路径。如果某个节点仍然位于那个路径上,而且类型也还对得上,那就是匹配。
  2. 精确的名称匹配。 用该项的基础名去比对场景中的对象。
  3. 带后缀的变体。 在 Harmony 中,是名称的 -P peg 后缀变体。

第一个命中的胜出。如果一个都没命中,这一行就是琥珀色。

像 Harmony 的 -P 这类后缀在匹配时会被剥离,所以一个叫 hip-P 的 peg 和一个叫 hip 的 joint 会被视为同一项。正是这一点,让一次穿过三个应用、三套命名惯例的往返能够稳稳落地。


修好没匹配上的项

编辑目标路径。 双击某一行的 Target path 单元格并输入正确的路径。只有这一列可编辑 — 双击名称列是刻意不做任何事的,这样你就不会误改一个传入项的名字。

取消勾选它。 如果这一项在这个场景里确实无处可去,而你也不想要它,就取消勾选,Apply 会忽略它。

在你的场景里重命名。 如果好几行是因为同一个原因没匹配上 — 比方说命名惯例变了 — 那么把场景里的名字改好再按一次 Browse…,会比一行一行地编辑快得多。

干脆构建出来。 如果文件里大部分都没匹配上,你多半应该用 Create Rig 而不是 Apply


读懂层级

缩进就是父子关系。没有 Parent 列,因为这个缩进 就是 将要被构建或匹配的结构。

折叠箭头 只出现在 root 行上 — 一条 chain 的中间部分无法折叠,所以你总能看到你即将改动的整条 chain。

Rig 列显示每一行属于哪个 rig;root 会得到一个可编辑的下拉框,子项得到灰显的继承文本。参见 Rig 与多 Rig