跳转至

概念与术语

九个词撑起整个工具。学会它们,本手册剩下的部分就能自己读懂。

Slot

一个 slot 就是 Staging 树的一行 —— 而它不是一个节点。

这是 OSA 赖以成立的唯一观念。一行叫 sky 的东西不是"一个 drawing"。它是一个 slot,可以一次性创建:

  • 一个包住它下面所有内容的 Backdrop
  • 一个 Peg、一个 Group、一个 Composite
  • 一个带素材的 Drawing(一个 Read 节点),
  • 以及挂在 composite 上的一条效果链。

Details 栏会按接线顺序,把那一行将要产出的东西写清楚:

Staging 树

(Backdrop > Peg > Comp) 的意思是:这一行造三个节点。(Peg > Read > Comp) 的意思是 peg、drawing、composite。一行,三个节点,一个名字 —— Can-PCanCan-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 有四个内部层:UnderlayColour ArtLine ArtOverlay。OSA 把每一层都当作素材可以瞄准的地方,而且每一层都能持有不止一张图 —— 那些多出来的图就是 subart layer

一个 drawing 的 art layer

Drawing、art layer 与 subart

一个 drawing 的曝光住在 slot 内建的 Frames 文件夹里。一帧带有编号、时长(hold),并可选地带有自己的 art layer。

Range 栏如实报告它找到的东西:Seq: 1-840Frame 3Hold: 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 正好是它需要的宽度,再加上内边距。

结构节点与 Wide Bus

Assemble

唯一会写入的动词。它遍历 staging 树,创建节点、连接端口、写入属性、导入素材,并排布图。

它之前的一切都能免费撤销。Assemble 不能 —— 它做什么、又报告回什么,见 Assemble