风格节点图

风格步骤中的每项设置都是某个处理环节上的旋钮:明暗、线条、网格边缘、清理、精灵表输出的颜色。风格步骤就是这个节点图:各处理环节以方框表示,之间用连线相连,每个都显示它生成的图像,并带有自己的设置,所以你看到的是处理过程,而不只是结果。你可以调整处理环节的顺序,让某个环节经过遮罩,或把两个混合在一起。

从模型颜色到最终精灵表的这串图像,本身就是对管线的解释。在较慢的机器上,可以用眼睛按钮把它们关掉。

你不必在画布上操作:选中一个节点,右侧的检查器就会显示同样的设置,因此滑块始终触手可及。没有选中节点时,检查器显示承载颜色的「调色板」节点。

风格。一个项目可以有任意多个风格,每个都有自己的名称和风格节点图,都不属于任何一台摄像机。画布上显示的是在风格列表或窗口标题栏的风格选择框中选中的那个,绘制的是标题栏所选的摄像机和动作。列表下方的新建风格会复制当前显示的风格,并以它命名(Pixel Art 2)。每一行的右键菜单可以重命名、复制、删除它(删除 NAME…,会先询问:只要还剩另一个,第一个也可以删除),保存套件…(将风格保存为套件)会把它连同节点图和调色板写成一个套件,使用套件…(使用风格套件)则把从其他项目保存的风格变成当前项目的风格。上下拖动行可以调整列表顺序。保存在管线库中的风格会列在节点库的我的管线下;项目自己的则在管线下,位于像素化节点旁边。

每个节点图的左侧都有自己的节点库(面板足够宽时):场景、动作、风格和资产节点图都一样。它列出节点图能容纳的所有内容,先是输入和输出,然后按组列出其余内容,每项附一行说明其作用;在查找中输入文字可以缩小范围。点击某一项,它会被添加到节点图为它安排的位置并连好线——或者把它拖到画布上,放在你松手的位置。

从未修改过节点的项目仍然不保存任何节点图,渲染结果与以前完全相同。

初始的节点图

它就是 Pixor 自己的管线,连接好了:

初始的风格节点图:摄像机接入分层渲染,其图层分别进入光与影和线稿,合并、清理并映射到调色板,最后进入输出

按工作发生的顺序从左到右排列,让连线向前延伸,尽量少交叉。

  • 摄像机是节点图的起点:这个风格为之绘制的摄像机。每台指向该风格的摄像机都会从自己的朝向运行一次节点图。

  • 分层渲染接收摄像机:它在这一帧渲染出的动作画面,未经任何像素画处理,八个图层各占一个输出——albedo、normals、depth、part、material、coverage、key light、shadow。明暗读取 normals 和 shadow,线条读取 depth、normals 和 part。它是一个由原子节点组成的组:打开后是一个渲染节点的帧(一个分层帧)和八个图层节点,各自从帧中取出其上选定的图层。连线显示了谁读取什么,而且是真实生效的:把一个噪波场接入「光与影」的 shadow,阴影就变成那个噪波;不接线时,各通道直接读取摄像机自己的渲染。

  • 调色板是选择帧颜色的地方:多少种基础色和光照色带、抖动、它自己的调色板、色相偏移。输出不带任何设置:它就是帧本身。

  • 光与影把光照转换为每个像素在色阶上的级数。它是一个由你同样可用的原子节点组成的组,依次为:光照色带(每个像素落在主光的哪条色带,边缘处抖动,靠近边缘时跨帧保持稳定)、世界光照(灯、波纹线、云影、光束、岸边浪花)、高光、辉光、色阶偏移(以及颜色循环),最后是明暗颜色,把明暗转换为颜色。它们之间的连线传递的是明暗:每个像素的色阶以及它在色阶上的级数。

  • 线稿找出剪影、内部线条和折痕。它同样是一个组:剪影、边(内部线条、折痕、凸折)、整理线条(去掉短碎线、拐角和重复线)以及线条颜色,它们之间由一条线条连线相连。

组的参数就是其内部原子节点的设置。在节点上或通过脚本设置一个参数,会对内部所有带有该设置的原子节点生效——pxr graph set my.pixor --node light-and-shade --set dither=0.5、--node line-work --set min_inner_line=3——因此你自己用原子节点搭建的组,设置方式与自带的组相同。双击组(标题以外的位置),或点击标题上的箭头,即可展开查看或重新连接它的组成。

  • 开启线框外观时也会出现线框,它接入合并的第三个输入。它是由两个原子节点组成的组:连线路径(网格的边在帧中经过的位置,以及位于表面背后的边是省略、画成点线还是画得更暗),然后是网格线颜色。
  • 合并把它们叠在一起,决定线框下方是什么,并让线条彼此避让、变细。
  • 清理去除孤立像素并柔化线条拐角。它是由两个原子节点组成的组:孤立像素(单一颜色、小到不值得保留的连续像素,以及查找它们的遍数),然后是平滑拐角(线条的哪些拐角沿色阶降一级来柔化)。
  • 输出是节点图的产物:这台摄像机在动作此刻的精灵,随后由资产节点图的「精灵」节点切分成精灵列表。它没有任何设置;颜色在它之前的「调色板」上。

这些节点调用的正是管线所用的同一份代码,因此初始的节点图生成的像素与以前完全一样。Pixor 自己的黄金测试每次都会用两种方式渲染并进行比较。

在其中工作

每个节点图的操作方式都一样——场景、动作、风格和资产节点图都相同:相同的工具栏、相同的右键菜单、相同的快捷键和手势。下表涵盖全部操作,适用于全部四个节点图。每次编辑都是历史记录中的一步(Ctrl+Z 可撤销),移动节点也算;快捷键在指针位于节点图上方时有效。

操作 到
按住鼠标中键拖动(或 Alt 加左键) 移动视图
滚轮(或双指缩放) 围绕指针缩放,从四分之一大小到两倍,每级步长与 3D 视图和 2D 视图中相同;帧以及首次查看节点图时会自动适配
帧,或 Home 让所有节点显示在屏幕上
点击节点标题 选中它:它的设置也会出现在检查器中,中间显示它生成的内容;节点相互重叠时,选中最上面的那个
Shift+单击节点 一并选中它,或取消选中
拖动背景 框选:选中它碰到的每个节点(按住 Shift 保留已选中的)
拖动节点 移动它,以及所有一同选中的节点
+,或右键单击画布 › 添加节点 节点库的列表,按组排列:所选的节点会被加入;从右键菜单添加时,放在你点击的位置。顶部的使用套件…(将套件添加为组)会把一个套件作为一个组放入
左侧的一行素材库 点击即可添加到节点图默认的位置并连好线;拖到画布上则放在松开的位置
从节点右侧的圆点拖到另一个节点左侧的圆点 连接它们;拖动时,连线可以接入的每个圆点都会被圈出
把连线松开在空白画布上 一个列出适用节点的菜单:输入文字缩小范围,按 Enter 选取第一个
把输入端的圆点拖开 断开连线;在另一个输入上松开即可把连线移到那里
点击连线,然后按 Delete 剪断它;指针下的连线(或选中的连线)中间也会显示一个 ×,点一下即可剪断
F2,或双击节点标题 重命名:它自己的名称显示在标题上(组的名称就是它的名字);留空则恢复为它本来的名称
Ctrl+D 复制选中的节点,放在它们下方,连线方式与原节点相同,并读取相同的输入
Ctrl+C、Ctrl+V 复制选中的节点,并粘贴到指针下方——可以粘贴到任何同类节点图中:另一个风格、另一个动作、另一条资产管线、组的内部。一种节点图的节点不能放进另一种节点图,状态栏会对此作出提示
−(删除所选节点),或 Delete 删除选中的节点;原本读取它的节点改为读取它所读取的内容,因此链条仍然是链条
组,或 Ctrl+G 选中的节点(以及当前节点)合并为一个组,并展开
组标题右侧的箭头,或在组内标题以外的地方双击 原地展开它,或折叠回去
保存套件… 把所选的组保存为套件,或者——未选择组时——保存整张节点图(对话框标题会说明是哪一种)
整理 重新排布所有节点,按处理顺序从左到右
注释 在所选节点周围或当前视图中添加注释
眼睛按钮,或右键 › 节点图像 显示或隐藏每个节点生成的图像
右键单击画布 以上所有,以及它们的快捷键,还有各节点图特有的命令:风格节点图的只显示预设设置的内容、显示每个节点的设置和恢复为预设的节点图;场景节点图的恢复为一个副本;资产节点图的恢复为一张精灵表

节点的预览图是什么,各节点图不同:风格节点图中是它生成的像素;场景节点图中是它传递的物体,从上方看;动作节点图中是节点输出在一轮中的表现(见下文);资产节点图中是列表传递的帧,或它写出的精灵表或文件。

在动作节点图中,每类节点都有最能说明其作用的预览图:

节点 它的图像
片段、关键帧、例程、动作 模型在其播放内容中四个均匀间隔时刻的样子,从左到右排列——循环则覆盖一个周期,最后一个时刻恰好在重新开始之前——全部通过一台能容纳所有姿势的摄像机观看,角度与显示的摄像机相同
旋转、浮动、摆动、脉动、滑动、波、噪波、色阶、场景时间 它真正改变的每个数值的曲线,从最低到最高:Spin 是一条斜坡,Bob 是一条波浪;变化相同的数值合为一条线(Pulse 的三个尺寸)
筛选、应用于、输出、组 按它们输出的内容显示:运动涉及超过三个数值时显示姿势(片段、与旋转合并的片段、一拍二),只有一种运动时显示曲线(Spin 上的 Step 会画出阶梯)

曲线按类型着色——位置为蓝色,旋转为琥珀色,尺寸为绿色,其他为粉色——最多显示六条,即变化幅度最大的那几条;指针移到图上时,会标出每条线的名称,并说明还有多少条。当运动的对象不属于模型(摄像机、灯光)时,姿势会退回为曲线显示。什么都不改变的节点——常量、不存在的片段——会在图的位置显示无运动。曲线上的竖线或姿势下方的条,会在播放时跟随时间轴上的时间。

这些图像由 Pixor 自己的 CPU 光栅化器在单独的线程上以小尺寸绘制,所选节点优先:节点图从不等待它们。节点在下一张图像准备好之前保留原来的图像,因此不会闪烁;不改变节点输出内容的编辑不会触发重绘。使用骑士模型时,一个节点约需 25 ms,使用人形 FBX 测试模型时约需 40 ms,因此编辑后一秒内即可画完二十个节点。

注释是位于节点后方的方框,顶部写着你自己的文字:这部分节点图是做什么的、接下来要尝试什么。直接在里面输入即可。拖动左上角的手柄会移动它以及其中的所有节点,所以注释既能说明大型节点图的某一部分,也能把这一部分组织在一起;拖动右下角可以调整大小,点减号可以删除它(节点会保留)。注释不会改变任何像素。

拖动节点中的滑块时,会先重新生成该节点的图像,然后是所选节点的,再按顺序生成其余节点的——因此变化会立刻出现在你正在看的地方。

每种连线都有自己的颜色,不用读文字就能看出什么能连到哪里:调色板颜色的图层、遮罩、逐像素的数值、法线、色阶、调色板、摄像机、渲染、明暗、线条、连线路径,以及各种值(开/关、数值、文字)。需要输入却没有连接的输入端会以红圈标出,底部的状态行会说明问题所在。类型不符的连线,以及会让节点图形成环路的连线,在松开时会被拒绝。

节点有哪些

节点库和添加节点菜单把它们列在以下分组中:

组 节点
输入 摄像机、渲染、图层(渲染的 albedo、法线、深度、部件 ID、材质 ID、覆盖率、主光或阴影)、图像、补光、运动、表面抖动、循环相位、颜色的色阶、色阶位置、材质通道金属度、粗糙度、自发光、遮蔽、透明,以及边缘像素(网格自身的边在一切之前穿过画面的位置)
处理步骤 明暗、线条、网格边、合并、清理、映射到调色板——每个都是装在一个方框里的完整处理步骤
明暗 光照色带、世界光照、高光、辉光、色阶偏移、明暗颜色,以及手绘质感收尾:形状、取消色带、闪光、柔化色带、排线
线条 剪影、边、整理线条、线条颜色、颜色边缘、线条粗细
线框 连线路径、网格线颜色
清理 孤立像素、平滑拐角、整理剪影
颜色 调色板、最近颜色(每个像素取调色板中与它最接近的颜色,不考虑色阶)、色阶取级、在遮罩处取级、压平、调色板抖动、色阶映射、图块颜色、亚像素运动
遮罩 阈值、按部件、按材质、按朝向、噪波、图案、实心像素、非、与、或
混合 按遮罩选择、抖动混合、叠加于
数学 数值、相加、相减、相乘、相除、更小、更大、无符号、比例、整数、中间停留、重映射、混合、级别位于、平滑阶跃、一致度、长度、作为数值、噪波场(「噪波」遮罩所取阈值的噪波,作为数值)
Space 偏移、模糊、坡度、扩张、收缩、凹陷——每个都会说明它在像素周围查看多远的范围,正是这一点让图块接缝保持精确
值 参见每个属性都是一个输入
组 输入和输出,组内的端口
输出 输出、CRT(只用于观看的图像,绝不是精灵)

它们上方,库中列出管线(项目的风格,以及像素化)、我的管线和我的节点。

图像是你自己的图层:纸张纹理、图案、手绘天空或标志,每个像素取与图像颜色最接近的调色板颜色,从放置的位置起铺在精灵自己的像素上,或平铺满整个画面。按遮罩选择把它放到你想要的位置,叠加于把它放在最上层。图像只读取一次并保存在节点中,所以保存的外观或套件会带上它。通过脚本:

pxr graph add my.pixor --node picture --set file=logo.png --set tile=false   # node 8 on a new project
pxr graph add my.pixor --node layer-over --in under=4 --in over=8             # node 9: the logo over the palette's frame
pxr graph wire my.pixor --from 9 --to 5 --slot layer                          # into the Output

混合永远不会产生新颜色。Pixor 在调色板索引空间中工作,所以混合只会选取这个像素或那个像素;它从不把两种颜色混成调色板之外的第三种颜色。抖动混合把 A 和 B 按有序图案交错铺排,这正是像素画师混色的方式。

手绘般的成品效果

有些节点做的是像素画师在明暗完成后手工做的事。初始节点图中一个都没有;需要哪个就添加哪个。作用于 shading 的节点放在色阶偏移和明暗颜色之间(打开光与影组),按下面的顺序排列;作用于 lines 的节点放在边和线条颜色之间(打开线稿)。它们铺设的每种图案都附着在表面上,所以会随模型移动,而不会在表面上蠕动;它们生成的任何东西都不会超出调色板——CRT 除外,这是有意为之。根据像素周围情况或其在表面上的位置做决定的节点(形状、闪光、排线、取消色带),在表面自上一帧以来没有移动的地方会沿用当时的决定,因此不会增加闪烁;经过含这类节点的节点图的循环片段会先完整播放一遍,让第一帧能接上最后一帧。

节点 连接它 作用 设置
形状 明暗 → 明暗 像手绘一样清理光影形状:小于最小的单一色带形状会采用其周围大多数像素所在的色带,然后每个像素采用其平滑范围内大多数像素所在的色带,从而去掉这么宽的舌状突起并平滑边界。只有同一部件、同一色阶的像素才会相互计入,而且色带需要占据像素周围的大多数,因此一个颜色独特的小点会留给孤立像素处理。表面没有移动且光照相同的像素会保持上一帧分配给它的色带。 最小、平滑
取消色带 明暗(+ 线条)→ 明暗 沿着剪影、部件边缘或线条、与其保持固定距离的色带边缘——即「枕头感」——会像手工处理那样,按段错开一个像素:在一半处,每四个像素中错开两个,按表面计数,因此阶梯会随表面移动。 范围内(距边缘的像素数)、多少
闪光 明暗(+ 遮罩,+ 光照)→ 明暗 在遮罩设定的位置,每个部件(渲染中的部件,无论它在画面中的哪里)有一个刻意的高光,位于最高色带中最亮的像素上;当两个像素一样亮时,保持在上一帧的位置;按部件可以要求更多,彼此至少相隔间距。未连接时,光源为主光。 尺寸(1 或 2)、按部件、间距、仅闪光(那里的其他高光降到最亮色带)
柔化色带 明暗 → 明暗 柔化两个色带之间阶梯的拐角:在相差两级或以上的色带之间(投射阴影、灯光、高光),拐角取中间那一级;在相邻色带之间,开启抖动时,铺在表面上的棋盘格中一种颜色上的拐角会取另一个色带——一种位于调色板上的抖动过渡,清理不会去动它。 两侧、抖动
排线 明暗 → 图层 明暗颜色,在顶部色带以下的每个色带上叠加斜线、交叉排线或网点,色带越暗越密,颜色取下一级或线条颜色。排线色带与抖动区域一样是一种图案:清理不会动它笔画之间的像素。它取代明暗颜色。 图案、使用线条颜色
凹陷 (normals、depth)→ 数值 表面向内折叠的程度:折痕处高于 0,脊线处低于 0。对它做阈值处理并接入在遮罩处取级,取 −1,折痕就会暗一级。不接线时,它读取渲染结果。 半径、深度跳变
颜色边缘 (线条、albedo)→ 线条 在同一部件内部绘制的颜色发生变化的地方画一条线,画在较暗的一侧,因此只有一像素宽,颜色与折痕相同(所以要给线条颜色设置折痕颜色)。把它放在整理线条之前,后者会让线条没有拐角和重复。不接线时,它读取模型自身的颜色。 对比度
线条粗细 线条 → 线条 在背光一侧加粗为两像素的剪影,外围再加上 边框圈数的描边,颜色取外线条的颜色,或者开启自身颜色后取颜色(调色板中最接近的颜色)。内部线条与剪影相接的地方保持一像素。 阴影侧、边框、自身颜色、颜色
整理剪影 图层 → 图层 去掉描边上的一像素尖刺(细小部件的末端除外),用周围的颜色填补一像素的缺口和孔洞——如果用描边颜色填补会让描边变成两像素粗,就不用描边颜色。 尖刺、缺口
调色板抖动 图层(+ 光照)→ 图层 每个像素自身的表面颜色,经连入的系数照亮(1 表示保持原样),以混合后最接近它的一对调色板颜色表示(Yliluoma 抖动),按表面的阈值排布。线条保留;其余部分是清理不会动的抖动。 颜色对跨度:值越高越只保留相近的颜色对
色阶映射 数值(+ 色阶)→ 图层 从一张图像条中读取的美术师色阶:数值 0 到 1 沿着它由暗到亮取色。多行的图像条让每个色阶各占一行。没有图像时,使用该颜色自己的色带。把主光经过重映射接入它。 文件
图块颜色 图层 → 图层 从左上角开始把画面分成图块,每个图块限定一定数量的颜色,就像 NES 以 8 的 8 × 3 图块布局那样:使用最多的颜色保留下来(如果一个像素与三个相邻像素都不同,就算作它们的颜色,这样光栅化产生的边缘像素不会左右选择),其余像素取其中最接近的颜色,而颜色上孤立的像素则取图块中相邻像素的颜色。 图块、颜色
亚像素运动 图层(+ 运动)→ 图层 每帧移动少于仍低于像素的部件(呼吸、摇摆)会在边缘像素上表现出来:只被部分覆盖的像素沿色阶降一级,它正在渐渐移入的空像素在被覆盖四分之一后取该颜色。可以放在节点图中的任何位置:边缘取自渲染结果,因此放在合并之后也有效,描边保持原样(只有其内侧的边缘像素会改变)。 仍低于、级数
CRT 图层 → 图层 它的图像是屏幕上的画面——扫描线、荫罩或 LCD 网格——每个像素对应几个屏幕像素。这张图像不在调色板内,所以只用于观看和静态图:图层会原样传给精灵,任何精灵表或导出都不会带上屏幕效果。选中它,2D 视图就会显示屏幕效果,起初以整数倍显示;pxr stages MODEL --style KIT --node crt 会把它写成 crt.still.png。把它放在最后,输出之前。 屏幕、尺寸

在脚本中,与其他节点一样:

pxr graph add my.pixor --node tidy-silhouette --in layer=3   # node 8, after Cleanup
pxr graph wire my.pixor --from 8 --to 4 --slot layer         # and into the palette

Glint 以及其他接收 shading 的节点要放在光与影中,那里才有明暗(在外面,这个组输出的是完成的图层):在应用中打开这个组并在其中添加它们,或者把这个组保存为套件,编辑后用 pxr graph swap --kit 放回去。

每个都有一个黄金用例(tests/golden/cases.txt,hand-*):外观起始的节点图和放入的节点,作为 pxr render --style 读取的风格节点图套件。

每个属性都是一个输入

节点的设置就是它的属性:节点内部的各行,每行左侧有一个端口。可以直接在节点上设置,也可以接入一个值,此时该行变灰并显示连线传来的内容。值本身也是节点,位于库中的值下:数值、开/关、角度、文字,以及基于它们的运算(相加、相减、相乘、相除、更小的值、更大的值、高于、相对、两者都开、任一开启、选取一个值),它们的操作数也是属性。一个开/关接入三个节点,就能同时打开或关闭这三个节点。

属性分成有名称的组(重映射的从和到,边的颜色和正在查找);点击组名即可折叠。连到折叠属性的连线会接在组名上。

组的属性就是它的值输入。对属性由值驱动的节点编组后,每个值都会成为组的一个输入,以它所接入的属性命名,排在组的其他输入之后:在组的方框上占一行,可以在那里设置(这会设置内部所有由它连出的属性),也可以从外部连线。

风格的各个部分所设置的组——光与影、线稿、线框、清理——既由这些部分设置,也由其中原子节点的属性设置;调色板是画面的颜色,由「颜色」部分设置。

每种材质一次,每个部件一次

除非另行指定,节点对整个帧只运行一次。选中节点,在检查器中把段设为每种材质一次或每个部件一次,它就会对每种材质或部件各运行一次,每次只看到当前这一个,就好像帧的其余部分是空的;然后逐像素把各部分重新拼合。这时它的标题会显示每种材质或每个部件。

正是这一点让模糊、扩张、描边或清理不会从一个部件越界到下一个部件:按部件运行的线条节点会在每个部件周围画线,而同一节点只运行一次则在整个模型周围画线。以这种方式设置的组,其内部的所有节点都以这种方式运行。按部件运行的节点不参考上一帧,因此没有闪烁滞后。

在命令行或外观文件中,同样的设置就是该节点的 scope:pxr graph set my.pixor --which style --node cleanup --set scope=object(frame、material 或 object)。

把节点的图像作为独立图层

精灵是输出节点得到的结果,但任何节点的图像都可以一并写出。选中该节点,在检查器的额外输出下输入一个名称:它的标题随即显示 layer 和该名称,每次导出都会把它与 lines 和 flat 放在一起——在 layers 导出中是以它命名的单独精灵表(hero_rim.png),在 .aseprite 中是一个隐藏图层,重新烘焙时会像 Pixor 的其他图层一样被替换。轮廓光、着色器读取的遮罩、某个部件的线条:节点生成的任何东西都可以。清空名称,它就不再是输出。它不能使用精灵表已有的名称(final、lines、flat、normal、depth、emission 等),也不能与另一个额外输出重名。

在脚本中:pxr graph extra my.pixor --node line-work --name rim,用 --drop 将其移除。

示例:做旧的油漆

把明暗压平,然后用噪声遮罩在有明暗和平涂两个版本之间选择,表面看起来就像油漆一块块剥落:

 Light and shade --+---------------+
                   |               +--> Choose --> Combine --> ...
                   +--> Flatten ---+
 Noise ----------------------------+
  1. 添加压平,并把光与影接入它。
  2. 添加噪波;把它的大小设为约 5 像素。
  3. 添加按遮罩选择:把光与影接入 A,压平接入 B,噪波接入遮罩。
  4. 把连线从合并的 shading 输入上拖开,改为连接按遮罩选择。

组:一个可以打开的盒子

组是作为一个节点使用的节点图。Pixor 自带像素化,即把上面的整条管线装进一个方框(在库中的管线下),以及构成初始节点图的各个组:分层渲染、光与影、线稿、线框和清理——它们的名称与明暗和线条处理步骤不同,后者在一个方框中完成组分步完成的工作。它们都不是享有特权的内置功能。

组在每个节点图中都可以就地展开。双击组(标题以外的位置),或点击其标题栏右侧的箭头(只有组节点才有):组本身会变成其内部节点图的边框。打开的组里的组也以同样方式在其边框内展开。它的标题栏横贯顶部,参数留在左侧,原来显示预览图的地方则在同一节点图中排布着内部节点。连线只从边框的两侧穿过。输入组的内容到达左侧的输入端,再从每个输入右侧的锚点(即原来闭合方框的边框位置)出发,连到内部读取它的节点。每个输出都是边框右侧的一个锚点,与内部生成它的节点平齐,读取该输出的一切都从那里连出。内部的东西从不越出边框,后面的节点会移开让出空间——仅在屏幕上:节点图仍记录它们原来的位置。内部的每个节点都可以像其他节点一样编辑:设置、预览图、连线、名称;粘贴或放入边框内的节点会加入组。再点一次箭头,组就折叠回方框和预览图。哪些组处于展开状态属于窗口,而不属于项目。

创建你自己的组。选取要放进组的节点——拖出一个框把它们框住,或按住 Shift 点击;当前选中的节点也算在内——然后点击组(或 Ctrl+G):它们会变成一个方框,每条连入的连线对应一个输入,节点图其余部分从它们读取的结果则作为输出。组会立即展开;按 F2 可命名。工具栏上的保存套件…会把选中的组保存为你自己的套件(将组保存为套件;文件对话框从节点库在我的节点下列出的文件夹开始),节点库会在每个项目中、在同类节点图里把它列在那里;未选中组时则保存整个节点图(将风格节点图保存为套件)。每个节点图的保存套件…都是这个意思。

组和其他外观一样以套件形式传递,pxr graph flatten look.pixorkit 会把它展开成它所代表的普通节点写出来,因此它读起来是一份差异,而不是一个黑盒。

保存的外观也是一个组。+ › 使用套件…把风格的保存套件…或 pxr graph save 写出的外观作为单个组放进屏幕上的节点图:它的「输出」节点成为方框的输出,即一个图层,由你接入——例如通过叠加于盖在节点图自身的结果之上,或接入按遮罩选择,让模型的某一部分使用另一种外观。双击它即可查看和修改内部的外观。

可以用来搭建的素材

除了这些处理步骤,库中还有构成外观的小节点:上面提到的输入、数学、空间、遮罩、颜色和混合节点。

内置的组——光与影、线稿、线框和清理——由原子节点组成,每个原子节点只做一件事,只有几个旋钮:光照色带、内部线条的最小长度、模型自身的边、根据连接方式找出的孤立像素。它们所取代的完整处理过程仍在节点库中,供只想用一个方框的节点图使用。你仍然可以用自己的链条替换其中任何一个——把主光连到重映射、级别位于和映射到调色板,你就写出了自己的明暗;或者把边缘像素作为按遮罩选择的遮罩,在平涂外观和高一级的外观之间选择,你就亲手画出了线框。

分享外观

风格的保存套件…和使用套件…可以把一种外观从一个项目带到另一个项目;模型、片段和导出保持不变。风格套件还包含节点图,因此「游戏中的每个资产都风格统一」也涵盖了经过连线的外观。

右键单击画布 › 恢复为预设的节点图会丢弃节点图,回到 Pixor 的管线。此后项目中不再保存任何节点图。

每个节点图都有相同的工具栏:它显示的内容(管线的名称、例程的返回路径),然后是 +(添加节点)、−(删除选中的节点)、帧、整理、注释、组、保存套件…,以及显示或隐藏节点预览图的眼睛图标——每一项在每个节点图中都可用。

它不会做什么

  • 没有脚本节点,也没有 GPU 节点。每个节点都是其输入的固定函数,因此同一个项目每次都得到相同的像素,今天如此,十年后也如此(换一台机器几乎总是如此:见常见问题)。
  • 节点永远不会在你背后变化。节点图会记录每个节点是按哪个版本制作的,旧的行为以旧版本的形式保留在 Pixor 中。
  • 它不是通用的图像编辑器。这些是 Pixor 自己的处理步骤,带有类型,只有合理的东西才能连在一起。绘画、滤镜和任意数学运算属于绘图软件。

节点参考

四个节点图的每个节点:它的作用、输入和输出,以及每项设置的取值范围和默认值。

风格节点图

摄像机渲染图层图像补光运动表面抖动循环相位颜色的色阶金属度粗糙度自发光遮蔽透明边缘像素明暗色阶位置线条光照色带世界光照高光辉光色阶偏移明暗颜色剪影边整理线条孤立像素连线路径网格线颜色平滑拐角线条颜色网格边合并清理映射到调色板调色板色阶取级在遮罩处取级压平阈值按部件按材质按朝向噪波噪波场最近颜色图案实心像素非与或按遮罩选择抖动混合叠加于绘制数值添加相减相乘相除更小更大无符号比例整数中间停留重映射混合级别位于平滑阶跃一致度长度作为数值偏移模糊坡度扩张收缩形状取消色带闪光柔化色带排线凹陷颜色边缘线条粗细整理剪影调色板抖动色阶映射图块颜色亚像素运动CRT输出数值开/关角度文字相加相减相乘相除更小的值更大的值高于相对两者都开任一开启选取一个值分层渲染光与影线稿

动作节点图

片段关键帧例程动作场景时间常量波噪波色阶旋转浮动摆动脉动滑动数学混合合并序列时间偏移速度裁剪重复反转滞后级限制重命名选择实例应用于输出数值开/关角度文字相加相减相乘相除更小的值更大的值高于相对两者都开任一开启选取一个值

资产节点图

精灵图像文件合并图层帧范围停留翻转标签排列放置叠放叠加精灵表文件JSONAseprite 文件Godot SpriteFrames法线贴图深度图自发光贴图线稿和平涂图层调色板每个片段一个 GIF每个片段一个 APNG每个片段一段视频灯光套件PICO-8 卡带报告阴影图层调色板变体纸娃娃图层视差图层文本文件ZIP 压缩包图块集图标动画文件图块集 JSONGodot TileSetTiled 图块集双网格精灵表GameMaker 自动图块RPG Maker 自动图块Unity RuleTileLDtk 项目图块调色板变体地图预览数值开/关角度文字相加相减相乘相除更小的值更大的值高于相对两者都开任一开启选取一个值

场景节点图

导入物体环行网格散布看向变化播放合并可见于差值连接移动镜像细分置换高度场倒角落到地面在表面上在点上设置形状属性选择输出形状图像文字体积灯效果物品道具弹簧地形小枝树叶水云天空风光柱时段数据块数值开/关角度文字相加相减相乘相除更小的值更大的值高于相对两者都开任一开启选取一个值

本页介绍的内容属于完整版;免费的浏览器演示版只提供默认外观和 PNG 精灵表。

在浏览器中试用 获取 Pixor