Unity3D的第一人称射击类游戏逃离孤岛的设计与开发

目 录
1 引言 1
1.1 研究背景 1
1.2 国内外现状 1
1.3 实现目标 2
2 需求分析 3
2.1 人物的移动 3
2.2 人物视角的移动 4
2.3 人物的射击 4
2.5 敌人的AI 5
2.6 粒子特效 5
2.7 UI设计 5
2.8 敌人显示雷达 7
2.9 光影效果 7
3 关键技术 8
3.1 Unity3D 8
3.2 3D MAX 8
3.3 C# 8
3.4 欧拉角 8
3.5 有限状态机 9
3.6 光线投射 11
4 功能结构 12
4.1 游戏结构示意图 12
4.2 游戏流程图 12
4.3 主角和敌人的有限状态机 13
5. 详细设计 15
5.1 游戏人物移动 15
5.2 游戏人物视角的移动 17
5.3 游戏人物的射击互动 19
5.4 地形的设计 21
5.5 敌人的AI 23
5.6 敌人显示雷达 26
5.7 UI设计 27
5.8 游戏的存储和载入 27
6 游戏测试 28
6.1 模块测试 28
6.2 总体测试 31
总结 32
致谢 33
参考文献 34
1 引言
1.1  *好棒文|www.hbsrm.com +Q: ^351916072* 
研究背景
电脑显卡的升级使得电脑输出画面的分辨率越来越大,从而使得画面更加的清晰和逼真。电脑内存的升级换代使得每秒可以处理更多的操作指令。这些电脑硬件的发展,使得电子游戏迎来了黄金时代。
刚开始的掌机游戏,只能进行简单的逻辑运算和渲染出粗糙的游戏画面。而现在的电脑游戏或者主机游戏,画面上从以前的黑白画面到现在的1080p高清,游戏性能从原来的简单的逻辑运算到现在的各种光影特效。在可以遇见的未来,虚拟现实技术又会给电子游戏带来新的活力。
射击游戏在电子游戏中有举足轻重的地位,也是电子游戏的重要载体,拥有庞大的玩家市场。而此中的佼佼者便是第一人称射击类游戏。第一人称射击类游戏以玩家的视角来进行游戏的互动,使得玩家可以更好的体验游戏的乐趣。通过让玩家使用威力不同、型号各异的武器来击杀四面八方的敌人,能让玩家获得感官上的极大刺激,体验枪林弹雨的感觉。
在可预见的未来,VR虚拟现实技术又可以给第一人称射击带来新的革命。通过以玩家的真实视角来取代游戏人物的视角,可以给玩家带来极致的游戏体验。所以在未来第一人称射击类单机游戏仍然会拥有伟大的市场并展示更大的光辉。
1.2 国内外现状
1.2.1 国内现状
国内的第一人称射击类游戏多为网络游戏,例如:穿越火线、战地之王等,有良好的市场前景。画面相对与单机游戏要逊色不少,但由于是网络游戏,玩家之间的互动可以弥补这种缺陷。
网络游戏作为第一人称射击游戏的载体,可以有效地增加游玩的人物,并将游戏进行推广。穿越火线的在线注册人数在中国接近三亿,如此巨大的数字和网络游戏对第一人称射击游戏的推广有密切的关系。
除此之外,第一人称视角给人以不同的感受。在第一人称视角下,通过与敌人的互动可以很好地让玩家产生身临其境的感觉,从而使玩家沉迷于其中。
在此之外,国内的第一人称射击游戏还在探索不同的游戏模式,不再仅仅是第一人称射击类游戏传统的对抗模式,加入了很多人机对抗模式或者僵尸模式,扩展了第一人称射击游戏的内容。
1.2.2 国外现状
国外的以第一人称视角的游戏基本上以单机游戏作为载体。例如:战地、使命召唤或者彩虹六号等。制作精良,画面优秀,在战役模式中玩家可以随着剧情的发展体验一把真正的战争,在枪林弹雨中陷阵杀敌。
跟随这世界网络化的潮流,国外的第一人称射击游戏也纷纷在自己的单机游戏中添加了网络功能,可以像网络游戏一样进行联网对战。但由于单机游戏的画面精良,各地区的网络情况各异,使得网络联机的情况不尽如人意,时常会出现卡顿的现象。
国外的第一人称射击游戏每年都会不断地推陈出新,不断地更新自己的硬件条件和优化软件结构。使其游戏可以不断地与时俱进的满足全球各地玩家的要求。
1.3 实现目标
1.3.1 功能目标
玩家操控游戏中的人物,在有限的弹药和血量的情况下,击杀所有的敌人后逃出孤岛。
(1)游戏人物的移动。按键W可以使游戏人物向前移动,按键S可以使游戏人物向后移动,按键A可以使游戏人物向左移动,按键D可以使游戏人物向右移动。同时按住两个方向键可以完成方向键的组合,即可以进行任意斜方向的移动。
(2)游戏主视角的移动。游戏人物的主视角会随着鼠标的移动而移动。鼠标向任意方向 *好棒文|www.hbsrm.com +Q: ^351916072* 
系统,游戏人物的主视角也会向其方向移动。
(3)游戏人物的跳跃。按键Space可以使游戏人物进行跳跃动作。跳跃动作可以使玩家跳跃一定的地形条件,从而完成游戏的各种任务。
(4)游戏人物的射击。鼠标左键可以使游戏人物进行射击动作。游戏人物可以通过射击元素与场景中的物体进行互动。
(5)游戏射击特效。当玩家进行开火操作的时候会出现开火的特效并有开火的声音。当射击不同的物体是会拥有不同的物理特效,比如攻击敌人时会出现飙血的特效、攻击土地时会出现泥土飞溅的特效、攻击金属盒子的时候会出现火花特效等等。
(6)敌人的AI。有三种敌人的AI,一种是在一个点不断重复射击和下蹲的敌人,另一种是遵循事先安排好的状态进行移动的敌人。前者的逻辑是这种敌人会停留在原地,重复进行下蹲和射击的动作,攻击的间隔固定。后者的逻辑是这种敌人会根据预先设置好的各各巡逻点进行相应的动作,比如:射击、下蹲或者奔跑等。
(7)游戏场景。下载网络上的各种游戏场景模型,然后通过各种摆放,并添加物理特效和光影效果,生成一个栩栩如生的画面。
(8)光影效果。主要是天空盒和平行光。前者通过加载Unity3D自带的天空盒可以很好的模拟出游戏场景中天空的效果,晴天、黄昏和夜晚都可以。平行光的主要作用是用来模仿阳光。场景中如果没有平行光模拟的阳光的效果的话,场景只会是一片漆黑,看不到任何东西。
(9)游戏UI设计。游戏的UI设计可以使玩家进行开始游戏、游戏介绍和退出游戏的操作,并且在游戏进行的时候也可以对游戏的声音等元素进行设置或者退出游戏。还有在游戏运行时显示各种参数,例如:生命值、弹药数等数据。
遵循市面上已有的第一人称射击游戏,鼠标左键控制玩家的射击,而射击模式可以是单射也可以是连射。单射就是鼠标左键每次单击一次算作一次射击,而连射就是按住鼠标左键不放算作以最快速度连续射击。设计时就要注意要创建一个变量,这个变量用来控制是否进行连射和单射。这样就可以进行射击模式的切换。
游戏人物的动作其实就是在特定的时间播放特定的动画,而如何正确的播放动画的过程就需要用到有限状态机。首先,一个人物的状态肯定是有限的,符合有限状态机的先决条件。其次,一个人物的状态会随着时间的推移或者玩家的操作而不多进行改变,有一种状态进入另一种状态,并且同一时刻只会有一种状态出现,这也是满足有限状态机的条件。所以用有限状态机可以完美的解决游戏人物动作的逻辑关系。

版权保护: 本文由 hbsrm.com编辑,转载请保留链接: www.hbsrm.com/jsj/jsjkxyjs/2917.html

好棒文