动画与游戏设计报告.doc_第1页
动画与游戏设计报告.doc_第2页
动画与游戏设计报告.doc_第3页
动画与游戏设计报告.doc_第4页
动画与游戏设计报告.doc_第5页
已阅读5页,还剩20页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

动画与游戏设计报告 专业: 计算机科学与技术 班级: 计科11-5 姓名: 繆健 指导教师: 张辰 中国矿业大学计算机科学与技术学院 2014 年 06 月 徐州摘 要随着社会经济发展以及人们生活水平的不断提高,尤其是信息技术、数字化技术的逐步普及应用,人们对生活娱乐方式中的游戏与动画的兴趣越来越高,为了方便更多的人不需要从零开始学习动画和游戏,越来越多的游戏引擎诞生在市场上,以其强大的性能给设计游戏提供了便利,这一次通过学习使用unity3d来制作一个自己的游戏,来学习在课堂上学习到的制作游戏所需要的那些流程和要素。关键字:游戏与动画设计、unity3d,游戏引擎abstractwith the social and economic development and the continuous improvement of peoples living standards, especially the gradual popularization of information technology, digital technology, people interested in live entertainment and animation in the game more and more, people do not need in order to facilitate more animation and games to learn from scratch, more and more game engine was born in the market, with its strong performance to the design of the game provides a convenient, this time by learning to use unity3d to create its own game, to learn in the classroom learn to make games that required processes and elements. keywords: game and animation design, unity3d, the game engine目 录1 引言32 游戏策划52.1设计目的52.2设计思路52.3运行环境53概要设计63.1游戏设计63.2.1球面环境映射的纹理坐标123.2.2球面环境映射的应用.134 详细设计84.1 功能模块84.1.1时间模块84.1.2角色模块84.1.3积分模块84.1.1控制模块84.2 关卡设计104.2.1迷宫关卡设计104.2.2跳跃关卡设计144.2.3解码关卡设计154.3打开小屋185总结19附录:部分代码1 引言这次游戏的实现是通过学习使用unity3d来实现的游戏制作,unity是一款易上手而且带有免费开发版本的游戏引擎。游戏引擎是指一些已编写好的可编辑游戏系统或者一些互交式实时图像应用程序的核心组件。这些系统为游戏设计者提供各种编写游戏所需的各种工具,其目的在于让游戏设计者能容易和快速地做出游戏程式而不用由零开始。优秀的游戏引擎通常包含以下系统:l 渲染引擎即渲染器,这部分的主要工作是为游戏游戏开发者提供图像渲染接口,渲染游戏所需的图像,包括二维图像或是三维图像。l 物理引擎引擎的另一重要功能是提供物理系统,这可以使物体的运动遵循固定的规律,例如,当角色跳起的时候,系统内定的重力值将决定他能跳多高,以及他下落的速度有多快等等都是由游戏引擎中物理系统实现,游戏开发者通过调用提供的接口加以展现。l 碰撞检测系统碰撞探测是物理系统的核心部分,它可以探测游戏中各物体的物理边缘。当两个3d物体撞在一起的时候,这种技术可以防止它们相互穿过,这就确保了当你撞在墙上的时候,不会穿墙而过,也不会把墙撞倒,因为碰撞探测会根据你和墙之间的特性确定两者的位置和相互的作用关系。l 音效通常为了让游戏更加真实、趣味,需要在游戏进行中播放一定场景的音乐,游戏引擎中的音效模块则控制了所有游戏中播放音乐的功能。l 脚本引擎、电脑动画、人工智能、网络引擎以及场景管理等不同的引擎,在不同程度上设计实现了脚本等高级引擎模块,能够满足高端游戏对引擎的需求,包括角色脚本的设计、游戏中的动画效果、角色的人工智能、游戏的网络连接、游戏场景的管理等等。引擎还有一个重要的职责就是负责玩家与电脑之间的沟通,处理来自键盘、鼠标、摇杆和其它外设的信号。如果游戏支持联网特性的话,网络代码也会被集成在引擎中,用于管理客户端与服务器之间的通信。图1 unity3d的操作界面在unity中编写脚本代码可以使用javascript或者c#,在我的游戏设计之中我是用的是js编写。2游戏策划2.1设计目的通过本学期对游戏与动画设计课程的学习,老师让我们在课下自己能学习一种制作游戏的方法,我通过网上的视频教程和图书的查看,初步的掌握了unity的基本操作,虽然不娴熟还有待提高,但是一些技术含量较低的小游戏还是很容易让我们掌握的。此次游戏程序设计的目的,主要是通过unity来制作游戏从而更好的掌握一个游戏制作素要的基本要素和流程。通过unity这个平台,熟习unity在制作游戏方面所需要的技巧,将自己的游戏尽可能多的运用所学到的技术,并且将在平时学习的javascrpit知识付诸于实践,并从实际操作中,找出自己的不足之处进行弥补。每一次的课程设计,都是一次小小的软件工程,所以需要我们用百分百的的态度来对待。对于小一点的程序,我们一个人足以应付,但是这并不是说我们可以单独一个人为所欲为,其实质应该是通过课程设计来锻炼自己独立自主的能力。而对于那些相对于麻烦的游戏,正如老师所说,就需要两个或者多个人来共同完成,这便需要他们的协作能力,这样对他们以后进入软件公司发展有了更多的基础。2.2设计思路我这次游戏的名字是“回家大作战”,游戏的主人公是一直被关在透明小球里的老鼠,但由于我不太擅长制作模型,所喜把游戏设置成了第一人称视角,使用了unity里的第一人称控制器,看不见自己模型,游戏中玩家通过控制小老鼠在被遗弃的实验室里需要在一定时间内收集能源找到逃出实验室的方法。2.3 运行环境运行平台:window 7或8 操作系统使用引擎:unity3d使用语言:javascrpit3 概要设计通过上面的介绍,我们可以了解到一点:引擎相当于游戏的框架,框架打好后,游戏设计师、建模师、动画师只要往里填充内容就可以了。“回家大作战”正是一款基于游戏引擎设计并实现的休闲小游戏。游戏引擎游戏设计角色建模游戏动画音效效果回家大作战游戏硬件支持终端(计算机)如上图所示,回家大作战的设计均是在游戏引擎上进行的,在引擎中设计游戏的玩法、关卡,建立角色模型,添加游戏动画、音效等,最终形成飞霖地鼠游戏。游戏设计开发时,并不直接与硬件终端交互,同时游戏成品时,玩家也所有的操作均通过引擎来捕获。31 游戏设计“回家大作战”作为一个冒险解密游戏,因此在设计的时候需要注意到要添加一些有意思的谜题,让玩家有充分的兴致来进行探索,不过也需要给出提示不然让玩家摸不着头脑如何把游戏进行下去也是不行的。在游戏设计中,在限制的10分钟内,一共需要收集4个能量源,能量源如下图1所示,每收集一个能量源就会在游戏界面左下角显示已经收集了多少个能量源,如下图2所示。最终需要进入上锁的小屋内获得离开的物品(当未收集满能量源的时候,门是锁着的,门上的灯是红色,收集满能进入,灯变为绿色),如图3。小屋前面的小箱子上也相应的显示着你收集了多少个能量源,最终拿到过关物体后将跳转到游戏成功结束界面。图1图24 详细设计41功能模块根据上述对游戏的构思,回家大作战的游戏主要分为下列几个模块:时间模块:玩家通关的时间长短,给予评价高低;角色模块:角色移动的规则,射击的规则等;积分模块:也就是能量源收集模块;控制模块:控制游戏流程,判断游戏是否结束。411时间模块本游戏有一个时间限制,初始限制时间是10分钟,玩家在3分钟内过关评分是s,当在5分钟内过关是a,在7分钟内过关是b,在8分半内过关是c,最后一档则是d412角色模块本游戏的主角由于使用的是自带的第一人称控制器,如图4.1所示,图1 第一人称控制器可以看到第一人称控制器是一个胶囊体,在上面有着一个主摄像机(这是游戏必备的要素也就是玩家看到的场景由他来决定),一个声音接收器,还有一个自定义的设计发射器,将来获得了射击能力之后用来射击。射击的实现是通过代码来实现的,利用collider也就是触发器,先定义了一个静态的布尔变量,初始值为false,通过寻找获得设计能力后,值将变为true就能射击了。413积分模块积分的获得就是通过收集能量源(在上文已经展示过),最终的小屋将对积分进行判断,如果积分到达了要求那么小屋的门将可以进行开关。414控制模块这是开始界面,界面中的两个按钮是通过脚本的编写来实现的,其中start利用代码application.loadlevel(basici);(basici是主游戏场景)来实现进入游戏场景。exit则是通过application.quit();来实现了退出游戏。这是成功收集逃离后的界面其中restart和exit代码和游戏开始中的代码一样。当游戏失败的界面如下图,和这个相同就是改了一个后面的贴图42关卡设计在本游戏中,除了开始进入游戏主场景之后有一个能量源是直接在主角面前直接获得的,其余三个能量源都是通过一些解密或者小游戏来实现得到能量源的,一共3个小关卡421迷宫设计关卡图1 迷宫俯视图在这一个小关卡中,玩家会遇到障碍物,这时候就需要在迷宫中寻找到能消除掉障碍物的物体,障碍物和接触障碍物如下图2所示破开障碍物后在迷宫深处有一个射击小游戏,但此时的主人公还没有射击能力,这也需要在迷宫中找到。 图2障碍物和消除障碍物射击能力的获得我把他和射击游戏的场景特地放在了迷宫的对角线上,由于是一只小老鼠我把子弹设计成了坚果,这样觉得更有意思点,子弹和获得设计能力的物体如下图3所示,利用collider当第一人称控制器遇到了这个box之后book上用js编写的脚本上的决定人物是否能够射击的布尔变量变为true,然后在我射击中子弹射出后不能一直存在(1.5秒以后消失,也是通过代码实现的),以为这样如果玩家随意射击那会产生很多个坚果子弹在场景中,这样会影响游戏体验,而且影响游戏运行效果。图3 左边较小的是子弹,右边是获得射击能力的物体接下来就是要通过射击完成小游戏来获得能量源了,射击场景如下图4所示,一共有三个靶子,获得胜利的条件是多次同时击倒这3个靶子之后就能获得能量源,每同时击倒三个一次之后,下次靶子起来的判断时间是会减少0.3秒,靶子的动画是通过分割该模型自带的动画,然后由脚本来控制什么时候运行哪一个动画,3个动画分别是静止不懂的,被击倒的和击倒后恢复的动画,如下图5所示。此外,在这里由于可能是直接到达射击场景而没有获得射击能力,我特地在射击场景旁边添加了一个和射击能力获得物体一模一样的物体,不过通过不同的代码我把它设计成了只要触发了那么玩家将会跳转到迷宫的初始入口,这样让玩家重新跑迷宫,该物体和上述图3中的相同不过是位置的变化所以不再附上图片。 图4射击小游戏场景及射击完成后能量源从右边的凹槽中跳出来图5靶子上的3个动画422跳跃关卡这一小关卡是建立在第一个小关卡的完成后的,场景大致图如图6所示图6 第二小关卡这一关卡的能量源在那些悬浮的木箱上面是一个很高的位置,如果玩家只是拥有初始的弹跳能力的话是不可能获得这个能量源的,这是后需要玩家利用第一个小关卡里获得的射击能力来射击吊在地面上那个阻挡玩家进入角落的木箱。进入角落之后,有一个木板和一个小球,如下图7所示,当玩家才上木工板后悬浮在调控中的木箱会掉落下来阻挡玩家,这是初始弹跳能力也不能跳上木箱,不过这里有一个黄色小球利用这个小球我们将会获得超级弹跳,使我们能够跳上木箱,获得能量源。图7 下落机关和获得超级跳跃的黄色小球图8 触法木板后木箱落下,抬头能看到能量源这样之后就能够利用超级跳跃来获得第三个能量源了。423解码关卡在这一关卡中玩家不需要利用前两个关卡中获得的能力,是一个破解密码的游戏,大概场景如下图9所示,地上有19的地板,玩家要按一定顺序行走来获得最后一个能量源。当然我们在这里不允许随便乱走碰巧走对了密码,因此在代码中使用了一个布尔变量来实现只有在找全全部解密线索后才能触法地板获得能量源,三个线索如下图10所示,有3个箱子,左边一个箱子上的侧面能看到10个数字2134657659,右边有两个箱子被有个侧面也有数字但是被遮挡了,需要在这个场景内获得那个小木块后是一个木箱消失来看到那个数字2610,不难想到我们需要的就是1,5,93个数字啦,接着我们通过走数字地板就能获得能量源了。图9 解码关卡图10 3个线索搜集玩所有的能量源之后我们就可以去那个锁着的小屋进行最后的闯关了,当然这时候不需要玩家在动脑去思考怎么过关了直接过去即可。43打开小屋当我们的能量源没有收集完全的时候妄图进入小屋的话,左上角会有文字提示,说你需要获得更多的能量源来进入小房,如图11所示。图11 未收集满能量源的时候当收集满能量源再来到小屋的时候这时候玩家靠近校门的时候小屋上的灯会变绿,小门会自动打开,设计的时候考虑到人性化,在打开5秒之后小门将会自己关闭,这也是通过先分割小门上的动画,然后设计代码,通过不同的时期来运行不同的动画。图12 收集满能量源后当玩家进入小房后获取房子里面的胶囊体后,整个游戏就会结束了。到此为止,我设计的整个回家大作战第一个大关卡就已经完成了,接下来的关卡需要在以后的时间内能够完善,尽量把自己这第一个作品做好,也算是自己这一段时间学习的见证。5 总结通过半个学期的学习,对于自己选择学习unity还是比较满意的,引擎的强大在于免去了许多不需要的底层代码,通过课堂上的学习和自己课下对回家大作战这个游戏的制作,学会了在unity中充分使用触法器这一组件,可以说这个游戏的大部分功能性的代码都是通过触发器来实现的,与此同时初步学会了游戏设计中的策划,关卡设计等游戏的重要组成部分,比较遗憾的是自己的建模能力有限,没有能够使这个游戏充分的实现成我脑海中所设想的游戏,希望能够在接下来的学习中能够进一步的学习建模,游戏的戏剧性,可玩性,逐渐完善好这一个游戏,加深了对游戏设计理念的理解,同时也增强了内心对游戏设计的信念也是为将来的工作和学习打下一个比较好的基础。此外,这一次的开发设计过程中,让我意识到了平时玩到的一些游戏看似简单但其实制作起来还是相当复杂的,没有足够的功底是不可能完成的。附录部分关键代码:实现小门控制的代码private var doorisopen:boolean=false;private var doortimer:float=0.0;var door_open_time:float=3.0;var door_open_sound:audioclip;var door_close_sound:audioclip;var wenzi_bl:guitext;var wenzi_timer:float=0.0;function update()if(doorisopen)doortimer+=time.deltatime;if(doortimerdoor_open_time)door(false,door_close_sound,doorclose);doortimer=0.0;if(wenzi_bl.enabled)wenzi_timer+=time.deltatime;if(wenzi_timer4.0)wenzi_bl.enabled=false;wenzi_timer=0;function doorcheck()if(!doorisopen)door(true,door_open_sound,dooropen);function door(doorcheck1:boolean,a_clip:audioclip,a

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论