程序员的像素美术忏悔录
我画了三年像素画,才明白自己一直在犯同一个错:把像素当成低分辨率的照片。
我不是美术。我是个写代码的,因为请不起美术,只好自己画。
三年下来,我画了大概两千个 sprite。这篇是一份忏悔录——记录我一直在犯的那个错,以及终于搞明白它的那个下午。
我的错:我一直在“缩小照片”
我最早的像素画,是这么画的:
- 在大画布上画一个好看的角色
- 缩小到 32×32
- 手动清理糊掉的地方
结果永远是一样的:软、脏、看不清。 我以为是我不够熟练。于是我练得更久,画得更多,还是软、还是脏。
三年后我才明白:像素画不是低分辨率的画。像素画是一种独立的媒介,它有自己的语法。
把照片缩小,得到的是像素化的照片。不是像素画。
语法一:一个像素是“一个东西”,不是“一个采样点”
在照片里,一个像素是颜色采样。在像素画里,一个像素是一个完整的部件。
我画眼睛的时候,一直想“这里要一个深色的点”。正确的想法是“这里要一只眼睛,而一只眼睛在这个尺寸下恰好是一个像素”。
这个区别听起来像玄学,但它改变了每一笔的决策:
- 如果眼睛是一个像素,那么移动它一格,角色的表情就全变了
- 加一个高光像素在眼睛旁边,角色就“活”了
- 眼睛和眉毛距离两个像素还是三个像素,决定了他是生气还是困惑
在一个像素等于一个采样的思维里,这些都是“精度问题”。在正确的思维里,这些全都是表演。
语法二:不要描边,要“暗部”
我最早给所有角色加一圈纯黑的描边。因为教程都这么教。
后来我发现我的角色看起来像贴纸——浮在背景上,不融入。
真正的做法是:描边不是描边,是暗部。
❌ 一圈纯黑:
████████
█ ···· █
█ ·角色· █
█ ···· █
████████
✅ 光源在左上,那么右下暗、左上亮:
········ 左上:几乎不描,或用一个中间色
· ···· ▓ 右下:用一个比角色暗、但比背景亮的色
· 角色 ▓▓
· ··▓▓▓▓
·········
描边色的选择也是:不要用黑色,要用“这个角色在地面阴影里的那个颜色”。
这一条改完,我的角色第一次看起来“站在世界里”。
语法三:动画是省略,不是补全
我做走路动画的时候,一开始画了八帧。每一帧都是一个完整的姿势。
播放起来像幻灯片。
后来我改成四帧,而且刻意让四帧之间的差别变大:
帧 1:接触 帧 2:下沉
▄█▄ ▄█▄
███ ███
█ █ ▓█▓
█ █ █ █
帧 3:通过 帧 4:上升
▄█▄ ▄█▄
███ ███
▓█▓ █ █
█ █ █
关键在于:观众的大脑会自动补出中间的过程。
你画得越全,大脑补得越少,动画就显得越“死”。你留出的空隙越大,观众参与得越多,动画反而越有生命。
这也是为什么八帧的版本看起来比四帧更差——我把该让观众做的事,自己全做了。
语法四:调色板要小,而且要“偏”
我最早的调色板有 32 色,每个色相都齐。
结果是:画面没有情绪。
现在我的调色板是 12 色,而且整体偏向一个色温。花园的场景偏黄绿,夜晚的场景偏青蓝。同一个木头箱子,白天和晚上用的是完全不同的两组色——不是因为光照变了,是因为情绪变了。
调色板不是工具箱,是滤镜。你选了什么颜色,玩家就透过什么颜色看你的世界。
这一条最反直觉的地方是:限制颜色之后,画面反而变丰富了。因为观众开始注意到那些细微的差别——两个相邻的绿,在他看来已经是“完全不同的两种绿”了。
语法五:先画剪影
这是我最后学会的一条,也是最有用的一条。
在画任何细节之前,先把角色涂成一个纯色块,看剪影。
如果剪影认不出这是谁,那细节画得再好也救不回来。
我的祖母角色,剪影是一个略微前倾的、肩膀有点塌的轮廓。主角是直的。就这一条,玩家在 4 像素高的距离上就能分辨他们。
祖母 主角
▄▄▄ ▄▄
▄███▄ ████
███████ ████
█████ ██
█ █ ██
(前倾,肩塌) (笔直)
我现在的流程是:
- 纯黑剪影,改到能认出来为止
- 加大块明暗(3 个色阶)
- 加高光(1~2 个像素)
- 最后才加细节
第 1 步花的时间最多,占到 60%。 我以前是反过来的,第 1 步花 5 分钟,然后花三小时画衣服的花纹。
三年后的今天
我现在的像素画依然不算好。但我至少知道它为什么不好了——而三年前我连这个都不知道。
如果你也是程序员在自学像素画,我只有一个建议:
别去学 Photoshop 技巧。去临摹 100 个你喜欢的 sprite,每个都逐像素抄一遍。 抄到第 30 个的时候,你会突然明白我在说什么。
那种“啊,原来这么简单”的感觉,值得那三个月。
END OF CARTRIDGE