版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、本科毕业设计(论文)基于3DGameKit的RPG游戏的设计与实现Design and Implementation of RPG game based on 3DGamekit院(系)计算机学院专业软件工程班级软件工程 8 班学号16210120812学生姓名李俊泉指导教师 魏菊霞提交日期 2020 年 03 月 15 日毕业设计(论文)原创性声明本人郑重声明:所呈交的毕业设计(论文),是本人在指导老师的指导下, 独立进行的设计(研究)工作及取得的成果,论文中引用他人的文献、数据、图件、资料均已明确标注出,论文中的结论和结果为本人独立完成,不包含他人已经发表或撰写的作品及成果。对本文的研究作
2、出贡献的个人和集体,均已在论文中作了明确的说明。本人完全意识到本声明的法律结果由本人承担。毕业论文作者(签字):签字日期:年月日成绩评定成绩项论文成绩(百分制)折合比例实得成绩(折合分)指导教师成绩 30% 评阅教师成绩 20% 答辩成绩 50% 总评成绩注:毕业设计(论文)成绩按百分制评定。答辩成绩不及格的(评分低于 60 分的), 则该毕业设计(论文)总评成绩为答辩成绩摘要随着人类经济的不断发展,互联网技术的蓬勃发展,人们彼此之间的距离越来越近,人们的生活方式也随之改变着。人们在业余时间的放松方式开始变得多姿多彩,其中通过游戏放松的方式得到了飞速发展,游戏的行业的快速发展受到了越来越多的人
3、的关注,其中最受欢迎的游戏类型RPG游戏尤为明显。RPG游戏,全名为“Role-Playing-Game”,中文名为“角色扮演类游戏”,玩家在游戏中扮演一名虚拟的角色,在特定的游戏世界规则下完成目标来发展角色自身,游戏充满多样化,玩家在游戏中操作角色,通过不同的操作来达到锻炼玩家的反应能力和判断能力。Unity3D作为一款能够让开发人员快速上手开发二维/三维游戏,动画,视频等多种互动类型的综合型开发工具,在市场上的占有份额在逐步升高,同时Unity官方为了推广自身,为开发者提供相当便利的插件商店,该篇论文使用的是官方的插件3DGameKit,基于该插件开发的RPG游戏,游戏具有多个场景供玩家体
4、验,本文主要描述该游戏的基本开发流程,可为其他开发同类型的开发者提供参考与借鉴。关键词:Unity3D RPG游戏 3DgameKitAbstractWith the continuous development of human economy and the vigorous development of Internet technology, people are getting closer and closer to each other, and their lifestyles are also changing. People begin to relax in their
5、spare time in a variety of ways, among which the way of game relaxation has been developed rapidly. The rapid development of the game industry has attracted more and more peoples attention, especially the most popular type of RPG game. RPG game, full name of role-playing-game, Chinese name of role-p
6、laying game, players play a virtual role in the game, complete the goal under the specific rules of the game world to develop the role itself, the game is full of diversity, players operate the role in the game, through different operations to achieve the exercise of players response ability and jud
7、gment ability.Unity3d is a comprehensive development tool that allows developers to quickly develop 2D / 3D games, animation, video and other interactive types. Its market share is gradually increasing. At the same time, in order to promote itself and provide developers with a very convenient plug-i
8、n store, the official plug-in 3dgamekit is used in this paper. RPG based on the plug-in is developed The game has many scenes for players to experience. This paper mainly describes the basic development process of the game, which can provide reference for other developers of the same type.Key Words:
9、 Unity3D RPGGAME 3DgameKit目录1.绪论11.1研究的背景和意义11.2国内外市场对比11.3开发工具和开发语言21.4论文主要的研究内容22.游戏设计42.1游戏说明42.1.1游戏简介42.1.2游戏UI操作界面42.1.3游戏角色控制42.1.4游戏角色强化52.1.5游戏难度52.1.6游戏通关得分52.1.7游戏结束52.2游戏模块的设计布局62.3游戏的具体设计分析62.3.1游戏UI界面布局62.3.2角色控制设计模块82.3.3游戏视角控制和渲染模块82.3.4游戏场景模块92.3.5怪物设计模块102.3.6游戏对话系统模块102.4小结113.游戏功
10、能实现123.1UI功能模块123.1.1UI按钮和字体设计123.1.2音效设计143.1.3UI场景跳转143.1.4UI逻辑控制流程163.2角色控制163.2.1角色控制实现163.2.2角色动画实现193.3游戏视角控制203.4怪物模块实现213.4.1怪物行为实现213.4.2怪物动画233.4.3怪物的受伤与死亡243.4.4分数计算243.5对话系统实现243.6实现小结264.游戏功能测试274.1游戏模块测试274.1.1游戏设备环境测试274.1.2测试单元模块274.2出现的问题和解决方案294.3章节小结295.总结与展望305.1 总结305.2 展望31参考文献
11、32致谢33广东东软学院本科毕业设计(论文)1. 绪论1.1 研究的背景和意义RPG(Role-Playing-Game)游戏一直是游戏市场中较为火热的游戏类型,并且在近年来,在游戏市场的份额在在持续上升,其在Android和IOS两大移动平台游戏份额占据高达30%,在PC平台也是如此。RPG游戏的核心玩法是玩家在虚拟的游戏世界中扮演一名角色,在虚拟的游戏世界按照特定的游戏规则发展和优化自身,以其特有的代入感给玩家带来不一样的游戏体验。RPG需要玩家模拟、体验角色在游戏世界观中的经历,换而言之,RPG可以类比为是一种沉浸式互动电影,在这种电影之中,玩家拥有一定的自由度和选择权,并且通过玩家与R
12、PG元素的“互动”来推进剧情。在游戏中暂时让我们玩家现实的烦恼,投入到虚拟世界中去。优秀的游戏总能给不同的玩家带来不一样的游戏体验。对玩家的不同方面有着不同的影响,类似的像FPS游戏,锻炼的是玩家的操作能力的快速的反应能力,RPG游戏也可以锻炼玩家的反应能力和决策能力,在不同的游戏选择中选择不一样的选项会有不同的结果,更有助于我们去研究游戏本身。近年来,游戏市场的快速火爆也证明了中国游戏的质量再逐步提高,中国游戏在国际游戏市场份额也在逐年增加,不再是由国外的游戏公司占领大部分的中国游戏市场,如暴雪,育碧公司,R星等大型游戏公司,本土的游戏文化公司实力在近年来得到迅猛的发展,在这种趋势与势头下,
13、开发者有着良好的开发本土游戏文化环境。技术的成熟的趋势下引导了许多个人开发者的创作,中国游戏市场由于个人开发者的加入使得的游戏类型更加的丰富,游戏市场的游戏类型几乎满足了所有的人们所有的年龄段,小到幼儿的引导学习游戏,大到老年人的下棋游戏,每款游戏都有其主要的消费类型,而我们研究的是游戏市场中面对的最大的游戏消费的青年人群,并且是其中最为火热的角色扮演类型,可以通过游戏更好的研究游戏市场中目前对该类游戏的认识与了解。1.2 国内外市场对比2019年,全球游戏市场的总额高达8000亿人民币,同比增长5.8%,其中,移动端游戏和PC端游戏增长尤为明显,与前几年相比,全球整体的游戏市场规模在近三年增
14、幅明显。中国游戏市场全年收入达到2510亿元人民币,市场总规模领先全球,而美国,欧盟和日本分到2到4位,所有由数据显示,在未来,中国游戏市场持续火热的现象依旧会存在很长一段时间。 未来,随着5G,云服务器等高新技术的不断发展,PC电脑硬件性能或许有飞跃式的进步,随时游戏可能会进一步实现,不会局限于某一个特定的场景,游戏的画质和性能将会越来越强大,一款优秀的游戏可以在闲暇期间拉近彼此之聊天的中间媒介,渐渐的这种通过游戏的社交模式也在逐渐流行,其中最火热类型莫过于RPG类型,如进化之地,无尽之剑三部曲,艾诺迪亚系列都是一些比较著名的RPG游戏,开发RPG游戏有利于在本土游戏圈中发展。1.3 开发工
15、具和开发语言C#是微软公司发布的一种面向对象,运行于.NET Framework之上的高级程序设计语言,它是一种安全,稳定,简单的语言,它继承了C和C+强大功能的同时去除了一些它们复杂的特性,C#综合VB简单的可视化操作和C+的高效率运行,丰富的API库,简单的结构,用途广泛等特点深受编程爱好者的喜欢。C#的语言开发平台使用时微软自主开发的集成开发平台,Visual Studio,一个基本完整的开发工具集,它包括整个软件生命周期中所需的大部分工具,如UML,集成开发环境等,所编写的代码程序适用于微软的所有平台。开发游戏使用的是Unity3D软件,它是一款优秀的游戏开发引擎,不仅可以开发游戏,还
16、能开发动画,三维模型等,在开发游戏上有着成熟的开发工具包,便利独立开发作者开发游戏,该游戏引擎还支持多个平台,可发布游戏至Windows,iPhone,WebGL等多个平台,也可以使用内置的插件将游戏发布至网页上。Unity3D游戏开发引擎有着丰富的API接口,能够极大的帮助的开发者开发出想要实现的理想功能,API是一些系统提前设置定义好的函数模块,开发者可直接调用使用其功能,无需重新定义,游戏开发者通过调用这些内置的API,可以很方便的实现项目的初始化,实现基础的效果实现,如简单的物理碰撞检测,射线感应,鼠标响应事件和键盘响应事件等等。 在模型处理方面使用3D-Max将所选的模型的位置和角度
17、属性调整好后,将原生的MAX文件属性格式转化为Fbx文件属性格式,可被Unity3D 所识别的模型文件1.4 论文主要的研究内容课题的设计与实现,结合目前游戏市场的游戏类型的流行趋势,使用Unity 3D游戏引擎开发,结合其官方设置的3D Game Kit插件包,基于RPG游戏的特性,开发出一款奇幻世界的冒险题材的RPG游戏,游戏节奏轻快,游戏剧情丰富,风格类似奇幻冒险风,玩家在其中不同的场景中探索成长发现不同的东西,在虚拟游戏的规则之下发现和提升自我,适合目前市面上主要的青年消费群体的审美习惯,实现一款能让人快速上手和喜爱的RPG游戏。主要通过实现研究:游戏的设计思路和分析,包括游戏的主要操
18、作玩法,游戏的场景风格,游戏主要战斗逻辑的实现,游戏场景的主要搭建,游戏战斗数值的设置。游戏模块设计,包括游戏UI界面,游戏战斗模块,游戏设置基础模块,游戏角色控制模块,敌人AI模块,游戏场景控制模块。2. 游戏设计2.1 游戏说明2.1.1 游戏简介在纪元之前,存在着一个高质量位面的亡灵世界,里面充沛着无数的亡灵元素,生活在该世界的人使用的都是包含有亡灵属性的魔法,但是由于一场毁灭性的战争,导致亡灵世界分崩离析,法师普雷就是其中一位,在这场战争中,他流落到了其他的世界,他的目标是重回亡灵世界。主角是一只骷髅,一位法力超绝的亡灵魔法师,玩家操控法师,通过灵活的操控,在不同的时机进行攻击,在不同
19、的场景中击杀不同的敌人,获取相应的灵能经验,在战斗中使得自己变得更加的强大,闯过一道又一道的关卡,最终来到最后的世界传送阵,将主角传送回亡灵世界,回归到属于自己的世界。2.1.2 游戏UI操作界面游戏启动后,进入游戏的启动界面,由主界面,游戏名称,与三个游戏选择功能键,这三个游戏选择的功能键包括:“开始游戏”, “游戏设置” “退出游戏”,三个选项,其中,游戏设置中包括游戏的音量和音效的设置和游戏简介的说明。点击“开始游戏”Game-Begin,玩家来到初始小镇,玩家准备冒险。点击“游戏设置”Option按钮,玩家可在界面中查看游戏的背景故事及游戏简介。点击“退出游戏”Excited Game
20、按钮,退出游戏并关闭游戏程序。玩家点击“Audio”音量按钮,调节音量大小,设置三种音量,设置总音效,背景音效和攻击音效。点击“Controls”,控制介绍,用滚动画面的方式为玩家呈现出游戏人物的操作说明。2.1.3 游戏角色控制游戏角色移动控制,游戏的视角采用第三人称视角,WASD键位分别为,前进,后退,向左和向右。游戏角色攻击控制,角色的攻击模式有两种,一种是普通攻击,另一种是特殊攻击。点击鼠标左键是普通攻击,鼠标右键是特殊攻击,两者不可同时使用。攻击为发射充满毁灭能量魔法球。2.1.4 游戏角色强化玩家在奇幻场景中冒险,通过击杀场景中怪物来获得分数,通过分数获得强化点数,强化自身的攻击力
21、和移动速度。让玩家在场景通关速度可以更加的快速,增加游戏的挑战性2.1.5 游戏难度玩家在每一个游戏场景中有三种难度可供选择,每一种难度的游戏挑战难度是逐步提升的,分为三个层次:“简单”,“普通”和“困难”,怪物的数量和血量是和难度成梯度性增强。简单难度:怪物稀少且容易被击杀,主要是让玩家了解游戏的流程和增强玩家对游戏角色操控的熟练度。普通难度:怪物数量中等,有一点难度,主要是让玩家进阶使用,游戏节奏加快,让玩家更有代入感。困难难度,怪物数量的血量都得到了极大,极致的难度,充分满足想要挑战自我的玩家,该难度需要玩家有更好的操作性,在怪物的围攻下存活下来。游戏节奏快速紧张,充满极致的挑战性。2.
22、1.6 游戏通关得分游戏通关规则:每个冒险战斗场景的怪物都是有限的,当玩家击杀所有的怪物后,场景中会显示一个传送法阵,玩家通过触发传送法阵到达下一个场景。当玩家通关到最后一关,将不会显示传送法阵,会显示滚动结束语,表示玩家已通关。游戏得分规则:玩家在每个场景都会与怪物战斗,击杀不同的怪物会获得相应的分数,玩家可以通过击杀怪物获得的分数按比例兑换成强化点数,用强化点数提升自我属性能力。2.1.7 游戏结束游戏通关的条件目前只有一种,就是通过玩家的操作,将场景中所有的怪物击杀,击杀完后场景中会显示一个传送按钮,触碰传送按钮,传送门就会打开,显示通往下一关场景的道路,若当前已是最后一关,则将不会显示
23、传送按钮,将会以滚动播放的方式播放结束语。游戏失败,玩家被场景中的怪物所击杀或者玩家在游戏中途退出游戏也被定义为游戏失败,游戏失败将要重新在此关挑战。游戏失败会显示游戏失败画面,显示为返回初始场景,重新进入到该场景中。2.2 游戏模块的设计布局游戏中的功能繁杂,为了提高系统的运行效率,遵循开发优秀程序的高内聚低耦合的原则,提高系统资源利用率,增强程序模块的可重用性,移植性,所以将游戏的功能进行高度模块化。图2-1 游戏的设计模块布局2.3 游戏的具体设计分析2.3.1 游戏UI界面布局UI整体设计呈现的奇幻冒险的风格,带有一点魔幻的色彩,较为符合游戏的主题,色彩方面比较绚丽,光影效果也做了加强
24、。字体上采用了字体渲染SDF,在Unity3D中的TextMeshPro文字渲染插件就是基于SDF实现的,SDF全称为“Signed Distance Field”,中文译为有向距离场,是一种矢量的渲染方式,即通过定位像素的距离来确保图像不会因为放大而失真,能更好的保证字体的渲染质量。由于游戏UI界面设置的是中文,所以不能使用Unity自带的语言格式文件,因为中文字符投影的定位比较多,默认自带的语言格式文件没有,所以需要外部下载。图2-2 UI开始界面按钮布局图2-3 作为SDF的源文字样式选择字体样式选取的楷体,因为游戏的需要,我们需要设置三层排布式的三个按钮,字体样式为楷体,字体大小为60
25、,字体颜色为白色,加粗。在游戏设置一栏,内部的按钮布局都是按图片所示。,游戏设置一栏中还包括游戏介绍,游戏介绍设置的是自动上下循环播放,当游戏介绍一栏到底的时候回重新回弹。音效设置排布设置为三种音效,依次排列设置。排列设置为背景音效,特效音效,和场景音效。图2-4 UI设置界面按钮布局2.3.2 角色控制设计模块角色移动控制:游戏角色的方向键设置为常见的游戏方向键设置,W-S-A-D分别为前进,后退,向左,向右。为了在更大难度的场景战斗需要,特别设计了加速功能,键位设置为Shift键,大幅度提升角色的移动速度,角色移动所需要使用到的参数包括,角色当前的位置,方向向量,加速的初始值和速度的初始值
26、。角色攻击控制:游戏角色的攻击方式分为两种,一种为普通攻击,伤害一般,攻击键位设置为鼠标左键,攻击效果为发射魔法火球,在击中目标敌人后会消失,同时在敌人身上造成伤害计算。第二种为特殊攻击,特殊攻击相较于普通攻击变为了AOE技能,AOE全程Area-of-Effect,定义为返回伤害效果的技能,范围性火球攻击。伤害上的设定与普通攻击一致。角色攻击所要设置的参数火球的攻击伤害指数,火球的发射距离,击中目标之后的效果设置,火球的范围设置,火球的生成和销毁时间。角色的动画设计:角色的动画包括攻击,受伤。站立,移动,奔跑动画的混合的动画。之后就是角色的音乐设计,角色的音效包括,角色攻击单点音效,范围性技
27、能施法音效和受伤音效。站立,移动,奔跑动画的混合动画音效。2.3.3 游戏视角控制和渲染模块游戏视角采用第三人称视角,360度全范围视角,利用摄像机与目标之间的向量调整和鼠标的移动发生的角度变化来形成第三人称视角的效果。 游戏渲染方面,由于场景内的物体比较多,采用一种管理办法来提升整体的性能,这种方法取决于摄像机于对象之间的距离,网格有不同的细节级别,官方称之为细节级别,即LOD,全称level of Detail.通过摄像机对目标的不同距离对物体进行精度调整。图片显示的是每个LOD级别框中的百分比表示该级别激活的阈值,该阈值基于Game Object的屏幕控件高度与屏幕总高度的比率。像LOD
28、1的阈值为40%,则当照相机在场景中创建特定视点的图像的组件,输出对象绘制到屏幕上,游戏对象的高度占据视图的40%,大大提高了渲染的效率,降低了对性能的占用。图2-5 LOD层级显示2.3.4 游戏场景模块场景主题:游戏的主题的奇幻冒险风格,所以游戏的场景的主题选择的是围绕魔幻,奇幻的主题打造的。关卡难度设计:为满足不同玩家对游戏挑战的需求,设计了三种不同的游戏难度,每一种难度对玩家的操作要求不同。场景道具:当玩家击杀完所有的敌人时,场景中会出现传送按钮,用来触发打开下一个场景的大门。在场景中,击杀一定数量的敌人,会出现定点一次性补给盒,玩家打开盒子可以补充血量。图2-6 补给箱样式 图2-7
29、 传送门样式 图2-8 传送门触发按钮场景音效设定:由于游戏的主题是篇奇幻风格,所以游戏的场景背景音乐也选择类似风格的,游戏音乐轻快,让玩家享受在游戏中冒险的历程。2.3.5 怪物设计模块怪物初始化和死亡:当玩家进入到场景中,怪物会从指定地点不断的诞生,怪物的诞生是有数量限制的,到达一定数量之后就不会继续生成。当玩家击杀了怪物之后,怪物将不会重生,设定为直接死亡。怪物攻击距离:为怪物设定了攻击距离检测,攻击范围检测呈圆形,当玩家进入到该返回内,怪物会取消当前的移动路径,并直接朝玩家敌人移动并攻击。怪物攻击范围:每一位敌人都有一个攻击范围,当玩家进入的范围内,敌人会切换进入到追查攻击模式,直至把
30、玩家击杀后,停止攻击行为。怪物的寻路模式:在地图上烘焙自动寻路所需的地图,怪物上设置两个巡逻点,Unity自带的自动寻路系统编辑寻路。当怪物碰撞到场景中的游戏物体时,会自动避开。怪物音效:怪物的音效分为移动音效,死亡音效,受伤音效。怪物动画设定:怪物包含有站立,走动,奔跑的混合动画。攻击动画,受伤动画和死亡动画。2.3.6 游戏对话系统模块为了更好的引导玩家,增加游戏的代入感,使用对话系统能更好的让玩家对游戏有一个更好的了解,能够是玩家在游戏初增强游戏的探索趣味性,引导玩家代入游戏当中。图2-9 初始聊天内容框玩家进行PVE,PVE指玩家与周围环境的互动,包括NPC和环境敌人,在初始化小镇有系
31、统NPC,玩家可以通过与之对话了解到许多关于奇幻世界的东西,使得玩家更快上手这款游戏,增强玩家的探索精神。对话系统使用的是Fungus系统,它是一款检视面板自定义的工具,主要帮助标志不同角色对话在检视面板上显示的颜色,以更好更清晰地实现游戏角色之间的对话逻辑。Fungus能以标签来触发对话过程中的事件以及各种条件与逻辑处理,并且支持本地化,对相机,Sprite及音乐音效的控制。提供一个交互式的界面,能够快速构建一个对话系统。2.4 小结本章节主要对象研究对象是探讨游戏设计思路和游戏开发理念,初期对游戏有整体性的规划对于后期的游戏开发具体功能实现有着极大的引导作用,游戏设计的范畴包括色彩设计,道
32、具设计,人物设计,场景设计,音效设计,灯光设计等。具体实现到游戏中去是分别对不同的游戏对象进行设计性分析,如初期的UI界面,人物角色的控制移动,键位布局,敌人音效控制等。3. 游戏功能实现3.1 UI功能模块3.1.1 UI按钮和字体设计初期开始界面按钮设计排布为顺序层次,设计三个Button,更换Button的底部图片的来源使用的是图片集,便于管理,其中按钮的背景图设置为褐色岩石图片,更符合游戏主题的冒险风格。图3-1 背板样式图片采用的是九宫格切片方法,创建固定边框控件的最佳选择,边框固定,图片中间做拉伸,该方法的好处是可以保证图片的四个角在放大的过程中不失真,保持原图片的清晰度。具体设置
33、为先,先在原图片类型中选择图片类型Texture Type从Default转化为Sprite,即精灵图,便于之后的修改,点击Sprite Editor,进入到精灵图编辑界面,调整绿色的边线,分割成九张图片,四个边角要对齐,设置完成后点击Apply,图片经过编辑之后,放大后的图片边框不会出现失真现象。图3-2 背板分九宫格图3-3 九宫格属性字体设置用的是Text Mesh Pro组件,原生的Text组件容易产生文字模糊的现象,对字体的渲染效果不理想。Text Mesh Pro组件它使用的是完全不同于Text的SDF渲染技术,SDF全程有向距离场,使用默认文本时,有时候拉伸或者调整文本对象大小时
34、,会使其看起来很模糊,这是因为该文本对象不带有相应信息控制调整大小后的效果,因此Unity只能通过内部算法临时拼凑这些像素点,但在动态调整的过程中意外的丢失了像素,导致字体模糊,但SDF渲染技术不同,有向距离场,通过字体内外距离点,形成一个场域,即大小信息记录,就不会存在字体放大失真的情况,可以很轻松的修改文本的效果,无需重新制作字体。游戏中的语言载体是中文,所以要设计字体,点开Window-Text Mesh Pro Font Asset Creator,打开字体文件制作器,Font Source导入字体原文件,这里设置为简体格式,设置文字之间的间距为9,字体间隔设置为22。字符集包含设置为
35、2048*2048,获取更多的字符,因为SDFAA使字体纹理生成的速度更快,在运行时从字体集中获取字符,并用于游戏中去。图3-4 字体属性图3-5 字体样式图3-6 字体样式3.1.2 音效设计UI界面中使用滑动条来播放音效,使用Audio Mixer,音效混合器来控制,以达到更好的音乐效果。为了能够更方便控制音量,设置三个参数,分别控制总音量和背景音效和攻击音效。图3-7 音效混合3.1.3 UI场景跳转由于场景比较大,耗费的资源比较多,当场景在加载时容易卡顿,异步加载场景可以很好的解决这个问题,用中间场景过渡,先创建中间等待场景,AsyncOperation设AllowSceneActiv
36、ation=false时,当场景加载完成时,不会自动跳到加载场景,鉴于不同电脑的性能不同,所以选择平均的时间,统一加载5s中,当开始场景跳转到等待场景,会等待5S后进入到开始的冒险场景,实现代码如下:图3-8 场景跳转代码最终实现的效果如图显示:图3-9 UI界面3.1.4 UI逻辑控制流程图3-10 UI逻辑控制图3.2 角色控制3.2.1 角色控制实现角色控制和动画代码用继承的方式进行管理,减少代码的冗余,可有效提供代码的重用,代码能更有效的进行管理。以下是角色自身的旋转实现,先获取旋转的角度,以自身Y轴为进行旋转。图3-11 旋转自身代码角色的移动主要实现代码:图3-12 移动实现角色的
37、加速设定,判断按键输入判断角色是否加速,对游戏角色设定刚体属性,获取刚体的速度,通过改变刚体的速度实现加速的效果,主要代码实现如下:图3-13 加速实现角色的攻击设定,角色的攻击分为两种,普通攻击和特殊攻击,区分两种攻击的按键,普通攻击设置为左键,特殊攻击设置为右键,当连续点击左键或者右键时,会出现攻击动画未播放完毕就重新播放,为此解决解决思路是获取当前动画,若动画未播放完毕无法重新播放动画,首先使用AnimationStateInfo类获取当前动画机的动画层次,然后获取当前播放的动画名字和用normalizedTime获取当前播放动画的播放帧数来判断动画的时长,设置判断属性,当动画时长等于1
38、并且当前播放动画是攻击动画时即可继续攻击。图3-14 攻击实现代码段一图3-15 攻击实现代码段二攻击发射火球实现,为发射的火球设定刚体,设定发射速度,根据执行的攻击动画不同,发射效果不同的火球效果。图3-16 子弹实现3.2.2 角色动画实现控制角色的动画播放,在Unity 3D中有一套完整成熟的动画控制器,Animator动画状态机用来更好的管理动画,通过不同的参数设置,达到动画之间的切换。表3-1 动画参数VelocityAttackNormalAttackNormalConAttackConSpeAttack速度普通攻击特殊攻击连续攻击连续特殊攻击IsDeadIsHit是否死亡是否受伤
39、移动动画Move由于设定是受刚体速度影响,单纯的使用动画机之间的切换,会使得动画之间有刻意的切换效果,所以使用动画状态机中自带的动画融合树Blend Tree,使得动画之间转换更加融洽,设置单一的参数Velocity,切换站立,走路和奔跑三者之间的动画,通过不同的按键调用方法,实现刚体不同速度的改变,从而播放不同的移动动画。图3-17 动画状态机图3-18 动画混合树3.3 游戏视角控制游戏采用的游戏视角是第三人称视角,第三人称也被称之为 “全知视角”,是指从第三人的角度去观察,它能够带来更大的信息量,其实第三人称视角是在180度的基础下,也提供后面的一部分视野。获取鼠标水平移动量,通GetA
40、xis()函数获取,同样的获取垂直的鼠标移动量,获取后通过改变摄像机欧拉角从而来改变摄像机当前的旋转。由于物体的视野范围有限,所以必须要限制物体的视野范围,使用ClampAngle限制垂直范围内角度的移动量,取主要实现代码如下:图3-19 视角旋转3.4 怪物模块实现3.4.1 怪物行为实现每当角色进入到新的场景时候,玩家角色选择相应的难度关卡,当选择完毕后,场景中的怪物会在特定地点不断的产生,怪物生成之后会在固定的巡逻点开始巡逻,直至到玩家角色进入到它的攻击范围,就会改变巡逻模式,改为攻击模式,移动路线由巡逻线路转为寻找玩家的路线,当玩家与怪物到达一定距离后就会将移动模式改为攻击模式,怪物的
41、行为由以下几个点实现:(1)怪物的巡逻(2)攻击范围检测(3)行动模式的切换 怪物的巡逻,使用Unity3D 自带的AI组件,自动寻路组件NavMeshAgent,首先将场景建设好,设定好可移动路线和不可接触的物体,选择完后对场地进行烘焙处理,之后对需要在该场景自动寻路的游戏物体添加NavMeshAgent组件,之后物体就能在该场景自动寻路了。之后需要为怪物设定巡逻的固定地点,以及攻击范围判定和行为动画的切换。初始设定的变量值如下:图3-20 动画切换实现参数使用数组将两个巡逻点存储起来,当怪物到达巡逻点之后会切换移动路径,出发到第二个巡逻点,完成一次巡逻。图3-21 移动代码段设定攻击范围判
42、定,使用Vector3.Distance函数时刻监测怪物与玩家之间的距离,从而判定是否攻击,当玩家进入到检测范围,怪物会切换巡逻至追击模式,当距离间隔达到一定范围内,切换至攻击模式,然后开始对玩家实施攻击,实现代码如下:图3-22 转向代码段图3-23 切换模式代码段3.4.2 怪物动画首先需要设置切换动画的所需的参数:图3-24 动画参数动画状态机的切换模式:图3-25 动画状态切换为了能让移动动画的切换表现的更加流畅,所以使用了动画融合树将怪物的动画切换融合在一起,设置单一切换变量元素,通过刚体速度切换动画。通过玩家与怪物之间的距离来改变速度,从而切换动画。图3-26 动画混合树3.4.3
43、 怪物的受伤与死亡怪物设置了血量上限,当怪物被玩家的火球击中时,怪物的血量会减少,播放受伤动画。当血量减少至零时,怪物将会死亡,播放死亡动画。怪物死亡之后不会重生。3.4.4 分数计算当怪物被玩家击杀之后,会自动计算分数,分数可以累积,击杀不同怪物等级的怪物,玩家相应获得的分数也不同,随着难度的增加,击杀怪物的得分也会相应的增加,当玩家击杀足够多的怪物的时候可以换取潜力点数强化自身,包括攻击数值,移动速度等。3.5 对话系统实现在RPG游戏中为了让玩家更快的熟悉游戏,对游戏有更强得到代入感,会采用一些引导的方式,例如剧情描写或者视频介绍等,这些都是游戏常用的新手引导的方式,新手引导的方式有两种
44、,一是帮助玩家了解游戏的功能和玩法,尽快的让玩家了解到这款游戏怎么玩,做什么。二是,营造更强的代入,提高玩家的留存率。此次采用的是使用对话系统让玩家更快的了解这款游戏,使用的是Fungus插件系统,在场景中设置一些NPC,玩家与之对话可了解到一些游戏规则和游戏玩法,甚至有一些可以了解到奇幻游戏世界的秩闻。增加游戏的趣味性。图3-27 对话模块在游戏初始小镇中设置NPC,即NON-Player Character非玩家角色,用于引导玩家使用,使用Fungus插件,设置好对话故事线,让玩家慢慢深入了解到游戏,增强游戏的趣味性,在Tools工具窗口设置FlowChart,设置对话树,使用触发性对话,
45、当玩家接触到NPC时,会自动显示对话内容,使用FlowChart中的Narrative中的Say,叙述性对话之后开始设置对话内容。 对话第一部分之后会显示选择,当玩家选择不同的内容会显示不同的对话。在Commands界面中设置Menu,然后通过玩家的点击选择不同的内容。具体的代码实现如下,通过获取碰撞的对象来指定触发特定的聊天内容,还能为聊天者设置特定的角色。图3-28 初始对话界面图3-29 与NPC对话图3-30 对话选择图3-31 对话代码实现3.6 实现小结本章节主要描述的是对设计模块的具体功能是如何实现的,具体使用的编程语言是微软旗下的C#语言开发,依次实现了UI界面,视角实现,角色
46、控制实现,敌人AI的实现,整个游戏的逻辑模块等,Unity3D开发引擎极大的便利我们游戏开发者,其中的许多功能非常便利,如刚体物理的设计,模拟物体的碰撞。动画状态机,动画融合树便于动画之间更加流畅的衔接,NavMeshAgent自动寻路组件,只需提前设定好移动点,和不可触碰的障碍,再对地图进行烘焙,自动寻路功能就能简单实现等等这些优秀的内嵌组件,大大的简化了开发的过程,在开发中也发现了自己的许多不足,在老师和同学的帮助下基本完成了对游戏的开发,但自身对一些更深层次的优化还不够深入,在该游戏还有许多可以改进的地方,我将不断学习,争取以后可以开发出可玩性更高的游戏。4. 游戏功能测试4.1 游戏模
47、块测试4.1.1 游戏设备环境测试图4-1 游戏测试环境4.1.2 测试单元模块为了能够更好的运行游戏,我们需要对游戏进行游戏测试的流程,对于每个游戏功能点模块进行功能的排查摸底,以做到游戏能够正常流畅运行为准,提高游戏的运行稳定性。UI界面的测试实现内容包括界面上的按钮测试与灵敏度反馈程度,UI界面的运行流畅很大程度上影响玩家的游戏开始的心情。表4-1 UI界面测试内容:运行情况:开始界面正常设置界面正常返回正常音频设置正常游戏介绍正常ARPG游戏中最为重要的核心就是游戏中玩家所扮演人物的灵活程度,很大一部分影响了高端玩家的操控水准,所以有必要对游戏人物的各方面进行重点功能点测试,包括以下几
48、种等:表4-2 角色控制测试内容:运行情况:移动正常加速正常普通攻击正常特殊攻击正常受伤/死亡检测正常碰撞检测正常模型显示正常在许多游戏中,玩家的视野是很重要的一个功能点,好的视野范围和视野控制范围对于玩家来说影响甚大,良好的视野范围可以为玩家提供更好的游戏体验感受。表4-3 视角控制测试内容:运行情况:视野范围正常移动视角正常怪物在游戏副本中起到极其重要的作用,怪物正常的巡逻,攻击,死亡的等一些基础功能点是游戏能够稳定运行的基本点之一。表4-4 怪物控制测试内容:运行情况:巡逻点间移动正常范围检测正常死亡/受伤检测正常攻击检测正常模型显示正常对话系统是玩家最初在游戏初始地点接触的,运行流畅的
49、对话系统能过给玩家更多不一样的体验,能过让玩家更快的了解到游戏,对其测试很重要。表4-5 对话系统测试内容:运行情况:对话内容播放正常对话播放流畅度正常4.2 出现的问题和解决方案在UI界面使用原生的字体无法显示中文,可以重新制作字体,使用楷体制作字体,使得字库里有中文的映射字体。火球在攻击敌人的一瞬间发生碰撞,导致两物体间产生物理效果不理想,将火球的碰撞检测由Collision转变为触发器,为了能更好的显示效果,当火球击中的敌人时候,火球会在1.5S内自动销毁。场景之间的切换存在页面卡顿的现象不良,由于某些场景过大,加载的时间可能比较漫长,页面会存在停滞处于加载状态,为了能够更好的显示页面,
50、采用异步加载的方式,制作一个加载页面作为过渡使用,优化观看体验。4.3 章节小结本章主要描述的是对游戏个单元的功能进行测试,采用的是黑盒测试方法,又叫功能测试法,对所有单元模块进行逐一的测试,测试功能是否正常,是否运行流畅,对某些不精准的数值进行调教,在测试中查找出问题,然后逐一排除,之后在后续可改进的地方继续优化。5. 总结与展望5.1 总结整个游戏从需求,策划,设计,实现,测试逐一的实现,一步步下来我学习许多新的知识,对已经习得的知识进行了更深一步的巩固。在此过程中我获益良多。从游戏需求开始,对游戏市场进行调研,了解市场上对游戏的需求,调查游戏市场上游戏类型的排布,从而确定开发RPG游戏的
51、想法,之后开始写下策划需求,列举出想实现RPG的游戏的需求,之后开始对游戏进行初步的设计,对游戏的玩法设计,游戏规则设计,游戏剧情,游戏大纲等,逐步填充内容,列举出大致的游戏框架模板。根据游戏的模板框架对游戏进行布局设计,从UI界面设计开始,按钮在界面上的布局,按钮需要实现的功能,如场景跳转,音乐调整,返回等基础页面显示,这些只是UI界面的一部分,还有游戏中的血量显示,自身面板,玩法介绍,敌人血条,击杀敌人后的分数显示,这些都属于UI设计的一部分。之后是场景设计,选取符合RPG游戏风格的场地类型,能更好衔接场景与场景之间的衔接,场景切换的流畅度的设计等。完成场景设计之后就是最重要的玩法设计,对在需求上提出的玩法进行实现,逐步完善游戏规则,游戏键位实现,最终将所有的功能稳定有序的整合
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2024-2030年中国环卫机械产业发展格局投资策略建议报告
- 2024年涂料消泡剂项目规划申请报告模板
- 2024-2030年中国煤制氨行业前景展望与供需规模预测报告
- 2024-2030年中国焊接个人防护装备行业需求态势与投资盈利预测报告
- 2024-2030年中国液压挺杆行业市场运营模式及未来发展动向预测报告
- 2024-2030年中国海洋大气防腐涂料产业未来发展趋势及投资策略分析报告
- 2024-2030年中国油甘叶睡枕行业十三五需求及投资战略分析报告
- 2024-2030年中国氧化铝空心球砖行业发展前景及投资需求预测报告
- 2022年大学物理学专业大学物理下册月考试卷A卷-附解析
- 2022年大学环境生态专业大学物理下册月考试卷C卷-附解析
- 医养康养中心设备配备清单
- 沥青混凝土面层夜间施工安全专项方案
- 客户满意度及设备使用情况调查表
- 国家开放大学《政治学原理》章节自检自测题参考答案
- 智慧树知到《走进故宫》2019期末考试答案
- 医院人才梯队建设情况汇报
- 学校三年发展规划落实情况评估报告(通用3篇)
- 术后谵妄演示课件
- 人教版二年级数学上册第六单元《表内乘法(二)》单元分析(学校集体备课)
- 课件:幼儿园中小学防拐骗安全教育主题班会必备
- DB12-T 1145-2022牛粪卧床垫料生物安全管理规范
评论
0/150
提交评论