通过吃鸡了解游戏的战斗系统(二)

作者: 老林还年少 | 来源:发表于2017-12-07 14:32 被阅读478次

    上一期借助吃鸡,介绍了TPS类射击游戏的一些设计元素,如果没看过上期文章的,请点击查看《通过吃鸡了解游戏的战斗系统(一)

    这一期,我们来讲一讲关于射击类游戏通用的设计——枪械的物理设计

    一、物理引擎

    一般来说,TPS类游戏可以归属在3D游戏之内。为了更好的呈现游戏世界的真实性,提供更好的游戏代入感。TPS类型的游戏都会使用物理引擎来进行游戏的制作。

    什么是物理引擎呢?

    物理引擎通过为刚性物体赋予真实的物理属性的方式来计算运动、旋转和碰撞反映。为每个游戏使用物理引擎并不是完全必要的—简单的“牛顿”物理(比如加速和减速)也可以在一定程度上通过编程或编写脚本来实现。然而,当游戏需要比较复杂的物体碰撞、滚动、滑动或者弹跳的时候(比如赛车类游戏或者保龄球游戏),通过编程的方法就比较困难了。

    除了大面碰撞或一些常见的物理效果外,射击类游戏,还有很多需要深入计算的物理现象,比如后坐力、子弹弹道等等这些物理计算如果借助物理引擎,单纯的靠代码编辑无疑是很难的。

    目前常用的物理引擎有:

    寒霜

    Unity 3D

    虚幻 4

    CryeEgine3

    二、射击游戏中的物理特性

    射击游戏中牵扯到大量的物理特性。如果以科学的态度来说这事儿,那可以写好几本物理书。所以我们这里只按照作为游戏化方式处理过后易于上手、又保留一定真实性的做法,来分析其中涉及到的物理特性。

    2.1 后坐

    枪械发射时子弹壳同样受到火药气体的压力,从而推动枪机后坐,后坐的枪机撞击和枪托相连的机框,从而产生后坐力,因此理论上口径越大,撞击越猛,后坐越强,但是枪在设计时有缓冲机构,可以延长撞击时间从而减低后坐力,同时,高效的枪口制退器同样可以减小后坐力(原理类似火箭向后喷气),所以,后坐力的大小和口径有关,但枪械本身的结构设计影响更大。

    在连续发射子弹的状态下,因为枪的威力,产生了一定的反作用力,这种作用力会使持枪不稳,造成射击精度不够

    我用几张图来说明不同枪械的后坐力:

    自动步枪

    下图是猎枪或者说是霰弹枪的后坐力慢镜头:

    霰弹枪

    下图是我武警特战人员,用手枪速射的效果。

    根据上面几张图,可以看到不同的枪械,拥有不同的后坐力

    而在游戏中,要保留这种特性,但是又不能太过于真实让用户难以操作。所以会进行一定的弱化。

    那么在游戏中,会弱化到什么程度呢?可以参考下图手枪的后坐力优化效果。

    绝地求生

    在连续射击时,枪械的后坐力才会有明显的体现,这时会出现控制不住的情况,感觉枪口不听话,很难打中人。

    而这时,射击类游戏中的技巧“压枪”就出现了。

    什么是压枪?

    压枪的意思是当枪支连射后坐力变大时,使用拖动鼠标地方法控制好弹道尽量打在一个目标上

    每个射击游戏枪械的后坐力是完全不同的,需要在游戏时多多练习和习惯。一般压枪需要先习惯点射的子弹散布,再熟悉连射的子弹散布,根据这些数据,我们针对性的去压枪。

    通过练习,可以做到将散布不均匀的弹道控制在一个密集的区域内,更好的对敌人造成有效的伤害。

    在绝地求生中,某一武器在连续射击时,子弹分布如下图所示:

    压枪之前,连续射击弹道分布成了一条直线

    压强之后,控制在了一个区域内

    而枪械的后坐力跟枪管长度、枪身质量、子弹出膛速度、子弹质量、口径、枪托形状等等一系列参数有关,我们就不展开讨论了。

    在研发类似的游戏时,大多通过多次的模拟调整,通过正态分布的办法,来设计弹道散布的范围。

    2.2 子弹弹道

    子弹弹道分为内弹道与外弹道。我们这里只简单说明外弹道。

    外弹道主要是讨论弹头飞出枪口后,影响其飞行的各种因素。

    任何在地球上的物体,都会受到地心引力的影响。弹头一出枪口, 加速就停止了。引力会将弹头往地面拉。 所以任何弹头的飞行路线都是弧形的。如果枪管与地面平行, 弹头永远不会和枪管延长线的任何一点交会。所以, 枪管都是微微朝上的。

    下图是一张G3步枪的弹道图,大家可以直观的理解弹道的含义

    G3自动步枪

    红线:视线

    黑线:子弹轨迹


    因此,在设计枪械的弹道时,可以参考如下的计算公式,来计算弹丸的弹道曲线(不考虑空气阻力)

    s=ut+1/2at2

    其中:

    s=distance (距离)

    u=initial velocity(弹丸初速)也写成 Muzzle velocity

    a=acceleration(加速度)

    t=time passed(时间)

    如上图可以看出,在子弹射出后,距离越远,其子弹下坠的幅度越大,所以要打中远距离的目标就需要抬高枪口,增加射击角度,用以命中目标,这就是“归零点”

    射击方式

    在大部分游戏中,很少有做的与现实相似的情况,大部分弹道屈居于平直,让玩家更好操作。而做的趋近于真实的游戏,更多的是面相军迷等专业的爱好者。比如《狙击精英》系列。

    总结

    射击游戏中核心的系统设计就讲解完了。主要是科普一些制作的原理与技巧。其实当一名游戏设计师并没有那么简单。

    如果你喜欢我的文章,就请关注吧O(∩_∩)O哈哈~~!!

    相关文章

      网友评论

      本文标题:通过吃鸡了解游戏的战斗系统(二)

      本文链接:https://www.haomeiwen.com/subject/oopqixtx.html