FC(Family Computer)诞生于1983年,90年代开始在中国大面积流行。想必FC(NES/红白机/小霸王)是各位80后、90后大叔的童年回忆。还记得那个火热的夏天,刚放学的我们,约上几个小伙伴,围坐在电视机前,双打魂斗罗的场景吗?FC上诞生了太多太多经典的游戏,《魂斗罗》《超级马里奥兄弟》《双截龙》《坦克大战》《雪人兄弟》......陪我们度过童年美好的时光。
大家一定很想知道FC是如何用孱弱的机能实现精美的游戏画面的吧。(好吧,大家其实并不想)。
在这里我就简单介绍一下FC的显示技术,顺便带大家找寻童年的记忆。绝不采用生涩难懂的专业术语,力求以最轻松的方式向大家科普,我的目标是,让我奶奶也看得懂。
(0)角色与背景
先考大家一个单选题。
一款游戏最重要的组成部分是():
A开箱与氪金
B欧皇与非酋
C奸商与冷饭
D外挂与土豪
答对有奖(才怪)。
聪明的观众肯定一下子就选出了正确答案。
没错,正如大家所选的,一款游戏最重要的组成部分就是角色与背景。
人类历史上第一款家用主机 奥德赛(Odyssey)
最新的游戏《战神4》
两个游戏都是由背景和角色构成。
最老和最新,两者隔了46年,在这46年的岁月里游戏画面的基本组成元素从未改变过。
我们就以这两方面入手,说说FC游戏的画面技术吧。
文章分为4个章节。
1.背景
2.角色
3.水平切割
4.某些游戏运用的奇技淫巧
(1)背景
背景,顾名思义,就是游戏人物活动的场景。没有背景,只有黑漆漆的一片,这游戏还怎么玩?
FC的分辨率很低,只有区区256x224,什么概念呢,我们的“真4K”游戏机ps4 pro的分辨率是FC的145倍,换句话说,ps4 pro能装下145个FC画面。
有人说,低分辨率的点阵图也能表现出很好的效果啊。
没错,点阵组成的图片也能做的很精美。
比如说:
等会儿再开车
很遗憾,FC不可能达到这种效果(如果能达到,各位小伙伴的童年该会是多么愉快啊),到底为什么,看完以下内容,大家就明白了。
FC的背景绘制存在极大的限制,毕竟是1983年的硬件,当年的程序猿和美工狮是在如此恶劣的环境中开发游戏。
这个场景大家肯定再熟悉不过(为了突出背景,去掉了人物)。玩过FC的人不可能没玩过这个游戏。没错,这个游戏就是大名鼎鼎的《魂斗罗》,又名《双截龙》,俗称《坦克大战》,诨名《沙罗曼蛇》......
大家猜猜,绘制这个背景使用了多大的内存?
这个截图以png格式保存,大小为2.43KB。然而,FC的显存只有2KB。所以,用现代的方法连一个最简单的场景都做不出来。
聪明的程序猿用一个很聪明的方法完成了这个“Mission: Impossible”。
大家仔细观察一下这个背景,有没有发现,地板和砖块都是用方块拼出来的?
对了,就是用方块(tile)拼!
加上网格就很直白了,FC游戏的背景就是用一个个方块拼出来的。
每个网格就是一个方块,方块是8x8像素,横着数32个方块,竖着数28个方块,总共32x28=896个方块。
这些方块都是大量地重复使用。
FC游戏里有个拼图库(个人翻译,专业术语叫CHR)。
如下图所示。
里面一个有16x16=256个方块。
大家仔细找找,这个场景里的所有方块都能在拼图库里找到。库里甚至还能找到一些奇奇怪怪的东西,那是之后的场景素材。
比如说这个问号,就是由4个方块组成。
库里每个方块都有自己的索引,简单说就是编号。
如果想用一个方块,直接从拼图库里按编号找就行了。
所以,FC游戏的画风其实是这样的
逼死密集恐惧症。
整个屏幕被分成32x28个方块,每个方块包含一个编号,根据编号找到拼图库里对应的拼图,然后显示出来。
大家注意到没有,屏幕一共有32x28个方块,拼图库一共有16x16个方块,所以,拼图库的方块必然有很多被重复使用的。比如说满屏幕的24号......拼图库里24号对应的就是蔚蓝的天空。
16x16/(32x28)=28%,整个背景只有28%的内容是不重复的,剩下的72%必须重复,这是逼死美工狮的节奏啊。
所以,FC游戏的过场动画大多都是很小的一块屏幕,比如
全屏?美工狮:“臣妾做不到啊!”
FC游戏已经把素材重复利用发挥到了极致。
大家有没有发现,这朵云和这颗树长得一模一样。
没错,云和树用了拼图库里同样的6个方块,只是换了颜色而已 。
它们是如何换颜色的呢?
用调色板(PALETTE)。
调色板,顾名思义,就是给方块上色的。
FC一共可以用53种颜色,调色盘从这53种颜色里选取3种颜色,“透明”也算一种颜色(此时显示背景的底色),一共4种颜色。
这4种颜色用来给方块上色。
这就意味着每个方块只能有4种色彩。
绝对不可能有超过4种颜色的方块存在,请大家发动写轮眼找吧,找到第5种颜色,奖励游研社社长的初吻。
调色板可以有4个,每个方块就有4个配色方案。
4个调色板如图所示。
每一行就是一个调色板,数字表示该颜色的号码,0F代表透明色。
小伙伴们知道云和树分别用的是哪个调色板吗?
当年的程序猿就是用如此巧妙的方法绘制背景来节省内存的。
但是,这种背景绘制方法是美工狮的灾难。
大家有没有发现,这些平台的边缘有点不正常,有锯齿状的东西。
给图片加上网格。
大家明白了吧。
这些锯齿就是因为方块与方块之间的过度没处理好所造成的。
前文说过,每个方块只能有4种颜色,如果两个方块用的调色盘颜色差异比较大,处理不好就容易出现这种问题。
所以,背景的绘制很考验美工狮的水平。
美工狮:“总监,我实在肝不动了......”
也有很多天才的美工狮用如此苛刻的条件做出精密的作品。
比如这个场景,惊为天人,完全看不出方块的痕迹,也看不出太多重复的东西。堪称FC游戏美工的典范。
总监:“嗯,干的不错,晚上加鸡腿......麻呆,刚才那个背景也是你画的吧?”
其实这两张图出自同一个游戏,《忍者蛙》。
说了那么多,终于到了万众期待的开车时间。
大家终于知道为什么FC做不出开头那些galgame的效果了吧。
我带大家复习一下这章的内容。
1.FC画面是由方块组成,而且方块只能在拼图库里找。
2.构成背景所用的方块至少有72%的内容重复。
3.每个方块只能有4种颜色,且总共有4种配色方案。
那么,用FC到底能不能画出美女来呢?
答案是肯定的。
大家坐稳,老司机开车了。
拿走,不谢,请叫我雷锋。
(2)角色
现在我们已经有背景了,再加上角色,就可以愉快地游戏了。
很幸运,角色和背景一样,也是由方块构成,然后由调色盘上色。
为什么说幸运呢?因为我可以不用把同样的内容讲两遍了......
就用大家最熟悉的《双截龙2》做例子。
《双截龙2》的主角就是大家最喜爱的比♂利。
Oh不,应该是这个比利。
第一章里已经对方块进行过介绍了,在这里我就直接把网格画上。(为何裆部有一块迷之凸起?)
在这里,我们就不能把这个叫做方块了,我们要叫它“活动块”(sprite)。
活动块,顾名思义,就是“可以活动的方块”,背景的方块无法灵活活动,但是,活动块就没有这个限制,所以我们控制的角色可以上天入地,无所不能。
大家可以看出,比♂利一共由10块活动块拼成。游戏里,主角,敌人,子弹等一切活动的东西都是由活动块构成。
但是,活动块也不是无限使用的,不然为何真三国无双不出FC版(删除这句话)?
同一个画面最多能使用64个活动块。
而且,64块也不能随便乱用,因为FC是用“行”为单位逐行输出画面的,由于机能的限制,同一行最多只能输出8块活动块。
那么,万一同一行活动块超过这8块,会怎么样呢?FC会爆炸?
我们先来玩一个找茬的游戏。
大家来找茬
无奖竞猜,以上3张图有几处不同?
每张图的活动块都有不同程度地缺失。
想必大家已经知道答案了吧。
当同一行活动块的数量超过8个的时候怎么办?只要让超过部分消失就行了。
程序猿:“我是处女座,每行活动块数量绝对不能超过8个!”
但是,消失过狠了,这游戏就没法玩了,可以看出来,图上有2颗子弹,一颗红色,一颗绿色,但是3张图都没有把子弹显示全。也就是说,子弹隐身了。
“子弹隐身?玩毛啊!”摔手柄。
在消失活动块时有个优先级设置,优先级低的活动块消失。
程序猿在设计游戏时,通常让每个活动块的优先级轮流起来。这一帧你优先级低,你滚蛋,下一帧我优先级低,我消失,谁也不吃亏。
此时,在玩家眼里就表现出闪烁的现象。
子弹并没有消失,只是变闪了,还能愉快玩耍。
此时,有些观众肯定想拿这张图打我脸。
看这个BOSS,宽度明显已经超过8个活动块了,为何它没有闪烁?
这个问题问的太好了(观众:明明是你自己问的好不好)。
我偷偷告诉大家,其实这个BOSS不是敌人,而是背景。
惊不惊喜,意不意外?
用背景如何做出BOSS来?请看下一章。
(3)水平切割
上两章内容,已经介绍了FC画面的基本原理,这一章就是进阶内容。
水平切割(Raster Scroll)是背景处理的一个特殊技巧,能大幅提高游戏画面效果,广泛运用于FC后期的大作中,由于它比较重要,所以单独列出一章。
第一章讲了背景的组成,但是这种方法组成背景有局限性。背景只能有一张,缺乏层次感。
众所周知的一个道理,离我们近的东西走的快,离我们远的东西走的慢。当所有东西都绘制在同一张背景里时,就看不出快慢的区别了。
比如这张图:
当马里奥往前走时,所有的背景(山树云砖块)都是同步运动的,就像在一张巨大的墙纸前移动,没有层次感,这显然和实际生活体验不服。
玩家对画质的追求是无止境的。
但这显然难不倒我们聪明的程序猿。
前面提到过,FC是用“行”为单位逐行输出画面,那么,在输出完一行时,重写背景的坐标,就能造成背景行的错位现象,就能实现行与行之间的相对运动。层次感就这样处来了。
看这个图,是不是舒服多了呢?
近的东西走的快,远的东西走的慢。
水平切割不止能制造出层次感,还能制造出巨大的boss来。
回到第二章的结尾。
第一章说过,活动块有64个总数限制和同行8个限制。直接用活动块做BOSS就难免显得小家子气。
《忍者龙剑传3》的这个boss,和隼龙差不多大,没有boss应有的魄力。但是没办法,这是活动块所能达到的极限了。
怎么办?
中国有句古话,“活动块不够,背景来凑!”
聪明的程序猿想到了用背景充当boss的方法。
大家有没有发现一个有趣的现象,凡是打这些用背景做的巨大boss时候,背景画面都是纯色的(以纯黑色居多)。
就拿刚才的《超级魂斗罗》为例。
在打boss前,天上有云。
走过这个房子之后,云消失了,背景变成纯黑色。
打完boss之后,云又回来了。
让云消失,背景变成纯黑色,就是为了利用背景来绘制boss。
假如云没消失,boss战时云就会跟着boss一起动,那就露馅了。
(4)某些游戏运用的奇技淫巧
看完了前三章内容,相信大家对FC打画面技术有一定的了解,下面我们就进行实战吧,对一些有特殊效果的画面进行分析,运用之前学的知识,看看这些特殊效果到底是如何实现的。
FC游戏,堪称奇技淫巧的大合集,程序猿和美工狮们大显神通,运用这孱弱的机能实现了很多不可思议的效果。玩FC游戏的其中一个乐趣就是,看到一个不错的画面,思考它的实现原理。我将举一些例子,在我公布答案之前,大家可以思考一下,看看聪明的你能不能猜到答案。
1.震惊!一个方块居然出现了第五种颜色
第一章曾经说过,调色盘只能用4种颜色,所以一个方块最多只能有4种颜色。
但是,请大家看这张图。
请看箭头指出的那个位置,组成龙嘴的那个方块。
大家发现了什么没有?
把方块单独拿出来,放大看看。
数数有几种颜色。
黑白浅绿深绿红!
一共5种颜色!
我之前说过,一个方块绝对找不出第5种颜色,如果找出来,奖励什么来着?
看来社长的初吻不保了。
但是这到底是怎么实现的,莫非是用了特殊芯片不成?
我就公布答案吧。
刚才说了,中国有句古话,“活动块不够,背景来凑!”
其实美国也有句俚语,“背景不够,活动块来凑!”
没错,这第5种颜色就是用活动块凑出来的。
这是去掉活动块之后的样子。只剩4种颜色。
一口洁白的牙就这么没了。
一个方块+一个活动块,里最多能显示7种颜色。为何不是4+4=8种?留给聪明的观众自己思考。
FC游戏里,活动块和背景难舍难分,背景可以做boss弥补活动块的数量限制,活动块也能做一部分背景弥补背景不够灵活的缺点。一些boss就是背景和活动块共同组成。
比如《魂斗罗》中的这个boss,身体是背景,灵巧的双手是活动块。
活动块:“我和背景君通力合作,不信阻止不了你!”
2.两根粗又硬打架,究竟是为何?
《鸟人战队》的关底boss战,机器人和boss对打。
两者的体型都比较大,那么,他们到底是活动块构成还是背景构成?
如果是活动块构成,同行的活动块数量肯定超过8个了,但是却没有出现活动块消失现象。
如果是背景构成,它们就无法相对运动。
给大家一分钟思考时间。
其实答案很简单,只要把对方打败就能看出来。
把对方打败之后,出现爆炸效果。
眼尖的朋友一下子看出来了,对方没有活动块消失,而我方却出现了活动块消失现象。游玩时候很明显感受到,此时我方在闪烁,对方没有闪烁。
这是因为爆炸效果是活动块构成的,同一行的活动块增加到超过8个,势必会产生闪烁现象。
我方闪烁,对方没闪烁。这意味着什么?我方是活动块,对方是背景。
活动块大战背景!大家猜对了吗?
原本还准备了2个奇技淫巧的例子,但由于篇幅的关系,就不展示了。
感谢大家观看。
在这里,我只想说一句话——奶奶,我对不起你,没让你看懂。
扫码关注
游研社公众号
小程序
游研社精选
- 首页
-
- 页 / 共页
-
因为我们是游戏玩家 “你怎么整天就知道玩游戏,玩游戏有什么用?”上面这个问题,可能绝大部分玩家都曾经听到过。试着去解 ...萧辻2018-05-23