# 像素画 · `pixelArt.ts`

**媒介的物理形态。** 格子，在 120 x 120 的网格上（方形画幅）一次铺一格，每一格恰好是事先声明的十六种调色板颜色之一（`PALETTE`），网格按整数倍放大，关闭平滑（`pixelArtKit.ts` 里的 `blit`：格子尺寸是整数，每一段连续的格子用一次 `fillRect`，别的什么都不碰画布）。没有抗锯齿，没有收笔变细，没有抖动，没有纹理贴图，也没有纸：机器般的锐利就是媒介本身。

**笔触。** 单个格子（铅笔工具）、油漆桶填充、抖动（dither）簇。半色调是 2x2 的有序抖动（`PixelDraft.dith`），绝不用 alpha 混合。光晕是手工设计的图章（核心、受光环、一格一格变稀的衰减），而不是棋盘格圆。

**边缘。** 阶梯，保持干净：沿曲线的连续段长度一致，没有双重拐角，没有孤立的格子（`cleanMask` 去掉单格的凸起，补上单格的凹口）。脸、耳朵和眼睛作为 ASCII 精灵图（`HEAD`）手工铺出来；公式放不准耳尖。

**顺序。** 用平涂的中间色铺大块（铅笔描边，油漆桶填块面；主体先用 2x2 的格子粗粗地铺下去）-> 线条清理（沿剪影扫一圈，去掉一些格子，补上一些格子）-> 明暗簇和天空的抖动色带 -> 高光和轮廓光 -> **最后**才是光源和它们的光晕抖动。两遍之间歇一拍。

**调色板与光。** 十六种颜色：四种夜蓝，月白和它的冷色轮廓光，三种绿加一种被萤火虫照亮的叶色，两种猫身暗色，三种光晕暖色。萤火虫就是光源（爪子、口鼻、内耳上的暖色边缘，以及眼睛的反光）；月亮只给猫背勾一道冷色的轮廓光。

**和近邻不同。** `koi`（马克笔漫画）画的是有粗细变化的轮廓线，外加涂出来的赛璐璐阴影。这里根本没有线条：格子就是笔触，阶梯就是边缘，抖动就是色调。

**运动语法。** 每张画面停 3 帧（3 能整除一拍的 15 帧），手感像 10 fps。过程影片重放录下来的操作列表：完成的静帧里的每一格，都是由某一遍按顺序铺上去的（`celPlan`）。角色的循环动画：按姿势到姿势（pose-to-pose）分段，在设计好的姿势之间整格瞬移，绝不做补间位置。

**闸门。** 渲染出来的帧里，每一个像素都是调色板颜色（通过解码静帧来检查：scale 2 下调色板之外的像素为 0 个）。
