原标题:《魂斗罗》中的角色,趴下的时候总是要「萝莉式屈腿俯卧」
FC 的图形处理器(PPU)有如下的硬件限制:
1,一帧画面的同一个横轴上,最多同时能渲染 8 个 SPRITE。
2,一个 SPRITE 为 8×8 Pixel 或者 8×16 Pixel。
所以,把角色尽量做成《上下长》《左右短》的形状,才可以避免角色的闪烁现象。
另外,楼主说《改成下蹲也可以减少活动块儿》,此话甚是啊。
问题是,魂斗罗需要趴下来躲避横向飞过来的炮弹啊。
如果把趴下改成下蹲的话,请看下图
大炮发出的绿色炮弹,能直接打在魂斗罗的脸上,死定了。
所以魂斗罗必须趴下。要么直腿趴下狂闪烁,要么萝莉趴。
有网友提到《不对吧,KONAMI 的绿色兵团是直腿趴下的》。
所以我也做了截图,请看下图
蓝人和红人,同时趴下,横面上又出现了 3 个小兵。
蓝人问红人:你的头哪去了?
红人回答说:FC 同轴最多显示 8 个 SPRITE,让我们一起闪烁吧
于是乎,请接着看下面一系列的图
蓝人说:哎哟!我的脚哪去了?
呵呵,这些图是连续的静态画面。
实际游戏画面里是各个角色一顿轮番闪烁的。
@胜勋的答案说得不错。我这里补充一些额外信息。
首先是关于活动块(Sprite)。
为了最大限度利用照片、提升表现效果,2D卷轴时代的游戏机基本上都是背景+活动块+色盘的设计,我以前在拳皇中的人物变色是如何实现的? – Thinkraft 的回答中提到过MVS的实现,这里说说FC的。
由于PPU机能限制,FC每个水平扫描行只能显示8个活动块。
FC的PPU运行频率是5.36MHz,输出256*240@60Hz画面。具体原理在http://wiki.nesdev.com/w/index.php/PPU_rendering有很详细的介绍,我这里简单总结一下:
每秒60帧,每帧渲染262行(其中240行输出可见图像,其余空闲时间用于写入显存数据),每渲染一行使用341个PPU cycle。其中每个背景块需要8个cycle处理;每行有32个背景块(256/8),因此光是背景处理就需要256个cycle;此外每个活动块也需要8个cycle处理,再扣掉预读下一行数据的时间,最后结果就是设计上只允许显示8个活动块。
(参见http://wiki.nesdev.com/w/index.php/File:Ntsc_timing.png)
如果游戏在同一扫描线上存在超过8个活动块,多余的将不会被显示。
一个可行的解决方案是利用人眼视觉暂留效果,使用Flicker(闪烁),即轮流显示这些活动块——同一帧内的静态图像还是只有8个,动起来就能看到全部了。
程序员必须手动实现Sprite优先级的调整,以保证游戏效果——如果敌人的子弹总是隐形的,玩家就要摔手柄了。
除了同屏活动块总数限制(64个)、同扫描行显示限制(8个)之外,还有一个重要限制是Palette(色盘)。
FC定义了64个系统颜色,去掉不可用的和重复的是53个(也有说法是54或55)。所谓色盘,就是从这53个颜色中挑出4个,编上号,供图块使用,也就是说FC的每个色盘只有4色——实际上是3色,因为背景块的0号色必须是通用背景色,而活动块的0号色必须是透明。系统支持4个背景块色盘和4个活动块色盘。
每个活动块只能使用一个色盘。换句话说,单个活动块只能显示3种颜色。
那么,来看看FC魂斗罗的图片吧(素材取自http://www.sprites-unlimited.com/game/?code=contra,背景色被我处理成粉色):
这个趴姿射击的图片,尺寸是32*16,总共用到了8个8*8的活动块(或者4个8*16,这里暂且认为是前者)。你可以清晰地看到,左半的4个活动块和右半使用了不同色盘,导致上臂部分都变色了。
由于枪伸出太多,光是上半身就占用了一大半宽度。如果把腿放平,最少也要再加一个活动块才可以。
再看看主角死亡时的图片:
注意裤腰的位置,上半身只占了一小半宽度。于是这次终于有一条腿可以伸平了。另一条腿弯着可能是多少想显得立体一些吧。
总之,我的结论和 @胜勋 是相同的:就FC魂斗罗而言,趴姿屈腿是为了节省活动块,不蹲是因为蹲下躲不过子弹。
——所以你看,这是画风问题(大误)。
然后再说说题主编辑的关于角色尺寸的疑问「测量了一下发现人物卧姿长度有36个像素」。这个追问其实根本就是无效的——我这里严重怀疑题主的模拟器截图精确性,比如不小心拉伸了一下窗口导致画面变形之类的。
FC超级魂斗罗图片素材参照http://www.spriters-resource.com/nes/superc/sheet/12076/:
续作中重绘了角色动作,下半身的取色也被调整了。然而整体宽度依然是32像素(4*2个活动块)。
最后,问题并没有完全解决。因为以上说的都是FC版(1988)的情况,而魂斗罗原作是街机游戏(1987)。
如图,原作中的趴下也是屈腿。
本来想回答得更确切一些,但我并没有找到明确靠谱的关于这个机台的硬件信息。考虑到当年的游戏机画面原理大同小异,只是性能的区别(例如后来的MVS,同一水平线支持96个宽度为16像素的活动块),这个屈腿动作应该也是相同的原因。
上图中角色的宽度是48像素,正好是8(或16)的整数倍。
大概就说这么多吧~
客官,这篇文章有意思吗?
好玩!预告 App 接着看 (????) ?
再逛逛吧 ˊ_>ˋ
相关:
必须要说「超导可视无痛人流」啊!人流,无痛人流,超导可视无痛人流,这看上去好像体现了医学的飞速发展,
如何评价今敏?一句话总结之:擅长使用电影的手法,通过模糊幻想与现实的边界,达到超越动画效果以外的影像
借着这个题目,提供一种普遍适用于此类问题的思路。如果一个概念没有得到普遍的推广应用,其原因不外乎以下
老早前提过一次,我一直在社区上英语课,班里的同学来自世界各地,所以时常有好玩的事情发生。而我在这期间
我们在日常生活中能观察到两种对于政府不信任的言论,一种是“换我来我比他们管得好”,一种是“你看人家美
詹惟中以「老子有钱」选字测财运,吸引网友简介。(图/取材自詹惟中脸书) 詹惟中曾接连预言台湾会乾旱
世界上有着各式各样的极限挑战者,有的人挑战岩壁间走钢索,有的人挑战跑酷,这些人除了拥有十足的勇气之外
@奋斗九一一:美女看得多了,看一眼就知道是不是美女了。这是原话吗?答:美女不是用来看的,是用来感知的。有
阿Ken变身「帅气伯爵」,担心新造型太帅会迷倒张小燕。(图/台视提供) 台视《万万没想到》19日晚上起进
2015年12月18日 18:52:10 天山网原创
3赛买尔江在结束了12个小时救援后,赶到医院抱着患下呼吸道感染的