RECORD · ART DIRECTION

鸟瞰像素美术方向:一个没参与过的美术,拿这一页能画出第二个岛

镜头已定:鸟瞰俯视。此前所有侧视方案作废 —— 镜头是地基,不是风格偏好。这一页把色板、光照、地块、遮挡、角色与年代区分逐条写死,每一条都尽量写成 hex、像素数或算式,而不是形容词。写不成数字的那几条,单独登记在最后一节。

ART · 0 · NEON

要不要走「web3 游戏风格」的深底加霓虹加发光

不走。永久不走,写进方向的第一句。 四条理由,最后一条是机械的,不是审美的。

  1. 它是同一个信号在美术层被加回来:机制层刚把押注与虚拟币摘出去,美术层装回赌场语法等于没拆。
  2. 审核方先看截图。第一张截图形成的先验,会让后面每一个含糊功能都按那个先验被读。
  3. 泛光要花运行时:叠加混合加模糊,跑在小程序的网页视图里不是免费的。
  4. 霓虹不是能叠在本色板上的一种风格,它要求换掉整个色板 —— 而色板是全部纪律的地基。

高级但不霓虹。质感靠光与色板的纪律,不靠发光。

ART · 1 · PALETTE

写死的色板:22 个值,分 7 族

⚠️ 两个前提在这里被推翻,都有实测:① 色板不是十六个值 —— 只用 16 个时角色上衣与背景阴影糊在一起、三阶读不出、轮廓光不成立,角色冷蓝那一族是必需品;② 「收紧色板 ⇒ 省包体」在量级上不成立 —— 同一批像素 4 bit 与 8 bit 的实测差 0.17%,DEFLATE 把位深差吃掉了。色板纪律买到的是视觉一致,不是字节。

冷暗族

#14142a#1b1b3a#2a2a42#3a2a4f#3d3d5c#4a3a63#55557a

木族

#4a3020#6b452c#8f6340#b8865c

灯族

#ffb35c#ffd28a

肤族

#c67b6f#e8b894

最亮

#f4e4c8

植被族

#1f3d33#2f5c46#47805c

角色冷蓝

#2f5478#4a7fa8#6fa3c9
色板一共 22 个值,分 7 族,整个项目不许超。最深是 #14142a 而不是纯黑,最亮是 #f4e4c8 而不是纯白 —— 纯黑纯白在这套里是违规值。
每个文件自己的调色板从这些值里取。单文件不超过 16 项时用 4 bit,超过时用 8 bit,两种都合法。
族这一族干什么值与用途
冷暗族地面、墙、阴影与最深处。阴影色相锚点在这一族里。
  • #14142a 最深,替代纯黑。接触影、最深缝隙
  • #1b1b3a 阴影地面、远景压深
  • #2a2a42 墙体阴影面
  • #3a2a4f 阴影色相锚点(偏冷紫)、头发暗阶
  • #3d3d5c 地面本色
  • #4a3a63 头发亮阶、墙体中间调
  • #55557a 走道(受光地面)
木族木结构与屋顶。四阶从屋檐下一路到受光面。
  • #4a3020 木结构最暗、屋檐下
  • #6b452c 木结构阴影面、墙厚
  • #8f6340 木结构中间调、暖光外圈
  • #b8865c 木结构受光面、暖光中圈
灯族唯一的暖光源色。俯视没有天空,色温全靠它落在地面上。
  • #ffb35c 灯笼光外圈
  • #ffd28a 灯笼光核心
肤族角色的脸与手,两阶。
  • #c67b6f 肤色暗阶(下颌、颈影)
  • #e8b894 肤色亮阶
最亮替代纯白。只在最亮的一小块上出现,用多了旁边所有高光失效。
  • #f4e4c8 领口、高光点、最亮受光
植被族树冠与草地。不可进入的地面一律用这一族或木族填充。
  • #1f3d33 树冠暗
  • #2f5c46 树冠中
  • #47805c 树冠受光
角色冷蓝角色专用。它存在的唯一理由是让角色在冷紫阴影里读得出轮廓 —— 见文件顶部第 ① 条。
  • #2f5478 上衣阴影面
  • #4a7fa8 上衣本色
  • #6fa3c9 上衣轮廓光(角色必需)

没有纯黑,没有纯白。这两个值在整个项目里是违规值。

ART · 2 · LIGHT

五条纪律,以及最容易被画错的那一条

五条全部与引擎、与分辨率无关。它们是 2D 精灵的基本功,没有一条需要 3D。原先还有一条「三层大气透视:远景褪饱和」,已经删掉 —— 镜头是严格俯视,画面里没有「远景」这个平面,而且规划母版里查不到这句话的出处。

  • 色板就是这 22 个值,整个项目不许超。
  • 没有纯黑,没有纯白。最深是 #14142a,最亮是 #f4e4c8。
  • 阴影换色相,不只是变暗:明部靠降明度,暗部靠转色相。
  • 一个光源方向不变,固定左上,所有物件同侧落影。
  • 每一个接触点一条压深接触影,不是可选项。
「阴影换色相不只是变暗」的量化差分。明部靠降明度,暗部靠转色相。
情形实测差分
同族降一阶同族降一阶:色相几乎不动,明度掉 4.5 到 24.5 个点。
跨族转向阴影锚点跨族转向阴影锚点:色相转 5 度到 143 度,明度只掉 1.4 到 32.9 个点。
最关键的一步木结构从中间调 #8f6340 转到阴影锚点 #3a2a4f,只掉 5.9 个明度点,却转了 118 度色相。 整张图发灰,就是这一步被画成了「继续调暗」。

ART · 3 · TOP DOWN

换到俯视之后新出现的三个问题,逐条裁决

这三个问题在侧视里不存在。换镜头必须把它们重答一遍,不能沿用侧视的答案。

屋顶 · 两坡一脊 · 出檐墙厚 6px地面暖光落点 · 俯视没有天空走道 · 只差明度屋顶淡到 25%,角色与名牌全程可见
这张图比屏幕宽,可以左右滑动 —— 它是像素画,缩到装满手机屏就等于把像素糊掉,而这张图整个意义就在像素边界上。
问题裁决数字与理由
俯视里「墙」是什么是三样东西,不是一样:屋顶、墙厚、室内地面各自取色。墙厚固定 6 像素。小于 4 像素读不出厚度,大于 8 像素建筑显矮胖。
俯视没有天空,黄昏色温靠什么传达全部由地面的暖光落点承担。三层同心落点,从外到内取木族中间调、木族受光面、灯族核心。落点覆盖地面的 25% 到 35%,间距 5 到 6 个地块。
角色会不会被建筑挡住不会。屋顶淡到 25%,角色与名牌全程可见。五层固定 depth,可遮挡结构只有屋顶与树冠两种。

ART · 4 · OCCLUSION

角色永不被完全遮挡。名牌永不被遮挡。

排序按角色脚底那一行,不是按精灵中心 —— 中心排序会让站在同一排的两个角色随机互换前后。 角色脚底落在建筑占地内时,该建筑的屋顶淡到 25%,不是淡到看不见:完全消失会让建筑轮廓丢失,玩家分不清自己在屋里还是在露天。

五层固定 depth,不许增加层。
层depth装什么与角色的关系
L00地面、走道、地面暖光落点永远在下
L110墙厚、矮物件、家具与角色一起按脚底行排序
L220角色按脚底行排序
L330屋顶、树冠在上,但受淡出规则
L440名牌、头顶指示器、界面永远在上,永不被遮挡

⚠️ 这一条是可玩性裁决,不是美术让步。距离衰减的空间语音是已付费、零美术、只需接线的能力,而它的整个玩法建立在「我能看见谁在附近,于是走过去」上。 角色一旦能被完全藏进屋顶后面,「谁在附近」这个信息就断了,那条已经付过钱的差异化能力随之失效。这条是在保护一条已经付过费的能力,不是在迁就美术。

ART · 5 · CHARACTER

角色 32 × 48 像素写死

4 朝向 × 4 帧 = 16 格,图集 128 × 192,无间距、无外扩。命名 char-<slug>-32x48-4x4.png —— 尺寸与格数写进文件名,是为了让代码里的切图参数与文件本身互为校验。

头发 2 阶脸 2 阶 + 眼领口 最亮值上衣 3 阶 + 轮廓光腿 2 阶鞋 压深接触影 两行实际大小放大 5 倍在左
精细度不靠加像素,靠加明度台阶。判据是绝对的 —— 单格不透明色值不少于 9 个、必须有轮廓光、必须有接触影,三条都能用一条命令查。
逐层取色与占行。行数之和必须等于 48:改任何一层的行数,必须同时改另一层。
层阶数取色占行
头发2 阶#3a2a4f#4a3a63y 2–9
脸2 阶 + 两只眼睛#e8b894#c67b6f#1b1b3ay 10–17
领口1 阶#f4e4c8y 18
上衣3 阶 + 轮廓光#2f5478#4a7fa8#6fa3c9y 19–33
腿2 阶#3d3d5c#1b1b3ay 34–42
鞋1 阶(压深)#1b1b3ay 43–45
接触影1 阶,两条#14142ay 46–47
三条绝对判据。⚠️ 原表述是「比 Gather 多五个明度台阶」,已推翻 —— 「Gather 的化身约 4 到 6 个色值、无轮廓光」这两项没有任何竞品实测支撑, 一条依赖未核实竞品测量的比较判据是不可检验的判据。方向采纳,判据改写成绝对判据:达标不再需要去测 Gather。
判据怎么查
单个角色格内不透明色值不少于 9 个magick sprite.png -format %k info: 读回的数不少于 10(含透明位)
必须有轮廓光 #6fa3c9,且只在受光侧一条不超过 2 像素宽的竖条上取轮廓光色的最小 x 必须落在精灵右缘,宽度不超过 2 像素
必须有接触影 #14142a,落在最后两行y 46 与 y 47 两行必须各出现一次最深色

ART · 6 · BYTES

精细几乎免费,贵的是地块面积

一张 512 见方的地块图集,等于 40 个角色图集。 加台阶、加朝向、加角色都是便宜的;加地块面积才贵。角色精细度的讨论不许再牵扯预算。

⚠️ 诚实的边界:562 B 是一个几何简单的测试精灵,真人美术会加细节、熵会上去。诚实区间是 562 B 到 12,608 B(后者是同尺寸十六色白噪声的上限)。排期继续用 3 KB —— 它落在区间内且偏保守, 现在有实测支撑,不再是裸估算。
项实测
角色图集562 B
地块图集 512 见方22,825 B
地块图集 2048 见方347,859 B
倍数40.6×
每岛资产合计0.69 MiB,落在既有预算锁定的 0.78 MiB 之内 ⇒ 既有的岛数继续有效且偏保守
位深差0.17% —— 这就是「收紧色板省包体」不成立的实测依据

ART · 7 · ERA

每岛一个历史时期,同一套色板怎么成立

前提写死:换色板会破坏全部光照纪律,所以年代绝不靠色相区分,靠几何与密度区分。四种手段全部可以用像素数量数出来。

⚠️ 这四个岛的具体数字是按手段推出来的示例,不是考据结论。免费素材库系统性缺文明特异性主题,所以这四个岛第一天起就是外包定制 —— 本表是给外包的验收标尺,不是替代考据。
岛轮廓语汇纹理密度灯光落点地块图案周期
江户直脊,出檐 6 像素木板 18 到 24 像素每格纸灯笼,圆形石板缝,周期 32 像素
宋直脊,出檐 8 像素,转角上翘 2 像素方砖 8 到 12 像素每格宫灯,六边形人字纹,周期 16 像素
维京陡 A 字,无出檐草皮 40 到 55 像素每格明火火盆,不规则泥地无缝,周期 8 像素
玛雅无屋顶,阶梯平台每阶 4 像素石雕 12 到 18 像素每格壁龛火炬,细长大石板,周期 64 像素

ART · 8 · ANTI PATTERNS

反面清单

每一条都写清为什么。一条禁令说不出理由,下一个人就会把它删掉 —— 那正是这一列存在的原因。

禁为什么
纯黑描边色板里没有这个值;黑边会在暖光落点上割出一条死线,破坏色温传达。
纯白最亮位是 #f4e4c8,用纯白会让它旁边所有高光失效。
满饱和填色满饱和是霓虹的前置条件,一出现就把整套往赌场语法推。
发光霓虹与泛光深底加高饱和霓虹加泛光,正是加密交易所与赌场共用的视觉语法。
混用像素密度一个地块里混进半格或双格的笔触,透视立刻塌;这是业余作品最一眼的破绽。
每岛换色板换色板等于放弃全部光照纪律。年代要靠几何与密度区分。
靠放大角色解决精细度32 × 48 写死。放大会破坏与地块的一格半关系,且违反「也别太大」。
在族内硬调暗当阴影暗部必须转色相,否则整张图发灰。
给地块四边都描缝缝只画背光的右下两边,缝本身要传达光源方向。
用运行时光照代替烘进图集的暖光落点破坏色板、加显卡开销,且在小程序的网页视图里不可控。
角色能被完全遮挡直接打断已付费的空间语音核心玩法。
按精灵中心排序同排角色会随机互换前后。必须按脚底行。

ART · 9 · UNVERIFIED

还没核实的东西

纪律的第二半:没核实的东西不许进正文当事实。每条都写清它影响什么、不影响什么 —— 只写一侧等于没登记。

没核实的是什么它影响什么它不影响什么
Gather 的地块尺寸与化身色值一次也没实测过「角色一格宽、一格半高」这个比例的外部参照不影响三条绝对判据 —— 它们被改写成绝对判据正是为了不依赖这次实测
引擎加插件打包后的字节数已经复现:656,114 B,落成真 zip 后由平台自己的扫描器读出,四条互相隔离的路径给同一个数。剩下没验的是这四个插件在引擎运行时里真能不能跑 —— 只验过打包,没起过浏览器插件集能不能拍板;组合一变这个字节数就要重量(去掉界面插件实测掉到 427,693 B)不影响「地块面积才是大头」这个相对结论,也不影响岛数(重算后仍是 20 座与 11 座)
取色表只验过几何、层序、色值计数与字节量级「好不好看」这一项,它没有被任何门禁验过不影响可机械检查的那三条判据

本页压缩自 446 号《鸟瞰像素美术方向规格》,完整原文以 reits-knowledge 为准(镜像 510 行 · sha256 5740e86602abef6c…)。章节全图在 规划母版与章节全图。