标签¶
标签是名字里被 OSA 当作指令来读的一段。
sky=P-C 不是一张叫 "sky=P-C" 的 drawing。它是 drawing sky,加上一个叫 sky-P 的 peg,再加上一个叫 sky-C 的 composite —— 三个节点,来自你在导入之前敲下的一个名字。
这是这个工具里杠杆率最高的习惯。你在 staging 之前写下的每一个标签,都是你之后不用去搭的一个节点。
试一试¶
按你在 Photoshop 或 Windows 里写名字的方式敲一个,看看 OSA 会搭出什么。
这个解码器遵循和 OSA 内部解析器一样的规则 —— 同样的词汇、同样从右往左的读法,以及同样拒绝把一个光秃秃的数字当成深度。
你可以在哪里写标签¶
解析器不在乎这个名字从哪来。同一个字符串在这三个地方意思相同:
| 在哪 | 例子 | 什么时候读 |
|---|---|---|
| 一个 Photoshop 图层或组的名字 | head=P-G-C |
你导入这个 .psd 时 |
| 一个 Windows 文件夹或文件名 | BACKGROUND=BD |
你把这个文件夹拖进来时 |
| Staging 树里的一行 | 就地改名 | 立刻 |
这就是这个约定为什么划算
你的 PSD 本来就有图层名。把一个 Photoshop 组命名为 arm=P-G,在上色阶段一分钱不花,却在搭建阶段替你省下一个 peg、一个 group、一次改名和两根连线 —— 每条手臂省一次,每个角色省一次,每个场景省一次。
两种写法¶
后缀写法 —— 用连字符分隔,从右往左读:
head-P-G-C
等号写法 —— = 之后的一切都是标签列表:
head=P-G-C the usual way
head=P,G,C commas work too
head=P G C so do spaces
两种给出同样的结果。当名字本身含有连字符时,等号写法更保险,因为解析器一遇到不是合法标签的片段就停止查看:在 two-part-name-P 里只有 P 被取走,drawing 保留 two-part-name 这个名字。
倒过来的写法
CA=Head 也可以 —— 标签在左边,名字在右边。它存在是因为有些美术部门本来就是这么写 art-layer 前缀的。CA=Head 和 Head=CA 产生完全相同的槽位。
结构标签¶
-
添加一个叫
<name>-P的 Peg。它在 group 之上还是之下,由 Peg Order 设置决定,不是由标签决定。 -
添加一个叫
<name>-G的 Group。group 是让这个槽位在 Node View 里成为自足单元的东西。 -
添加一个叫
<name>-C的 Composite。子级接进的就是它,效果链也挂在它上面。 -
强制一个 Read 节点。唯一的隐式标签:一个带画稿的文件本来就会得到一张 drawing,所以你很少去敲
D—— 你敲它,是当你想在一个本来只是普通容器的行上要一张空的 drawing 时。 -
BD—— Backdrop
把下面的一切包进一个以该槽位命名的 Node View backdrop 里。backdrop 可以嵌套 —— 见 The Wide Bus。
-
把这个槽位标记为携带枢轴数据而非画稿。
随意组合:head=P-G-C 会把三个都搭出来。Details 列始终按接线顺序显示你要求的东西:
art layer 标签¶
这些说明画稿进到 drawing 的哪一个内部层。
| 标签 | art layer | 图示 |
|---|---|---|
UL |
Underlay | |
CA |
Colour Art | |
LA |
Line Art | |
OL |
Overlay |
所以一个按 line=LA、flats=CA、shadow=OL 上色的 Photoshop 文件,到货时是一张 drawing,它四个 art layer 中的三个被填上,而不是三张分开的 drawing 等着你手工合并。
没打标签的画稿去 Line Art —— 这是整个应用一致认同的默认值。
两张图争抢同一个 art layer 时会怎样,见 Drawing、art layer 与 subart。
效果标签¶
效果标签把效果挂到槽位上,并且已经接在 composite 之后。
所有效果共用一个标记,这正是重点。 在树里,效果行没有自己的图标 —— 它拿到的是上面那根青色竖条,位于图标列内、贴着它的右边缘。peg 长得像 peg、group 长得像 group,是因为它们本来就是不同的东西;十个效果配十个小图形,就是十种要记的形状,而它们说的是同一件事:这里在 composite 之后接了东西。到底是哪一个效果,行里已经用文字写着了。
| 标签 | 效果 |
|---|---|
OP |
Transparency |
CUT |
Cutter |
BLD |
Blending |
GLW |
Glow |
BLR |
Blur |
OP50 也可以 —— 一个设为 50 的 Transparency。表里的任何效果都能打标签,包括那些颜色滤镜(BC、HS、LVL、TONE、HL),因为标签列表是从 Inspector 读的同一张表生成的。一个加进 OSA 的效果,在加进来的当天就成为一个合法的标签。
见 效果。
生成器标签¶
| 标签 | 生成器 |
|---|---|
CC |
Colour Card |
GRD |
Gradient |
这些是结构性的,不是效果:bg=CC 说的是"这个节点就是一张 Colour Card",就像 =P 说"这个节点是一个 peg"一样。见 生成器。
z-depth 标签¶
一个数字把槽位在合成顺序中往前或往后推。
| 写法 | 含义 |
|---|---|
Z0.1 |
z-depth 为 0.1 |
0.5F |
0.5,向前 |
10B |
10,向后 |
光秃秃的数字不是标签 —— 1 和 0.1 是被故意忽略的,因为序列文件里全是光秃秃的数字,而一个叫 0007 的帧绝不能变成一条深度指令。要么在前面写 Z,要么在后面写 F/B。
z-depth 需要一个 peg¶
z-depth 写在 peg 上,绝不写在drawing 上 —— 所以没有 peg 就没有可写的地方。这不是某条标签能绕过去的界面规则,而是目标本身不存在。给 Read 加 transform 会让 drawing 拥有自己的动画,那会破坏整个应用赖以成立的唯一约定:一切由 peg 驱动。
以下情形算作"有 peg":
- 在槽位自身上 —— 比如
sky=P-D,peg 和 drawing 在同一个 super node 里;或者 - 在树中的祖先上 —— drawing 位于某个带 peg 的槽位之下。中间夹着 group 也不会中断:group 之上的 peg 驱动它里面的东西。
Inspector 会据此回答:
| 这个 drawing | Z-Depth 字段 |
|---|---|
| 有 peg,自己的或继承来的 | 可用 —— 工具提示会说明是哪个 peg 接收 |
| 上方任何地方都没有 peg | 变灰,工具提示说明原因:"No peg, nowhere to write Z-Depth" |
一个没有解释的死控件会逼人去猜,所以这个字段永远会说明自己属于哪一种情况。
用标签绕过也没用:给没有 peg 的槽位打 Z 标签,会在组装时被点名报告 —— "z-depth requested with no ancestor peg" —— 而不是被悄悄丢掉。请求了却没有兑现的 z-depth,正是这项检查要防的缺陷;"有时候会悄悄写"并不比"从来不写"更好。
名字里的帧范围¶
名字开头的数字被读作帧位置,不是标签:
| 名字 | 读作 |
|---|---|
1-10-Name |
第 1 到第 10 帧 |
5-Name |
第 5 帧 |
名字保留它的数字(1-Head 仍然是 1-Head),因为在一份曝光表里,数字就是你正在看的东西的一部分。
什么不是标签¶
解析器认不出来的任何东西都原封不动留在名字里。这是刻意的:一个不认识的后缀,远比一条打错的指令更可能是画稿名字的一部分,而悄悄把它吞掉就等于给用户的文件改了名。
如果某个标签不起作用,拿上面的表对一下 —— 并记住标签是不分大小写的(p、P 和 =p 是同一个标签),但必须是分隔符之间的完整片段。head-Peg 给你的是一张叫 head-Peg 的 drawing,不是一个 peg。
标签是显式的 —— 只有一个例外
OSA 从不猜结构。P、G、C、BD、art layer、z-depth 和效果只在你写出来时才生效。例外是 D:一个携带画稿的文件不管你有没有要求都会得到它的 drawing,因为那是文件本身,不是对它名字的一种解读。
