游戏开发论坛

 找回密码
 立即注册
搜索
查看: 2922|回复: 0

指哪打哪的游戏是如何实现的? 揭秘光枪背后的原理

[复制链接]

1万

主题

1万

帖子

3万

积分

论坛元老

Rank: 8Rank: 8

积分
36572
发表于 2020-3-4 11:03:49 | 显示全部楼层 |阅读模式
玩射击游戏使用键盘和鼠标好一些?还是使用手柄好一些?在面对这种问题时,相信很多人都会毫不犹豫地选择键盘和鼠标,因为这种操作方式相比于手柄操作更加精准。但其实还有一种更加原始、更加直接、更加容易上手的操作方式被大部分玩家所遗忘,那就是指哪打哪的光枪。不知道有多少朋友好奇过,为什么一把塑料玩具枪冲着屏幕来一枪,就能够击中游戏中的角色?那么今天硬核的AGamer就来与各位聊聊隐藏在光枪背后的秘密吧。

image001.jpg

第一代光枪与《打鸭子》

早在FC红白机时期,就已经有光枪外设的存在了。与FC同捆发售的光枪外设具有手枪的外观,因此在日本的命名为“光线铳”,而欧美的名称则是“Zapper”。虽然它不是第一款光枪,但却是第一代光枪中名气最大的一款。尽管外形看上去是“枪”,名字里面也包含“枪”,但它并不是真正的“枪”,只不过是一个摄像头罢了。

image002.jpg
Zapper光枪

那么摄像头是如何当做“枪”来使用的呢?大名鼎鼎的光枪游戏《Duck Hunt》,也就是国内俗称的《打鸭子》,相信绝大多数玩家都比较了解,下面就用《打鸭子》来分析一下第一代光枪的原理。

image003.jpg
经典光枪游戏《打鸭子》

首先要知道的是,对于游戏来讲,屏幕并不是一整块的大区域,而是会被分为NxN的小区域。当玩家扣动光枪扳机时,屏幕会变成全黑色,这是用来检测光枪是否正对着屏幕。随后屏幕中的鸭子(目标区域)会依次变成白色,除了当前的鸭子是白色外,其他区域都是黑色。同一时刻最多只能有一直鸭子变白色,这是为了保证当前检测鸭子的唯一性。所有鸭子轮流变白一遍后,画面恢复正常,整个过程大约持续0.1秒。在这段时间内,光枪中的摄像头会去检测正对着的物体是否是白色,如果是白色则判断射击命中鸭子,否则就判断射击落空。

image004.gif
4个状态

这种检测方式虽然巧妙,但是也存在着弊端:

1.因为光枪中摄像头只判断正对着的是否是白颜色,无法判断光枪正对着的精确位置,也就是说在检测瞬间对着白纸开枪也是会被系统判定为命中的。

2.这种游戏的原理注定要利用屏幕闪烁才能实现,因此目标越多,闪烁就越厉害,对眼睛的伤害就越大。

image005.gif
实际效果

第二代光枪与阴极射线管

到了SFC超级任天堂时期,光枪也随之得到了升级。但是第二代光枪Super Scope必须配合采用隔行显示的CRT(阴极射线管)电视(俗称“大脑袋”或者“大屁股”电视)才能使用。这里知识点比较多,让我们一步步来了解。

image006.gif
SFC的光枪Super Scope

  • CRT电视的图像显示原理


CRT(Cathode Ray Tube,阴极射线显像管)电视里面有一根真空管,一个或多个电子枪。当电子枪射出的电子束轰击荧光屏上时,就会让屏幕内测的荧光粉发光,众多的发光点按照一定的规则排布就形成了图像。

image007.jpg
CRT电视原理

荧光粉受到高速电子的轰击时会吸收能量,其中的电子会从低能级跃迁到高能级,但由于高能级非常不稳定,马上又会从高能级回到低能级,并将能量以荧光(光能)的形式释放出来。这就意味着电子束轰击屏幕所能维持的发光时间是很短的,想要让屏幕稳定的发光就必须持续发射电子束。

image008.jpg
荧光原理

电子枪并不是同时发出大量电子束同时打在屏幕上的,而是从电视屏幕的左上角开始,由左至右、从上到下以Z字型的轨迹扫过整个屏幕的。由于人眼具有视觉暂留现象(Persistence of vision),即在看到光的作用结束后,视觉影响并不立即消失, 而是暂留时间约为0.1至0.4秒(中等亮度的光刺激),于是便能够将屏幕上的发光点识别为一幅完整的影像。

image009.jpg
扫描束

  • 隔行显示与逐行显示


按照正常的思路思考,电子束应该就是一行接着一行地扫描的,但事实并非如此。CRT有PAL和NTSC两种制式(区别见注释1),这里以国内国内使用的PAL制式说明,因为PAL电视垂直方向有625行扫描线,如果电子束一行一行地扫到最后一行最后一个点时,第一行第一个点可能早就熄灭了(带宽不够)。于是人们便想到了一个解决方式,那就是第一次扫描只扫描1,3,5的奇数行,第二次扫描只扫描2,4,6的偶数行,两次叠加就能够拼成完整的画面了。因为这种扫描方式是间隔着扫描的,也就取名为“隔行扫描”(interlaced scan),而一行接着一行扫描的方式就叫做“逐行显示”(progress scan)。

image010.jpg
隔行扫描

常常听到的480p和480i后面的字母就是表示扫描方式是逐行还是隔行。下面用一张动图来直观地表现一下这两种扫描方式的差别,虽然用时相同,但是感觉却是不同。假设显示一张完整的图(一帧画面)需要10秒钟,那么在5秒钟时,逐行扫描只能看到半个屏幕,剩下半个屏幕内容完全未知。但是隔行扫描已经可以大致猜出来要显示的内容了,剩下的靠自己脑补就足够了,无非就是一些细节可能猜不到而已(注释2)。

image011.gif
逐行扫描与隔行扫描

注释1:

PAL电视标准是:每秒25帧,电视扫描线为625线,奇场在前,偶场在后,标准的数字化PAL电视标准分辨率为720*576, 24比特的色彩位深,画面的宽高比为4:3, PAL电视标准用于中国、欧洲等国家和地区。

NTSC电视标准是:每秒29.97帧(简化为30帧),电视扫描线为525线,偶场在前,奇场在后,标准的数字化NTSC电视标准分辨率为720X486, 24比特的色彩位深,画面的宽高比为4:3。NTSC电视标准用于美、日等国家和地区。

image012.jpg
游戏外包装标明制式

注释2:

隔行扫描上可能会使得二维码显示不完全,用手机扫描CRT电视上的二维码无法识别就是这个原因。

image013.jpg
隔行扫描无法识别二维码

  • 第二代光枪原理


虽然光枪枪口看上去较大,但是真正感受光的元件接收范围还是很小的,光枪对准屏幕的范围略大于两行扫描线距离,因此隔行扫描时可以认定为对准的就是一个“点”。当玩家按下光枪扳机时,电视会先按照隔行扫描的方式绘制一个全白色的帧,当光枪收到白色信号时,游戏就可以计算出光枪对准的位置了。例如一行有10点,每个点扫描1秒,那么当光枪在第25秒收到白色信号时,就可以推算出它在第3行第5列。当然这只是为了便于理解的简化模型,实际上还要考虑消隐时间、扫描线回归时间等等。

image014.jpg
红色代表白色信号的扫描方式(简化)

如果游戏判断光枪位置与游戏目标位置相同,那么就判定为命中了。这种光枪的优点就在于精确度更高,而且不会出现第一代光枪那种作弊漏洞。而采用这种方式制作的游戏,也不用频繁刷新画面,也不那么累眼睛。

image015.jpg
SFC光枪游戏

第三代光枪与红外线

随着科技的进步,CRT电视逐渐被背投电视、等离子电视和液晶电视所取代,第二代光枪就很难有用武之地了。这时任天堂又推出了不依靠CRT电视就可以游玩的第三代光枪,也就是2006年诞生的,以体感为卖点的Wii。与之前的主机与光枪配件的搭配形式不同,这次手柄与光枪合二为一,既可以当做控制器,又可以当做光枪。

image016.jpg
任天堂Wii

Wii主机上的黑色条状部件叫做感应条(sensor bar),里面左右分别装有一个红外线LED。当用Wii手柄的前方对准屏幕时,手柄前方的红外摄像头会根据感应条中的两个LED光源的位置进行计算,从而得出手柄前方正对着的位置。需要说明的是,平时Wii手柄与Wii主机是通过蓝牙链接,而非红外线,所以玩非光枪类游戏没有必要将手柄正对着屏幕。

image017.jpg
Wii手柄配合支架

如果Wii的感应条失灵了的话,也有一些奇葩方式来修复,其中一种就是使用两个蜡烛来代替感应条中的红外线LED。

image018.jpg
蜡烛代替红外光源

在一些大型电玩广场里经常能够看到光枪游戏,《VR特警》和《死亡之屋》就是两款非常流行的游戏。其实街机光枪游戏也有CRT显示器和液晶两种,前者的原理同前两代光枪,后者的原理类似于Wii。

image019.jpg
街机光枪游戏

拓展知识

索尼在PS3和PS4平台都推出了相应的体感外设控制器PS Move,配合枪托可以当做光枪来使用,但是原理却与前面提到的有所不同。PS Move前端配备会发出不同颜色光线的圆球,配套的PS Eye摄像头会以2D影像辨识方式追踪圆球位置。也就是说这种是通过摄像头来进行捕捉,与微软的Kinect的原理颇为类似。

image020.jpg
PS Move

光枪游戏兴起与衰落

光枪游戏曾经风靡世界,但现在已经比较小众了,这都是其玩法机制导致的。常见的光枪游戏有两种,一种是类似于《打鸭子》,场景固定,只能守候目标出现。这种机制注定了游戏内容不会太深,放到一些娱乐场所供大众游玩或者比赛效果还是不错的,但是长时间玩容易感到单调。

image021.gif
固定背景

另一种类似于《VR特警》,玩家虽然也只能等候目标出现,但是游戏场景是变化的。玩家不能控制镜头画面,只能根据游戏自身进度进行前进、后退、转身等等,因此这类也叫作“轨道式射击”。

image022.gif
轨道式射击

轨道式射击可以根据玩家的操作来决定接下来的行走路线,大大丰富了游戏的内容。很多大型游戏中心都会置备几台这种游戏,早年的《死亡之屋》和《VR特警》非常普及,之后也出现了屏幕更大,效果更好的《第一滴血》,近几年还出现了可以坐在车上的《丛林冒险》和《海盗大冒险》,更有支持4人联机、带有驾驶舱的《光环:渡鸦小队》。一些玩家会因好奇心而体验一下,但很少见到反复游玩的。

image023.jpg
《光环:渡鸦小队》大型驾驶舱

光枪游戏可以说是时代的产物,在电子游戏还处于早期阶段时,使用手柄游玩射击游戏是比较困难的。光枪外设的出现让玩家可以凭借身体本能进行游玩,指哪打哪的体验非常好。但随着电子游戏不断发展,游戏的操作越来越复杂,单凭光枪一个扳机键已经无法满足游戏的需要了,加上键盘与鼠标的出现,可以实现更加快速精准的打击,光枪游戏逐渐边缘化,更加偏向体验和休闲。感谢光枪游戏在那个时代带给我们的快乐,期待光枪游戏在未来能够有所突破。

来源:AGamer
原地址:https://www.toutiao.com/a6799169452416958988/

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

作品发布|文章投稿|广告合作|关于本站|游戏开发论坛 ( 闽ICP备17032699号-3 )

GMT+8, 2024-11-10 15:29

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表