《基于Unity3D的进化RPG游戏的设计与实现.docx》由会员分享,可在线阅读,更多相关《基于Unity3D的进化RPG游戏的设计与实现.docx(26页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、摘要随着国内的计算机产业的不断发展,游戏产业也于近年来迎来繁荣,伴随着种类繁多的游戏类型的出现,角色扮演游戏(Role-playing Game)因为其本身的高自由度与相对较为特别的战斗系统与机制越来越受到更多玩家的青睐,但是国内的一些RPG游戏却有着操作手感欠缺与剧情主线不够丰富等各种缺点,本课题针对RPG游戏设计并实现了一款基于Unity3D的角色扮演游戏,本人的主要工作内容包含以下几个方面。 首先,针对制作的比较成功的RPG游戏,分析了其玩家的需求,确定了游戏的玩法与战斗的交互逻辑,通过Unity3D编辑并实现了游戏地图与场景的设计,针对游戏的系统形式,分为主人公移动控制、角色的攻击、血
2、量的数值变化、与敌人的战斗等不同的模块,运用Unity对以上元素、游戏内的交互组件、剧情脚本等进行了分别的实现,最终完成了游戏的整体设计雏形,最后将游戏发布到本地,并验证了其可玩性与稳定性。关键词:UNITY3D 构建地图 RPG游戏 交互处理AbstractWith the continuous development of the domestic computer industry, the game industry has also ushered in prosperity in recent years. With the emergence of a wide variety
3、of game types, role-playing games (Role-playing Game) because of its high degree of freedom and relatively special Combat systems and mechanisms are increasingly favored by more players, but some domestic RPG games have various shortcomings such as lack of operating feel and insufficient main line o
4、f plot. This topic designs and implements a character based on Unity3D for RPG games. Playing games, my main work includes the following aspects.First of all, for the relatively successful RPG games that have been made, the needs of their players are analyzed, the interaction logic of the gameplay a
5、nd battle is determined, and the game map and scene design are edited and implemented through Unity3D. According to the system form of the game, it is divided into Protagonist control, skill release, numerical manipulation of health and magic, combat with enemies, etc., use Unity to implement the ab
6、ove elements, interactive components in the game, scenario scripts, etc., and finally complete the game. The prototype of the overall design, finally released the game to the local, and verified its playability and stability.KeyWords: UNITY3D Construction Interactive processing RPG games目 录第一章绪 论11.
7、1课题背景及研究的目的和意义11.2 国内外研究现状21.3 研究内容3第二章Unity3D引擎技术42.1 Unity3D引擎介绍42.2 Unity3D开发流程42.3算法及解决方案82.4本章小结9第三章游戏总体需求分析与设计103.1游戏需求分析103.1.1游戏剧情设定103.1.2场景需求分析103.1.3角色的功能需求103.2游戏引擎选择103.3游戏功能划分133.4游戏的开发过程143.5本章小结14第四章 游戏系统的实现154.1角色控制模块154.2角色行动模块实现154.3摄像机跟随的实现154.4敌人行为模式的设计与实现164.4.1敌人行为模式的设计与实现164.
8、4.2敌人行动的实现164.5游戏的构造、发布与测试174.6本章小结19第五章 结论与前景展望20参考文献21致 谢22广东东软学院本科毕业设计(论文)第一章 绪 论1.1课题背景及研究的目的和意义随着经济基础的不断发展以及互联网技术的不断进步,人们对于日常游戏娱乐形式的要求越来越高,游戏产业正逐渐从一项新兴产业迅速成为成熟的娱乐产业,玩家在进行游玩时,针对游戏本身具有的特点要求也不断提高,现在,一些比较粗糙的平面游戏已经不能引起够游戏玩家们的兴趣,他们更多期待的是一些能够带给人新奇与刺激感的3D游戏大作,这些拥有3D场景与人物建模的游戏更能让他们沉浸于游戏,所以,通过Unity3D来制作游
9、戏已成为很多游戏制作者的必修课之一。Unity3D创作自Unity Technologies公司,可以帮助游戏制作者更为简单、便捷地制作出三维立体游戏,并且它也可以帮助一些设计师很方便地完成建筑、场景等立体设计,并且支持Linux、Mac等平台,是一个集成多功能的跨平台游戏开发应用,作为专业引擎被广大游戏开发人员使用。现在的RPG游戏大体上按照设计类型与侧重点可分为两类,一类重点在于剧情主线和场景支线探索,优秀作品像上古卷轴、巫师:狂猎等;而另一类则重点在于通过大场景和战斗场面让玩家沉浸于击杀的畅快感,像鬼泣、真三国无双等,获得今年TGA最佳游戏的只狼:影逝二度就很巧妙地将两者进行了结合,让玩
10、家既有人物代入感,又可以沉浸于战斗操作的畅快感。图1-1 2019年年度游戏RPG:只狼本设计基于Unity3D实现了一款RPG的3D游戏,参照一些优秀的游戏优点,本课题重点对角色以及逻辑交互进行研究,以期能够为游戏制作者进行游戏创作提供一定的借鉴意义。1.2 国内外研究现状Unity3D游戏引擎因其强大的功能,在国内外均分布了大量的受众群体。Unity3D游戏引擎作为一个新兴的游戏引擎,推出时间较晚,但其在游戏设计方面的性能与以虚幻引擎、CE3为代表的传统游戏引擎具有更大的优势,在画质方面也更优于以上几大游戏引擎。除游戏设计功能以及画面效果之外,Unity3D游戏引擎还能实现跨平台功能,这是
11、一些老牌游戏引擎所不具备的强大功能。传统的老牌游戏引擎,往往受制于平台限制,其设计具有明显的平台依托性,Unity3D游戏引擎则打破了这一局限,能过够实现以上三大游戏操作平台之间的联通,除以上通用的三大游戏操作平台之外,Unity3D游戏引擎更是能够与XBOX360、PS3实现交互,这是传统的老牌游戏引擎所无法与之比拟的。除以上功能之外,Unity3D游戏引擎还实现了粒子系统操作,这一系统能够帮助游戏制作者设计出更为绚烂多彩的强大特效,在实现游戏制作者与游戏操作者交互之间具有无与伦比的优势。凭借着Unity3D游戏引擎强大的游戏设计功能、画面效果、以及跨平台功能以及粒子系统的独特优势,国内外许
12、多家游戏公司纷纷应用这一系统,其设计出的游戏受众群体广阔、用户粘性较高,龙歌OL便是其中的代表作,除此之外,还有海战英豪等游戏作品均是出自于Unity3D游戏引擎。在龙歌OL等系列游戏取得了极高的市场反应之后,俄国的Nival公司也相继进入到Unity3D游戏引擎的游戏研发工作中来,其创作的Prine world便是其中的佳作,该作品属于Dota类塔防游戏,同样取得了不错的市场反应。除以上作品之外,欧美有一家公司开发了MMORPG ,该作品属于3D魔幻类的网络游戏。我国游戏领域同样具有强大的受众群体,得益于我国强大的人口基数以及庞大数量的游戏爱好者群体,中国的游戏行业发展十分迅速,其中RPG游
13、戏是在近年内得到飞速发展的经典游戏种类之一,虽然该类游戏在我国发布时间相对于国外诸多地区较晚,但是发展十分迅速,仅用了一年的时间就取得了不错的市场反应。此后,RPG游戏更是衍生出许多游戏产品。RPG游戏的飞速发展离不开智能手机的普及,在智能手机技术得到普遍应用之后,我国网民数量增长率几乎呈现出几何形式,与之对应的,我国游戏受众群体也得以飞速增长,在RPG游戏飞速发展的过程中为之增添了强大的市场助力。在各大游戏产品争相进入全球市场后,2018年游戏领域的营收超过了369亿美元。需要认识到,在游戏领域得以飞速发展的同时,也需要认识到由于游戏爱好者过度沉迷游戏操作,加之急速的社会生活节奏带来的人们身
14、体健康状况趋于恶化,涉黄、暴力等游戏将会带来难以想象的危害。对此,无论是广大游戏制作者,还是游戏操作爱好者,均应当保持充足的警惕,对存在涉黄、暴力倾向的游戏产品予以严厉抵制。随着Unity3D引擎越来越多的出现在游戏创作者的视野之中,我国也诞生出很多优秀的游戏作品,其中最为代表的应当属于现象级作品王者荣耀。王者荣耀受众群体极为广泛,以青少年为代表的广大玩家为其创作商带来了丰厚的回报。而以Unity3D引擎为基础制作的3D游戏,则以太吾绘卷为主要代表。图1-2 优秀国产Unity3D作品:太吾绘卷1.3 研究内容本文总共五章,具体安排如下:第1章:绪论,对Unity3D游戏引擎进行了初步阐述,对
15、以Unity3D游戏引擎为基础制作的几款经典作品进行了简单介绍,并提出了本次课题的背景以及目的,分析了国内外对Unity3D游戏引擎的应用现状以及未来发展趋势。第2章:游戏引擎及相关技术概述,本部分重点分析对象为Unity3D游戏引擎,并对Unity3D游戏引擎展开了进一步的介绍,分析其开发流程,并对其算法以及解决方案进行了相关阐述。第3章:第三章为游戏总体设计,对游戏的剧情设计需求研究了游戏需求、场景设计需求以及角色的功能设计需求进行深入分析,继而展开对游戏引擎选择、游戏功能划分以及游戏的开发过程进行深入的分析介绍。第4章:RPG游戏的设计与实现,首先对角色控制模块进行介绍,继而对角色行动模
16、块的实现以及摄像机跟随模块的实现进行了介绍,对敌人行为的模式设计与实现、敌人行动的实现进行了详细介绍。第5章:结论与前景展望,对Unity3D开发者的操作要素和技术要点进行总结,分析引擎的特征。第二章 Unity3D引擎技术2.1 Unity3D引擎介绍 因为其能够一键发布在多个电脑平台,其非常强大的UI界面,对很多创意软件 的支持,多样的物理引擎以及广泛的脚本语言的优点综合构成了Unity3D游戏引擎风迷的原因。 下面将介绍几个主要特性。Unity是通过进行游戏技术开发的跨平台游戏引擎,打破了原有游戏引擎只能在单一平台上进行操作的局限。而实现跨平台功能,则离不开Unity3D游戏引擎内部装备
17、了适宜于多平台的开发环境。Unity3D游戏引擎适宜平台主要包括了Windows,Linux,Mac OS X,Android ,iOS,Xbox。 360,PS3,wiiu和Web。随着智能手机的普及,游戏领域的pc端口以及移动端口实现联通已然是大势所趋,符合广大游戏爱好者的根本需求,因为可以通过Internet来实现相互通信,Unity3d的跨平台实现为编译游戏提供了便利的开发环境。游戏公司不再需要处理新平台上的作品开发。当前,最常见的游戏平台是PC,Android和iOS。 PC通过相对简洁的操作可以直接生成开发环境,而在对Android游戏进行开发的过程中,必须符合Java操作环境,除
18、基础的操作环境之外,还需要安装Android SDK作为游戏开发的必备工具,从项目设置中选择参数,然后再发布。最重要的是默认方向,即自动旋转的方向,图标等,发布后可以生成apk文件并将其直接安装在智能手机上,Android设置页面如图2.1所示。图2-1 Unity在安卓端的设置Unity3D单元可以在多平台上发布的原因与其基本代码,各种I / O接口的兼容性以及本地化功能紧密相关,而3D单元的基本代码则采用C +编写,以确保效率和可移植性。Unity3d提供了一个统一的表示形式的控制界面以及一个用于多个输入设备的程序界面,此外,Unity3d还提供了本地化的代码库。Unity3d可以实现场景
19、以及对象的有机结合,其结合内容包括属性以及资源的匹配;直接作用于模型的软件有3D Max和Maya两款,可以实现对场景元素的高效填列,并且可以对场景元素的各种属性进行展示,某些场景元素的属性直接影响到游戏操作者与游戏角色的交互感受,在碰撞位置以及旋转角度能够实现直观观察的情况下,开发人员可以通过对属性的更改提升角色动作的逻辑性,对角色动作中的不合逻辑的部分进行精确化修改。同样的,开发人员也可以对场景的属性进行精确化修改,例如模板,脚本,动画和素材,而图形操作使过去的一些繁复过程非常简单。 例如为模型提供材质。过去,可能需要搜索文件,但现在只需要将素材直接拖到模板里面,甚至可以将文件(例如模板声
20、音)直接拖放到导入项目窗口中。图2-2 Unity3D操作界面Unity3D编辑器不仅具有轻量级图形应用程序的功能,而且还为游戏开发人员提供了大量的开发工具。这些开发工具存在于上述组件中,例如场景开发工具,一方面,它具有通用的地形安装功能。无论是宽阔的地形还是粗糙地面,开发工具都应该为开发人员提供多样化的样本,来帮助开发人员以最节约的成本进行样本的选取,而Unity3D编辑器内部设置了大量的地形样本,可供开发人员的样本选择越多,在一定程度上为游戏地形适应性更进一步便提供了更多的可能;另一方面,Unity3D编辑器可以实现对场景中树木的编辑,Unity3D编辑器还具备外容性,能够接受开发人员自主
21、定义的编辑器的嵌入,可以帮助开发者在Unity3D编辑器内部开发工具无法满足编辑需求时,进行拓展。图2.3 Unity3D地形界面2.2 Unity3D开发流程关于软件开发过程,Unity3D游戏可以分为几个阶段,分别是总体规划,为游戏开发制定出整体规划;收集游戏素材,为游戏开发提供充足的素材准备;游戏开发元素交互,实现游戏场景、角色等各项要素的有机结合;编写脚本以及测试发布。交互式元素游戏脚本是开发人员通过一种交互方法实现游戏中的事件与动作。在决定制作游戏类型之后,首先要做的是对整个游戏进行计划,例如游戏场景的架构,游戏的人物元素应该怎么去设计,游戏的剧情逻辑是什么,以及游戏元素材料的收集或
22、创建,游戏逻辑确定脚本使用的功能。Unity3D在总体游戏规划中有两个位置。一个是图2.4所示的项目窗口,通常在制作整个游戏之前都有一个原型,将要收集的材料和脚本设计成素材来奠定下一步工作的基础。图2-4 Unity3D的项目窗口单一的游戏元素不具备实现游戏互动的基础,只有将各个元素结合起来才能够称之为游戏。Unity3d最常使用的便是C#和JavaScript,通过以上两种语言来完成脚本。在游戏的互动中,经常使用碰撞的概念,应用的最为广泛的就当属射击游戏,击中敌人的环节就属于碰撞过程。Unity3D对碰撞过程进行了精细化描述,能够将整个子弹运运动的过程淋漓尽致的展现出来,并添加了子弹和尸体。
23、这是通过碰撞分量来实现的。如果接触分量发生碰撞,则认为如果敌人的生命值为0,则碰撞概念可以扩展到其他区域,例如,从敌方视野中的玩家击落敌方战斗机,当玩家的对象代表攻击者时,这种交互作用可以设计碰撞区域的作用方式,即敌人的变化状态。图2-5 Unity3D碰撞组件游戏互动后,游戏的基本原型已基本完成,开发人员现在应运行初步测试,对于编写的脚本,编辑器中的Unity3D可以确定其是否存在语法错误,你可以直接双击错误以查看bug及输入脚本,开发人员可以随时运行游戏,并从游戏和场景的角度观察游戏的运行情况,该测试的成功与否基于执行游戏所有功能的原理,首先,测试游戏是否可以完全运行,然后 运行每个可能的
24、逻辑分支,以查看是否存在不符合预期的地方,并最终测试游戏的有效性,所有测试完成后,可以使用上面的publish方法在目标平台上发布游戏。2.3算法及解决方案碰撞检测算法作为游戏开发最主要的算法之一,对游戏的交互实现起到了至关重要的作用;空间坐标系算法是游戏形成的根本工具;寻路算法则是游戏角色空间转换实现的基础。在RPG游戏中,人物的移动是不能避免的问题,常用于解决寻路问题的Unity3D方法是A*算法,能有效地解决许多搜索方面的问题。A*(A-Star)算法应用环境为静态路网,能够在该环境下实现最短路径的搜寻,从而帮助游戏角色进行空间转换,该算法的具体表示为1F(n)=g(n)+h(n) (2
25、-1)以上公式作为A*(A-Star)算法的具体表现形式,其中F(n)指的是游戏角色由原本所处位置经过某种状态的变化而移动到目标位置所产生的代价的估计数值;g(n)指的是游戏角色由原本所处位置经过某种状态的变化而移动到目标位置所产生的代价的实际数值,h(n)指的是游戏角色由原本所处位置经过某种状态的变化而移动到最优位置而产生的代价的估计数值。在以上算法中,主要有三种导航形式:第一种,基于单元的导航图;第二种,可视点导航图;第三种,导航网格。寻航设计中往往会运用到人工智能技术,Unity3D在A*(A-Star)算法的三种导航形式进行选择,以将寻路过程设计最简洁为原则,采取了第三种导航网格的形式
26、作为寻路方式,导航网格形式的使用能够帮助开发人员减少精力的耗费,让他们灌注在跟游戏内容相关的AI设计上2。如今的游戏开发中大量使用了碰撞,这实际上满足了玩家玩游戏的方法的要求,并且许多游戏的碰撞检测都非常精确,开发人员甚至通过不断优化设计过程来提高程序效率。碰撞检测的目的是确定两个对象之间是否存在接触;碰撞检测是仿真技术中在Unity3D中的应用;计算机和网络技术的硬件和软件的不断发展和成熟,让碰撞检测逐渐开始成为来模拟真实的计算机动画最关键的技术,从而使越来越多的开发者被使用3。自上个世纪七十年代以来,研究人员开始了大量的碰撞检测研究,结果,二维碰撞检测技术已经非常成熟,可以在许多技术文档中
27、找到,代表性的算法是LIMNC算法4。大多数碰撞检测是2D的,而3D碰撞检测尚未找到好的解决方案。仅通过使用简单的数学和物理知识来模拟现实,当前的碰撞检测是很难实现的,最好的碰撞检测是通过矩形或多边形路径来计划范围,但是实施过程的效率非常低,无论应用于哪个方向都不能接受如此低的效率,所以需要寻找更有效的解决方案。在游戏开发的过程中,许多平面游戏的场景元素大量的使用到了较为方正的图片,而AABBs实现了在场景元素的设计中不用画圆就能获得较为方正的图片。除了这一突破之外,AABBs算法还有着运行速度快、精确度高,便于开发人员使用等优势获得了广大游戏制作者的一致认可5。探索最大的优化方式从未停止,由
28、于使用了旧方法,因此需要更多的优化。早先,对象被连续切割并细分为组件,形成AABB矩形,理论上优化可能会更进一步,但实际上使用率相对较低,主要是因为算法的效率太低而无法实现。这限制了其使用。SAT系统非常复杂,它描述了一个事实,即不同的表面被超平面分开,即两个表面在平面的两侧相连,这种方法类似于球面映射Unity3D。3D碰撞检测基于2D碰撞,实际上使用了相同的算法,例如AABB和OBB先验检测,先是碰撞逼近,然后是碰撞精细检测,尽管BSP系统在技术上不是很普及,但效率很高。通过调用Microsoft提供的接口要容易得多,但是仍然存在相同的问题,一旦添加了更多对象,性能就会降低,速度会大大降低
29、。碰撞需要做出反应,例如引导被阻挡的物体,使其停止或对物体产生反作用力以使该物体向后退或穿过墙壁,其中最困难的反应是横向的,到目前为止,碰撞所能获得的横向信息很少。物体由于碰撞发生的状态变化,就称之为弹性碰撞。由于物体存在着质量,在物体碰撞之后会发生位置的转移,而不同物体之间的碰撞会导致物体原本的移动速度随之发生变化。在这一过程中,排除阻力等因素的影响,物体的能量理论上是不会丢失的。大多数游戏开发采用的是非弹性碰撞,这种碰撞形式具备较高的真实性,仅在很少数情况下会采取绝对碰撞的形式。碰撞系统所涉及的因素主要包括了以下几个方面:其中,质量,质量越大会导致物体之间碰撞所形成的状态变化也随之越大;速
30、度,速度与物体碰撞形成正相关联系;摩擦系数,当摩擦系数越大,物体因碰撞而产生的速度将会趋于减弱,最终导致物体移动的停止;除此之外,影响碰撞系统的因素还包括了地心引力、碰撞分析系统以及物理概念系统。2.4本章小结本章主要介绍Unity3D的功能和开发流程,Unity3D拥有碰撞检测算法以及空间坐标系算法,并采取了寻路算法的导航网格形式是一款优秀的软件开发工具,使开发人员可以有效地完成游戏开发。同时,它也可以与体感设备结合使用。开发体感游戏,将来也可以通过具有良好发展前景的Unity3D开发新兴的虚拟游戏产业。第三章 游戏总体需求分析与设计3.1游戏需求分析3.1.1游戏剧情设定在本作中,主人公出
31、现在一个神秘的森林,在这片陌生的森林里,生活着一群土著居民,他们性格暴躁,会主动攻击外来的人,而主人公想要存活下来,就必须对这些野人进行反击,寻找方法逃离这片危机四伏的森林就是我们这个游戏的最终目的。3.1.2场景需求分析游戏分为两个场景,第一个是游戏的菜单主界面,其次便是游戏角色生存的主场景。第一个场景中,需要包括人机交互按钮,最基础的便是游戏的开始以及退出选项。游戏角色生存的主场景,分为无交互功能模块与交互功能模块,在无交互功能模块中,首先是地形搭建,构建一个基本的地形是游戏场景的基础,包括花草树木、石头、水流等等,还需要对环境的搭建进行必要的补充,增加粒子特效、天空盒子、调整光源的参数等
32、等,进而增强环境的渲染效果,并考虑到给玩家展示游戏最终目的地的位置以及地图的快速预览,加入了开场的CG动画。然后是交互功能模块,交互功能分为两大块,一个是玩家的功能需求,玩家的角色需要实现移动、操作视角、个人属性、动画、触发事件以及与怪物的交互功能。另外一个是怪物的功能需求,与玩家功能相比同样需要的功能有个人属性、动画、触发事件以及与玩家的交互功能。3.1.3角色的功能需求角色功能需求分为玩家功能模块和怪物功能模块,在玩家的功能模块中,玩家可以通过第三人称自由视角的方式来操控角色的移动,操作是由鼠标键盘分别控制角色的移动方向以及视觉方向,移动操作的流畅性跟自由度是需要优先考虑的两个要点,还有就
33、是角色的攻击,通过设定好的按键触发角色的攻击,并设置好角色攻击的计时器,设置好玩家的触发事件,比如触发怪物的生成、通关,根据需要结合动画机,设置相应的动画触发脚本。然后是怪物的功能模块,需要指定怪物存在的区域,当玩家进入到怪物的区域时,会触发怪物出现的提示并生成敌人,出现的敌人会自动追踪玩家并进行攻击;当玩家离开敌人的区域时,怪物便会停止行动,不再继续追击玩家,在到达BOSS区域时触发BOSS战,击败BOSS后可以移动到特定区域触发通关条件,同样需要结合动画机,设置相应的动画触发脚本。3.2游戏引擎选择游戏引擎是实现游戏玩家以及游戏角色实时交互的主要工具,通常有两种表现形式,一个是完成编辑的系
34、统,另一个是应用软件的核心组件6。由于现今游戏市场对游戏引擎的需求不断变化,游戏引擎的功能也愈来愈复杂,单一的已经编辑好的电脑系统无法支持日益复杂化的游戏玩家需求,转而演化为多个子系统联合工作的复杂体系,其根本目的在于帮助游戏爱好者与游戏实现深度交互7。游戏玩家所期望的交互感受往往是丰富多样的,在满足视觉质量的同时,玩家还对游戏的技术性能有了跟高水平的要求8。基于此,有越来越多的优质游戏引擎出现在游戏制作领域。(1)Cocos2d-xCocos2d-x实现了跨平台功能,随着该引擎的不断升级,目前已经能够适应市面上的大多数平台,不仅包括了ios、安卓等主流的手机平台,也实现了mac以及windo
35、w平台的融合9。Cocos2d-x的开源性质导致了许多游戏公司的钟爱,这是因为Cocos2d-x开源性质是由于MIT协议框架开源的存在,开发人员借助该引擎对游戏进行设计时可以免费使用。Cocos2d-x图形渲染借助了OpenGL,使得图形的转变以及特效在游戏运行过程中的功耗相对较小,这样节约了游戏操作设备的性能,导致游戏的运行时间以及稳定性有了强大的保证。Cocos2D-x具备外部自定义编辑工具的导入功能,这样可以帮助开发人员自主交流,通过自定义编辑工具来弥补由于Cocos2d-x内部开发工具不足而产生的缺陷。国内许多游戏的开发引擎都是Cocos2d-x,其中以梦幻西游手游作为突出代表。(2)
36、Unity3DUnity3D的强大之处在于稳定优质的游戏设计功能、画面效果、以及跨平台功能以及粒子系统的独特优势,作为一款多平台3D游戏开发引擎,Unity3D能够满足广大游戏开发爱好者的多样化需求10。Unity3D主要划分为免费版与专业版,其免费版向普通游戏开发爱好者开发,免费版的开发工具也能够满足大多数开发需求;而专业版的功能更加稳定,虽然为付费版本,但是专业版Unity3D需要的付费成本为1500美元,当完成该项付费之后,专业版Unity3D能够提供终身使用功能。Unity3D无疑是全球游戏开发领域最为出色的游戏引擎,是全球范围内诸多专业游戏开发者的实用工具,依靠Unity3D游戏引擎
37、设计的产品,荣获了苹果商店的17奖项。随着Unity3D的不断升级,以及游戏市场需求的不断变化,依靠Unity3D引擎设计的游戏产品必将迎来更为广阔的资源市场11。大型网游以及云版本将是接下来Unity3D 的重点研究内容。(3)Unreal EngineUnreal Engine发展至今,已经形成了第四代版本。Unreal Engine的优势在于可以将关卡的地图以及游戏中的场景素材进行分拣整合12,Unreal Engine主要由图形、物理以及音频三个独立的组件构成一个完整的游戏引擎,通过组件之间的结合形成交互系统,基于Unreal Engine制作的大型游戏主要有战争机器、生化奇兵。Unr
38、eal Engine相对于以上两种游戏引擎,其光影效果更加震撼,尤其是对于向往震撼特效的游戏玩家来说,基于Unreal Engine开发的游戏相对更加具有吸引力。基于以上三种游戏引擎的优势,在制作3D游戏时,优先选取的游戏引擎依旧是Unity3D,cocos2D-x引擎主在制作平面游戏时具备Unity3D以及Unreal Engine所不具备的优势,而在3D游戏的制作则不是cocos2D-x引擎所擅长的;Unreal Engi ne则是适用于制作主机向游戏时具备独特的优势。因此游戏决定用Unity3D游戏引擎开发。本游戏是角色扮演类的3D游戏,现在市场上常用的游戏引擎包括Cocos、Unity
39、3D、UE等,而本设计选用Unity3D的原因是作为开发一款小型3D游戏的工具,Unity3D拥有高度扩展的素材与脚本化的构建开发方式,对开发流程来说极为方便,并且Unity3D与场景建模与人物建模软件3Dmax与Maya等拥有极高的兼容性,可以非常迅速地从建模软件中构建模型与项目,而作为对比的Cocos仅对2D游戏支持性较高,一些3D场景素材是比较缺失的,它并不适合开发3D游戏,而UE往往是大型游戏工作室应用来开发一些面向全球客户市场的大型3A游戏的引擎工具,并不适合小型3D游戏的开发,所以,该游戏引擎比较满足本论文的需求。3.3游戏功能划分对一些经典的RPG做共性分析,会发现它们基本实现的
40、功能模块都是比较相似的,归纳如下:图3-1 游戏功能模块划分游戏功能大致分为玩家角色、敌人以及场景三大功能模块,角色控制可以细分为角色动作管理、角色行为模块以及第三人称摄像机,角色动作需要为角色行为绑定相应的动画机,而角色行为模块则需为互动的内容加入相应的脚本,第三人称摄像机需要给角色绑定一个玩家视角,使玩家能够融入到游戏的世界当中,更好的通过操作主人公去体验游戏内容。敌人行为则可以细分为敌人动作管理以及敌人行为模块,这也与主人公的角色控制类似,需要给敌人的行为绑定相应的动画机,并为敌人的行为加入相应的脚本。场景交互则可以分为触发事件以及UI,触发事件就是通过一些脚本,实现当玩家满足某个条件时
41、可以得到特定的结果,UI给予玩家一些提示性的帮助,有利于玩家理解和体验游戏内容。图3-2 游戏框架架构对此图(3-2)进行分析,结合游戏需求得出的结论,将游戏涉及的场景元素涉及表现如下,像建筑、地形、树木等是静态元素,水流、光柱、主角、敌人都是可以进行移动的动态元素,以及用于辅助个别脚本而采用的一些空物体,例如用于保存主角位置、或作为生成怪物的触发器等。3.4游戏的开发过程从通常意义上来说,游戏开发的过程一般是前期策划与UI美术设计,后期程序实现与调试,本设计计划的开发过程为:第一步:根据整体游戏需求策划各部分与功能模块的具体情况,制作游戏剧情逻辑,根据需求选取合适的开发平台、引擎与编程语言。
42、第二步:利用Unity3D来完成游戏场景的构建,对本设计来说,首先是素材的搜集工作,一些简单的模型,台阶等需要通过3Dmax来进行建模,再利用Photoshop制作一些简单的UI图片和场景贴图。利用这些素材实现场景地形的搭建,制作好游戏主场景的地形构造、调好地形的各个参数与场景模型的属性。然后选好合适的角色模型和敌人模型,绑定好骨骼,再利用动画机制作他们所需要的动作,例如行走、奔跑、攻击、跳跃、死亡等,将其打包成为一个动作包,结合血量和事件逻辑来完成设计。第三步:最后需要编写的是游戏的事件逻辑,包括剧情的任务剧情与UI界面,主人公与敌人的交互,以及敌人巡逻,攻击的判定与血量时间,通过脚本化的语
43、言编写来实现不同游戏元素之间的关联,从此游戏得以拥有一个雏形。3.5本章小结本章对设计的游戏进行了流程的策划,确保项目玩法实现的可行性,对项目各方面进行了需求分析,并根据需求确定引擎与开发流程,设计了所需要实现的各个模块,细分每个功能模块并将其逐一分析,得到作品最终的需求设计方案和实现思路。第四章 游戏系统的实现4.1角色控制模块Unity3D中实现角色运动的管理的是动作管理器,对应玩家控制角色移动的操作,需要动作管理器来完成角色的运动逻辑与具体动作切分的设计,这会让玩家觉得比较真实,在本游戏中,需要制作的角色动作有行走、奔跑、跳跃、下蹲、攻击、死亡,而且伴随血量的减少,死亡的状态会对上述所有
44、的角色动作进行打断,角色会立即进入死亡状态并弹出游戏菜单,跑动与死亡动作的事件逻辑值如表4-1所示表4-1主角动作与逻辑值列表播放条件玩家动作Attack为真攻击动作OnGround为假跳跃动作Crouch为真下蹲动作IsDead为真死亡动作4.2角色行动模块实现Unity3D获取玩家输入指令的代码为GetAxis和GetButton,分别对应玩家鼠标与键盘的输入,本设计首先实现了通过GetAxis获取玩家指针操作来进行角色移动的功能,并对通过键盘来控制移动做出了构想,计划通过Speed值来判定玩家是否处于移动状态,流程建模如图4-1所示:图4-1 角色行动的判定流程图4.3摄像机跟随的实现在
45、一般的RPG游戏中,通常是将主摄像机处于与玩家角色的绑定状态,这样做的好处在于可以让玩家视角随着角色的移动而进行移动,但是在遇到一些边界点是,可能会因为场景边缘的环境建模较高而对玩家的视线造成遮挡,更严重的还会造成玩家移动键失灵,造成“BUG”的出现,所以本论文在完成摄像机跟随的基础上,对摄像机的高度进行了适当调整,会根据情况调整位置,实现较好效果的第三人称观察视角。并且通过Cinemachine插件实现开局CG分镜动画效果,给玩家在开局时能够俯瞰全场地图,并起到开场视觉的一个过渡作用。本模块设计的目的在于让玩家有更好的操作感与沉浸感,所以对摄像机进行了状态设置,改进了脚本来进行更好的视角跟随
46、,实现简单的过场CG动画。4.4敌人行为模式的设计与实现敌人的行为主要就是给予怪物模型一个触发怪物生成脚本以及一个范围追击脚本,怪物事件在场景加载时会设定为未激活状态,当玩家进入敌人的领域范围时触发生事件成敌人,当玩家处于他们的领地范围时可以通过自动寻路自动追踪玩家并进行攻击,当然,他们也像玩家一样拥有自己的血量条与各个动作的动画。当玩家在离开敌人区域后会判定为“脱战”状态,停止追踪主角的行为。敌人的行动模式如图4-2所示:图4-2敌人行为模式4.4.1敌人行为模式的设计与实现结合第二章所说的寻路系统,本游戏使用Navenesh来规划敌人的行为模式,Navemesh是在Unity中一种用于寻路
47、的网格模型,但这种模型会始终关注并定位玩家的行动模式,这使得事件逻辑会比较复杂,且并不能及时调整玩家的角色朝向,所以会出现“走左面右”的情况,所以需要对敌人的行为模式的动作来进行适度调整。敌人的控制与玩家的动作是比较相似的,都是通过动作管理器来操作敌人进行各种动作,要禁用Navemesh的旋转功能,这样可以避免敌人在运动时出现曲线运动的异常情况,并且这样会使网格模型得出角色运动的速度向量,通过此向量来决定角色的朝向问题。4.4.2敌人行动的实现游戏中的敌人,拥有自己的行动与技能模型,首先就是当主角进入敌人区域时,会生成若干敌人,敌人会根据脚本触发相应的事件,执行相应的动画,完成从“行走”到“攻
48、击”状态的转变,动作具体包括行走、面向玩家、血量条浮现、攻击玩家、死亡等,敌人的仇恨范围在本设计中通过碰撞来判定,每个怪物存在的区域都有个方形的触发器,当主人公的碰撞体碰到怪物区域的触发器时,将会触发敌人生成的脚本,出现若干个敌人对主人公进行攻击。敌人的攻击范围在游戏中也是通过碰撞来判定,每个敌人设定有一定范围的球形碰撞体,同时角色也有自己的球形碰撞体,如果场景内判定主角的碰撞模型与敌人的发生了重合,则会引起敌人状态的变化,由移动状态变为攻击状态。4.5游戏的构造、发布与测试本小节将在Unity3D进行游戏的构造指令,并将游戏发布到本地,测试各个功能模块的运行情况,保证每个游戏功能能够正常运行,保证游戏的完整性和可玩性。构建并发布后的游戏如图