基于Unity3d引擎的ACT游戏设计与实现.docx





《基于Unity3d引擎的ACT游戏设计与实现.docx》由会员分享,可在线阅读,更多相关《基于Unity3d引擎的ACT游戏设计与实现.docx(39页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、摘要从游戏诞生之始到现在,游戏市场就发生了非常大的变化,从卡带的游戏机到现在的电脑,专门的游戏主机等。在此之中,像素游戏是一个很重要的过渡期,像素图由于占空间少,颜色少,所以在最初阶段的电子计算机上时代中,就被采用来作为制作游戏的标准图片形式,因为最开始的游戏处理芯片比较低级,自然不能跟如今的3d游戏相比较了,能运行的图片都有严格的颜色和大小的限制。而且图片几乎都是以动态的形式出现的。在如今的游戏开发中,Unity的工具的发明,使能向往游戏开发的人入门游戏开发不再困难。在本课题中,将使用Unity引擎开发像素风格的2d横板动作游戏,其中会复刻多个经典像素游戏中的游戏技能,结合当前火热的Unit
2、y物理引擎,对以前的游戏以当前的技术进行重现,对以后游戏开发的思路有很大的参考价值关键词: 像素游戏 2d横板动作游戏 Unity物理引擎 AbstractFrom the beginning of the game to now, the game market has changed a lot, from the game machine with card to the computer and special game console. Among them, the pixel game is a very important transition period. Because
3、the pixel image takes up less space and color, it was adopted as the standard image form for making games in the early era of electronic computer. Because the first game processing chip is relatively low-level, it cant be compared with todays 3D games, and the pictures that can run have strict appea
4、rance Color and size limits. And pictures are almost always in dynamic form. In todays game development, the invention of unitys tool makes it no longer difficult for people who can yearn for game development to start game development. In this project, we will use unity engine to develop 2D board ac
5、tion game with pixel style, in which we will copy the game skills of several classic pixel games, and combine the current hot unity physical engine to reproduce the previous games with the current technology, which has great reference value for the future game development ideasKey words: pixel game
6、2D board action game unity physical engine目录1. 研究课题及意义12. 游戏的设计工具23. 游戏详细设计33.1设置游戏场景地地图33.2Tilemap部分其它工具43.3利用Tilemap开始进行地图制作43.4制作动画53.5制作玩家的控制方式(安卓控制脚本开发)53.6创建角色的摄像机63.6.1 角色跟随功能的实现63.7开发玩家主角的各种状态73.7.1 地面状态73.7.2 设置多段跳(二段跳)83.7.3 墙壁滑动状态83.7.4 玩家向前跳103.7.5 二段跳跃和蹬墙跳跃113.7.6 墙角攀爬系统123.7.7 玩家前冲残影效果
7、143.7.8 玩家攻击系统163.8敌人系统173.8.1 稻草人模型173.8.2 野猪模型203.9游戏的小地图(Minimap)233.10对话系统243.11玩家的触碰敌人受到伤害和玩家死亡后的重生系统253.11.1 重生系统263.12辅助工具Gizmos274. 开发总结295. 参考文献306. 致谢311. 研究课题及意义动作游戏(Action Game)是游戏中的一种。它强调玩家的反应能力和手眼的配合。以游戏机为主、电脑为辅。动作游戏的剧情一般比较简单,主要是通过熟悉操作技巧就可以进行游戏。这类游戏一般比较有刺激性,情节紧张,声光效果丰富,操作简单。在动作游戏中,在FC游
8、戏家用机的时代中,有一些比较著名的作品,如高桥名人的冒险岛,松鼠大战等的游戏横板游戏作品,以引人入胜的剧情和巧妙地关卡设计,成为了8090年代地难忘的游戏之一,在现在的PC游戏作品中,动作游戏的优秀作品更是数不胜数,如StudioMDHR开发的游戏Cuphead,在在正式发售后大约一个月,这部作品销量就已经突破了百万大关,并达到了与星露谷物语Undertale饥荒等相当的水平,如今这款游戏已经成功登陆多个平台,成为最炙手可热的游戏作品之一。还有Team Cherry开发的空洞骑士,这是一款画面清新,难度挑战的动作冒险游戏,里面丰富的关卡设计和适中的难度,吸引了很多玩家为之疯狂。虽然现在各种mo
9、ba游戏和射击游戏类的网游很多,但是在动作游戏从诞生至此,虽然不算是非常炙手可热,但是经过了多年依旧魅力不减,主要的玩家群体是有很多玩家愿意通过自己的探索,自己去进行游戏的探险,而不是与他人合作,这类游戏对于玩家来说就是对游戏作品的敬仰,对游戏开发者来说就是智力与创造力的挑战动作游戏的分类其实有很多,而本次研究课题是动作游戏中的横板闯关游戏,在游戏中,玩家通过控制主角用武器去攻击敌人,消灭敌人以过关的游戏,在游戏中,将运用到游戏AI常用到的有限状态机框架去开发,这种框架在其他的一些游戏中非常常见,运用这个框架能使敌人AI更具有智能性,使游戏更具趣味,研究这个课题的目的是在于能运用自己所学的知识
10、,开发出一个完整的游戏。为以后自己能力的提升提供一个踏脚石。2. 游戏的设计工具游戏的设计工具有编程工具Microsoft Visual Studio2017,图片绘制工具photoshop,游戏引擎工具Unity3d编程工具Visual Studio2017: Microsoft Visual Studio是VS的全称。VS是美国微软公司的开发工具包系列产品。VS是一个基本完整的开发工具集,它包括了整个软件生命周期中所需要的大部分工具,如UML工具、代码管控工具、集成开发环境(IDE)等等。在Unity与Visual Studio的关系中,在旧版本Visual studio2015以前是难以
11、支持Unity的开发的,知道Visual studio2015中新增了Visual Studio Tools for Unity插件,给Unity的程序开发工作提供了支持,时至现在,在Visual studio2017版本已经是完全支持Unity3d的程序开发了,在Visual studio2017版本中能够快速找到Unity3d的脚本组件,为Unity3d的程序开发提高了效率。图片绘制工具photoshop:Adobe Photoshop,简称“PS”,是由Adobe Systems开发和发行的图像处理软件。 Photoshop主要处理以像素所构成的数字图像。使用其众多的编修与绘图工具,可以
12、有效地进行图片编辑工作。至今在各个领域中活跃着,如平面设计等,在2d游戏的开发中,必然少不了的是游戏素材,使用Photoshop能快速地绘制我们所需的2d游戏素材,在Adobe Photoshop中能导出多种格式的图片,在Unity3d中都能很好地支持。游戏引擎工具Unity3d:Unity3D是由Unity Technologies开发的一个让玩家轻松创建诸如三维视频游戏、建筑可视化、实时三维动画等类型互动内容的多平台的综合型游戏开发工具,是一个全面整合的专业游戏引擎。使用Unity3d可以创建属于自己地2d和3d游戏,Unity3d内部有很多功能丰富的API,能很多地满足了游戏开发人员的各
13、种开发需求。而且Unity3d是完全基于.net环境的,c#语言对其有很好的支持。 3. 游戏详细设计本详细设计将对游戏中重要的,复杂的逻辑进行详细讲解,具体详细地讲解游戏中各种逻辑地实现,为后续希望开发同类游戏的开发者提供借鉴与参考。3.1 设置游戏场景地地图由于2d游戏的地图是采用sprite精灵图片,由于手动摆放地图图片十分浪费时间,而且难以保证图片之间是否存在缝隙,地图由于是不规则形状,为地图设置碰撞器也是十分困难,而且十分耗费时间的事情。使用Unity系统自带的tilemap地图构建系统,这个新功能是Unity2017.2以及以上版本提供了这样的新功能,这个新功能代替了传统的2d游戏
14、地图的制作方式,大大提高了开发人员制作游戏地图的速度。首先,介绍一下Tilemap的基本概念,Tilemap用起来其实就和现实中画画一样,它由以下五个基本部分组成:Sprite(精灵):纹理的容器。大型纹理图集可以转换为精灵图集(Sprite Sheet)。Tile(瓦片):包含一个精灵,以及二个属性,颜色和碰撞体类型。使用瓦片就像在画布上画画一样,画画时可以设置一些颜色和属性。Palette(调色板):当你在画布(Canvas)上画画时,会需要一个位置来保存绘画的结果。类似地,调色板(Palette)的功能就是保存瓦片,将它们绘制到网格上。Brush(笔刷):用于将画好的东西绘制到画布上。使
15、用Tilemap时,可以在多个笔刷中任意选择,绘制出线条、方块等各种形状。Tilemap(瓦片地图):类似Photoshop中的图层,我们可以在Tilemap上画上Tile。只有有了Tilemap的工具,开发人员就可以根据美术素材,快速进行2d场景地图的绘制了3.2 Tilemap部分其它工具Grid(网格):用于控制网格属性的组件。Tilemap是Grid的子对象。Grid类似于UI Canvas(UI画布)。Tilemap渲染器(Tilemap Renderer):用于控制Tile在Tilemap上的渲染,控制诸如排序、材质和遮罩等。3.3 利用Tilemap开始进行地图制作有了上面的理论
16、之后,就开始进行实际的地图制作了实现点击window菜单按钮,打开2d-tilepalette,打开调色板,创建一个新的调色板,命名为Tile Set1,把素材用的精灵图片拖到调色板上此时在层次面板上,点击右键2d Objecttile Map,创建出一个Gird 节点的物体在Gird节点下创建游戏需要的地板,背景和其他的一些装饰等的一些Tile map节点,分别命名为Platforms,Background,Decoration,Foreground Decoration点击Platforms,同时在调色板面板上的Active Tilemap这里选择Platforms,点击笔刷工具,开始绘制
17、地板点击Gird节点的Background节点,同时在调色板面板上的Active Tilemap这里选择Background,这里虽然之前绘制了Platform的Tilemap,但是只要在Active Tilemap选择了另外的层之后,就不会影响之前的Platform。 由于绘制了多层的Tilemap之后,而且tilemap和图片一样,都有绘制的顺序的,要考虑到Tilemap之间的渲染顺序,所以,在每个Tilemap的Tilemap renderner组件的Additional Settings的sorting layer中,为每个Tilemap添加对应的sorting layer。因为主角必
18、须在地上行走,所以为地板和墙壁的Tile map添加碰撞体,虽然tilemap本质上是精灵图片,可以加盒子碰撞器,但是按照传统的盒子碰撞器的添加方法,效率不高,所以,采用的是Tilemap独有的碰撞器添加方法添加Tilemap collider2d,但是这种方法为每个tilemap的格子都添加盒子碰撞器,会消耗大量资源,因此,再为这个tilemap添加一个Composite Collider2d,这种碰撞器会根据Tilemap的形状计算,压缩一些不必要的Tilemap 碰撞器,只要在Tilemap collider2d组件上,Used By Composite勾选,Composite Coll
19、ider2D才会生效但是,在设置完后,运行游戏发现游戏的地板和墙壁掉下来,于是将地板和墙壁的Tilemap的2d刚体设置为Static,因为地板和墙壁是不会动的3.4 制作动画将玩家各个动作的序列图拖到层次面板上,将产生的动画文件保存到Animatons的文件夹下,将野猪和稻草人的各个动作各个动作的序列图拖到层次面板上,将产生的动画文件保存到Animatons的文件夹下,3.5 制作玩家的控制方式(安卓控制脚本开发)本游戏是支持pc平台以及安卓平台的,pc平台主要是通过键盘按键输入实现对玩家的控制,而安卓平台是通过屏幕的触摸检测,通过按下手机屏幕设置的UI按钮实现对玩家的控制,本小节介绍如何设
20、置手机上的UI,实现对玩家的输入。本小节的核心思路是通过触摸插件EasyTouch,对玩家的输入进行操作由于已经导入了Easytouch插件,所以在层级面板上,就像普通的UGUI创建组件一样,右键创建Easytouch ControlsButton,创建出左右键,和攻击跳跃等按键。又因为需要脚本挂载的游戏物体,所以在层级面板上,创建一个空物体scripts,在这个脚本上,挂载一个Mobilescrpts在这个脚本中,编写玩家移动的方法,编写玩家攻击跳跃等的方法在玩家控制脚本上,使用下面的两套预处理模板,分别处理当游戏在安卓平台上运行移动攻击逻辑和当游戏在标准windows平台上运行时的玩家移动
21、攻击逻辑,这样就能实现无论是在windows平台或者是安卓平台,游戏都能运行。#if UNITY_ANDROID 安卓代码运行处#endif和#if UNITY_STANDALONE_WIN windows标准平台运行处#endif3.6 创建角色的摄像机由于游戏是采用2d的游戏模式,玩家移动时候需要有一个摄像机进行玩家移动跟随。在Unity的Package manage中,内置了一个Cinemachine的插件,CineMachine能创建各种类型的摄像机,非常适合在本项目中使用。同时,CineMachine还提供了多种功能让我们方便实现游戏中的其他功能。由于本项目是2d游戏,在菜单栏中,点
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 Unity3d 引擎 ACT 游戏 设计 实现

限制150内