概念与术语¶
九个词撑起整个工具。学会它们,本手册剩下的部分就能自己读懂。
Slot¶
一个 slot 就是 Staging 树的一行 —— 而它不是一个节点。
这是 OSA 赖以成立的唯一观念。一行叫 sky 的东西不是"一个 drawing"。它是一个 slot,可以一次性创建:
- 一个包住它下面所有内容的 Backdrop,
- 一个 Peg、一个 Group、一个 Composite,
- 一个带素材的 Drawing(一个 Read 节点),
- 以及挂在 composite 上的一条效果链。
Details 栏会按接线顺序,把那一行将要产出的东西写清楚:
(Backdrop > Peg > Comp) 的意思是:这一行造三个节点。(Peg > Read > Comp) 的意思是 peg、drawing、composite。一行,三个节点,一个名字 —— Can-P、Can、Can-C。
这为什么重要
别的工具都要你先建 peg,再建 group,再建 composite,然后连起来。在这里你勾一个复选框,接线就隐含在里面了。这也是为什么树到 300 项还能读:你看的是 slot,不是节点图。
每一行都是同一种行¶
这棵树里只有一种行,背后只有一个 Inspector。文件夹、PSD 图层、图像序列、帧、art layer —— 它们都是同一种对象。区别只在于勾了哪些框。
由此引出两件事,而它们是大多数"等等,它怎么能这样?"的答案:
任何东西都能变成任何东西。 一行以扁平 PNG 身份进来的东西,可以长出 peg、composite 和四个 art layer,而不必被转换成另一类东西 —— 根本没有东西要转换。把一个 drawing 拖到另一个 drawing 上,目标就直接变成了容器;它没有换物种。
这也正是为什么容器仍然能持有自己的素材。 OSA 是个混血:它在一棵树里暂存 Photoshop 图层、散装图像序列、Harmony 模板和 SVG,而你靠拖动重新排列它们。如果当了父节点就得放弃自己的素材,那每一次拖动都可能悄悄毁掉一个 drawing。所以规则恰恰相反:
容器保留它原本就有的素材。不会因为层级变了就丢掉任何东西。
素材从不碍事 —— 它是子节点的同辈,而 merge 策略决定它们在 Assemble 时如何合并(帧自己的素材叠在它所指向的 art layer 之上;同一个 art layer 上的同辈图像按顺序压平成一张)。
但只有两种行能持有素材¶
这是微妙之处,而且不是细节 —— 这里正是 Harmony 自身模型不容商量的地方:
| 行 | 能持有素材? |
|---|---|
| Frame | ✅ 能 |
| Art layer(及 subart) | ✅ 能 |
| Drawing 节点 | ❌ 不能 |
| 结构 —— Peg、Group、Composite、Backdrop | ❌ 不能 |
| 生成器 —— Colour Card、Gradient | ❌ 不能 |
| 效果 | ❌ 不能 |
drawing 节点就是一个 Read:它指向一个 element,而像素住在 element 的 cel 里。在 Harmony 里没有帧就没有 drawing —— 素材永远住在一个已曝光的 cel 里。
所以"容器保留它的素材"诚实的读法是:
容器在它属于能持有素材的那类行时保留素材。当它不是时,素材会下移到一个能持有素材的行 —— 而绝不会被丢掉。
自己冒出来的 Frames 文件夹¶
把一个带素材的行变成 drawing 节点,表面上看素材就没地方住了。实际发生的是:OSA 创建内建的 Frames 文件夹和里面的 frame 1,素材下移进那一帧。
在 Inspector 里勾 Drawing 做的正是这件事,取消勾选则把这个文件夹再拿掉。
是迁移 —— 不是复制
素材是移动过去的;它不会同时存在于两处。两份副本会让收集器把同一个来源读两次 —— 一次给容器,一次给帧 —— 而写入器的去重会把第二次读记成损失。永远只有一个家。
OSA 隐式创建的东西¶
有一小串东西你从没要求过却总会得到,而它们每一个都是为了让你真正打标签的地方保持简单 —— 在 Photoshop 里,或者在文件夹名里。
| 你做了 | OSA 还会创建 | 因为 |
|---|---|---|
在带素材的东西上勾 Drawing,或给图层打 =D |
Frames 文件夹和 frame 1,素材在里面 | 在 Harmony 里没有已曝光的 cel 就没有 drawing |
| 丢进一个带编号的序列 | 一个 drawing,每个文件一帧 | 十二个带编号的文件是十二个曝光,不是十二个 drawing |
| 往已经有素材的 art layer 上再放素材 | 一个 subart layer,并把第一张图升级成它旁边的一个 | 一层上两张图就是一摞,而一摞需要行 |
| 导入没有 art-layer 标签的素材 | 它落在 Line Art 上 | 一个默认值,由收集器、Inspector 和堆栈逻辑共同认可 |
为什么在 Photoshop 图层上打 =D 很重要¶
它存在是为了这种情况:在 sky=P 里面,画师想要 cloud=P-D 以及天空自己的素材,并且在 composite 里天空要在云的下面。
把 =D 打在 sky=P 这个文件夹上,会把容器的 drawing 放到子节点上面。而为了装一个 001 图层专门建一个 sky=D 容器纯属白折腾。所以画师把标签打在图层上:sky=D,作为 cloud 的同辈,正好待在 composite 顺序需要它待的位置。
这里面没有藏任何绑定决策:=D 是显式的 —— 你已经说了"这是个 drawing" —— 而帧只是机械后果,跟那个唯一正当的隐式规则("它里面有帧,所以它是个 drawing")同属一家。
在 Photoshop 里打标签,不要在树里
这就是那些隐式规则的全部意义:你的 Photoshop 文件可以用尽可能少的击键把结构带过来 —— 这里一个 =P,那里一个 =D —— 而 Harmony 模型本来就要的那些管道,由 OSA 替你补上。
不是 slot 的那些行¶
只有两种:内建的 Frames 文件夹,以及 Template(.tpl),后者是 Harmony 作为一个不透明整块交过来的。
Staging¶
Staging 是计划;Node View 是结果。
中间栏里的东西在 Harmony 里还都不存在。你可以零成本地拖动、重命名、拆分、合并、删除和重排,因为场景根本没被碰过。只有当你按下 Assemble,计划才成真。
你的工作反正都会被保存 —— 见 会话与崩溃恢复。Harmony 崩溃不会让你丢掉这棵树。
标签¶
标签是一种命名约定,OSA 把它读成指令。
sky=P-C 的意思是"drawing sky,带一个 peg 和一个 composite"。这个标签你可以写在三个地方,三处含义完全相同:Photoshop 图层名、Windows 文件夹名,或者你在 OSA 里重命名的一行。
| 你写 | 你得到 |
|---|---|
head=P |
drawing head + peg head-P |
head=P-G-C |
drawing + peg + group + composite |
BG=BD |
一个叫 BG 的 backdrop |
shadow=OP |
drawing + 一个 Transparency 效果 |
hand=CA |
素材进 Colour Art,而不是 Line Art |
完整语法见 标签。
磁铁¶
磁铁是一个按名字捕捉文件夹的命名目的地。
定义一个叫 PROPS 的磁铁,那么你拖进来的任何叫 PROPS(或它的某个别名)的文件夹都会被自动分流到你的 PROPS 分支下,无论它埋得多深。磁铁就是让你能拖进一整个交付文件夹、落地就已分好类的东西。
见 磁铁。
结构节点¶
一个 slot 能创建的四个层级组件,按接线顺序:
| 组件 | Harmony 节点 | 标签 |
|---|---|---|
| Backdrop | Node View 里的一个 backdrop 矩形 | BD |
| Group | Group | G |
| Peg | Peg | P |
| Composite | Composite | C |
| Drawing | Read(drawing 节点) | D |
Peg 和 Group 可以互换位置 —— Peg Order 决定 peg 是 group 的父还是子。见 结构节点与 Wide Bus。
art layer¶
一个 Harmony drawing 有四个内部层:Underlay、Colour Art、Line Art、Overlay。OSA 把每一层都当作素材可以瞄准的地方,而且每一层都能持有不止一张图 —— 那些多出来的图就是 subart layer。
帧¶
一个 drawing 的曝光住在 slot 内建的 Frames 文件夹里。一帧带有编号、时长(hold),并可选地带有自己的 art layer。
Range 栏如实报告它找到的东西:Seq: 1-840、Frame 3、Hold: 5-8,或 Empty。
见 帧与曝光。
Super node¶
一个吞下自己子节点的 slot。
当一个 slot 带着好几个组件和子节点时,OSA 可以把它在 Node View 里建成一个自成一体的单元 —— 一个 peg、一个 group、一个 composite,内容都在里面。这就是你让 200 个节点的场景仍然能导航的办法,也是为什么重命名一行就重命名了归属于它的每个节点。
见 Super node。
Wide Bus¶
让 Node View 保持可读的布局规则。
OSA 不会把节点丢在 Harmony 随便摆的位置。它把 Node View 当作一张网格:master 在顶行,内容并排在中行,composite 在它所汇聚的内容下方,每个 composite 下面还有一条预留带放它的五个效果位。
Backdrop 像套娃一样嵌套 —— 每一个都由内向外测量,所以一个包着两个 backdrop 的 backdrop 正好是它需要的宽度,再加上内边距。
Assemble¶
唯一会写入的动词。它遍历 staging 树,创建节点、连接端口、写入属性、导入素材,并排布图。
它之前的一切都能免费撤销。Assemble 不能 —— 它做什么、又报告回什么,见 Assemble。

