Structure 与 Subartlayers¶
两个导出器 —— Blender 和 Maya —— 编排的是同一样东西:一棵由 drawing、美术层和 pass 组成的 Structure 树。这棵树就是写入磁盘的文件夹布局,而 Harmony 导入器的 outliner 是它的镜像:你在一侧构建的,就是你在另一侧看到的。
一个 pass 是一个导出输出 —— 在 Harmony 中它变成一个子美术层(subartlayer),即堆叠在某个美术层内的一条轨道(track)。同一个容器里的多个 pass 构成该美术层的堆栈。这就是一个 drawing 能把 outline、inline 和填充作为各自独立、可单独编辑的对象来承载的方式。
这棵树,以及它写出的文件夹¶
Output/ ← the root drawing = the output folder
OL/
01_outline/ 0001.svg … vector pass
LA/
01_inline/ 0001.svg … vector pass
CA/
01_color/ 0001.png … bitmap pass (a render)
flat/ 0001.png … Flat: no art layer, straight into the drawing
Shadow/ ← a named drawing = a folder = its own Read node
OL/
01_shadow/ 0001.png …
NN是两位数的堆栈索引:01是堆栈的顶部(容器中的第一个 pass),数字沿堆栈向下递增。导入器按NN顺序堆叠轨道并去掉前缀,所以每条轨道读起来就是它所来自的 pass。- 每个 drawing 生来都带有相同的四个容器 —— 两个层级共用一条规则,没有任何装饰。容器是固定且沉默的:永远不被重命名,永远不承载自己的美术内容。
- 一个 pass 总是写入它自己的
NN_<name>文件夹,即使它是其美术层上唯一的一个 —— 布局的形状永远不变,所以重新导出会落到相同的文件夹里。
矢量与位图共存于一个 drawing¶
容器是单一类型的:Harmony 的一个美术层只有一种绘图模式,所以同时容纳矢量 pass 和位图 pass 的容器会在导入时悄悄丢失其中一种。导出器会把该容器标红,并拒绝导出,直到其中一个 pass 被移走。
跨容器则随意:Line Art 上放 SVG 线条,Colour Art 上放渲染出的填充,阴影 pass 放在它自己的 drawing 里 —— 导入器会把整棵树读回为一个 Harmony 层级。
为什么位图 pass 得到 drawing,而线条不需要
导入时,当某个美术层是位图时,该层的同级轨道会被压平成一张图像 —— 所以把多个位图 pass 堆在一个层上,恰恰会毁掉 pass 存在的意义(例如只给阴影单独设一个不透明度)。必须单独处理的位图 pass 会得到它自己的 drawing —— 自己的 Read 节点 —— 这就是位图生成器默认每个各建一个 drawing 的原因。矢量轨道在一个层上仍保持为独立对象,所以线条永远不需要这样做。
Pass 从哪里来¶
+—— 一个 pass 诞生在选区所在之处:所选 pass 之下、所选容器的末尾、所选 drawing 的 Line Art 中。- 生成器 —— 每个 Grease Pencil 对象或图层、每条 Pencil+ Line 或 Line + Line Set、每个渲染 view layer 各一个 pass。把整套设置一键展开的方式;每个结果都是一个普通 pass。
- Add Drawing —— 在 Output 下新建一个文件夹,带它的四个容器。
- Add Existing Drawing(Blender)—— 另一次导出的树已经在写的 drawing,或输出中的一个真实文件夹,让两次导出共享一个 drawing:Grease Pencil 导出的线条放在它的 Line Art 上,位图导出的渲染放在它的 Colour Art 上。树在磁盘上按名称合并;如果两次导出会在同一个容器中争用同一个
NN_(顺序将不确定),导出器会在渲染前发出警告。
Pass 通过 ▲ ▼ 移动 —— 可跨越容器边界,所以一个 pass 无需拖拽即可走遍整棵树 —— 在 Maya 中还可以拖放。
稳定的编号¶
NN 索引是在容器的完整列表上分配的,而不是在已启用的子集上。取消勾选一个 pass 不会给其他的重新编号:第二个 pass 仍是 02_,它不会上滑成 01_。
为什么这很重要
稳定的编号意味着重新导出会写入与上次相同的文件夹,所以在 Harmony 中重新导入会把它们读作相同的子美术层。为了快速测试而关掉一个 pass,永远不会打乱堆栈。
名称¶
一个 pass 的名称就是它的文件夹名,也是它在 Harmony 中的轨道名,所以 outline、inline、hatching 会原封不动地走完往返。同一个 drawing 内两个 pass 不能同名(冲突会加上 -NNN 后缀);同一个输出内两个 drawing 不能同名。
Clean Art Folders¶
需手动开启,位于导出器的 Output 区。勾选后,导出会先删除上次导出留下、而本次不会重写的过期 NN_ 文件夹 —— 即你重命名或移除的 pass 的文件夹,否则导入器会把它读成一条幽灵轨道。
具破坏性,所以需手动开启
它的范围刻意收窄:只处理它识别为自己所有的 NN_ 文件夹,且只处理当前没有任何 pass 认领的那些 —— 矢量和位图一视同仁,来自任一导出器均可。零散文件和你手动添加的任何文件夹都不会被触碰。当两次导出共享一个输出时,请从拥有你想丢弃的那些文件夹的导出来运行它。
一个 pass 如何渲染¶
- Grease Pencil pass 读取笔画 —— 不需要渲染。
- 位图 pass 是对每一帧的一次渲染;位于同一个 view layer(Blender)或同一次渲染(Maya 的 Pencil+ Line 位图)上的 pass 会共享它。不同的 view layer、合成器树或 Materials pass 各自需要自己的渲染 —— 导出器会在你按下按钮之前告诉你数量。
- Pencil+ 矢量 pass 带有一份配方 —— 每个 Line Set 生成哪些 edge type、多粗 —— OVB 会在其渲染前后把它写到你真实的 Line Set 上。由于配方改动的是 Line Set 产生的内容,每个 pass 都单独渲染,而你的 Line Set 会被精确还原到原来的样子。
导入时,带编号的文件夹会堆叠为轨道 —— 见导入到 Harmony。