说出来你可能不信,1993年那款让无数人躲在屏幕后面尖叫的《毁灭战士》(Doom),它的动画系统是用一款绘图软件的“撤销”功能搓出来的。

这不是什么都市传说,而是id Software联合创始人、初代《毁灭战士》首席美术Adrian Carmack在近期一次访谈中亲口抖出来的老底。最近他和Jesse Petrilla聊了聊当年做游戏的事,聊到动画工具的时候,老哥一句话直接把复杂度拉到了让人困惑的高度:“作为一个美术,很多时候你得自己造工具。当时没有动画工具,所以我开始用撤销键来做动画——是Deluxe Paint里的撤销键,就这么来回切。”

打开网易新闻 查看精彩图片

是不是听着有点抽象?别急,这得从初代《毁灭战士》的动画到底长什么样说起。那个时候游戏里的动画和我们今天看到的那种“模型丝滑过渡、动作细腻到手指关节”完全不是一回事。《毁灭战士》里从敌人到手里的枪,全是逐帧精灵图,动作就是靠有限几张静态帧快速切换实现的,每一下换弹、每一次恶魔的扑咬都有一种定格动画般的朴拙感。而Adrian Carmack的办法,就是在Deluxe Paint里画一帧,撤销一帧,再重画下一帧,靠这个“画→撤销→再画”的循环过程,把每一帧微小的变化捕捉下来,串成可以在游戏里跑的动画循环。

用他自己的话说,当时程序员约翰·卡马克(John Carmack)在动画帧数上卡得极死,留给他的发挥空间非常有限。“我一直试着极其节俭地做动画……在尽可能少的帧数里让它看起来尽可能好。”这种压榨式的优化思维,本身就够让现在的开发者听了头皮发麻。但更让人没想到的是,他实现这种极致压缩的方法,竟然是依赖一个理论上随时会翻车的“撤销键工作流”。

想想那个场景:你在做一套恶魔的行走动画,画到第四帧的时候发现第三帧的角度不对,于是连按几次Ctrl+Z倒回去重来,结果一个手抖多撤了一步,前面两帧也没了。Adrian Carmack自己在访谈里也承认,这不是一个无风险的操作。他说:“第一次弄丢工作成果之后,你就会变得非常小心。所以我后来用这种方式的时候,几乎不会再丢什么东西了。”一个从失误中逼出来的肌肉记忆,就这么撑起了一款殿堂级射击游戏的全部视觉动态。

最有意思的是,当时id Software团队内部对这个草根方案的反应。Adrian Carmack回忆道:“大家对我能想出这种办法来做动画印象相当深刻。”一群用C语言在386机器上硬刚3D引擎的程序员,看到美术用绘图软件的撤销键搓出了完整的动画管线,那种“这也行?但确实行”的感慨几乎穿越了三十多年还能听得到。

这件事放到今天的游戏开发环境下看,反差感会更强。现在的美术打开Blender或者Maya,动画系统、时间轴、曲线编辑器、自动补帧一应俱全,2D精灵图也有Aseprite这种专为像素动画优化的工具。而1993年的Deluxe Paint本身就是个位图绘制软件,连图层概念都没有多先进,更别说内置动画模块了。Adrian Carmack的做法,本质上是把一个绘图工具硬生生用成了动画编辑器,而且是在“尽可能少帧数”这个硬约束下,靠手感和反复撤销硬磨出来的结果。

这也能解释为什么初代《毁灭战士》在视觉上有一种很特殊的张力。它的怪物动作谈不上流畅,但每一帧都踩在最关键的运动节点上——火球恶魔的投掷姿态、丧尸士兵被击中时的后仰幅度、霰弹枪换弹时那一下干脆利落的抽壳动作,全都精准到位,没有一帧是浪费的。这不是什么美学风格的选择,纯粹是技术限制逼出来的设计本能。一个被帧数卡死的美术,每一笔都得想清楚“这一帧到底要表达什么”,因为下一帧可能压根就不被允许存在。

当然,Adrian Carmack能在这么原始的条件下干出这种事,背后还有一个更根本的驱动因素:那代开发者面对“没有工具”这个难题时的本能反应不是等,而是自己造。id Software在引擎技术上已经走在时代前面了,但美术管线完全没跟上。没有动画工具怎么办?现场发明一个。没有现成的方案怎么办?拿手头能用的东西硬搭一个出来。这种“先用起来再说”的极客精神,在今天的独立游戏圈里依然能看到影子,但在1993年那种连参考对象都没有的环境下,它的含金量和疯狂程度都要高出几个量级。

所以下次你在某个独立游戏里看到一套丝滑到不行的像素动画,别光顾着夸像素美术有复古味。三十年前那帮人做像素动画,靠的可不是情怀,是拿撤销键硬生生把几张静帧磨成了活的。