ImageVerifierCode 换一换
格式:DOC , 页数:30 ,大小:24.58MB ,
资源ID:1282915      下载积分:20 文钱
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,省得不是一点点
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.wenke99.com/d-1282915.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: QQ登录   微博登录 

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(毕业论文——基于Unity3D的角色扮演类游戏设计.doc)为本站会员(滴答)主动上传,文客久久仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知文客久久(发送邮件至hr@wenke99.com或直接QQ联系客服),我们立即给予删除!

毕业论文——基于Unity3D的角色扮演类游戏设计.doc

1、基于 Unity3D 的 角色扮演 类游戏设计 学院: 应用科技学院 专业:数字媒体技术 学号: 姓名: 指导老师: 【摘要】 游戏开发行业,随着移动领域的崛起 ,近年来变得越 加火热,各 游戏 开发 公司纷纷投入移动游戏的研究开发,其中 Unity3D和 Cocos2D 两款引擎受到了各 公司的青睐,游戏开发人员 供不应求 。 本文将介绍如何用 Unity3D 引擎开发一款角色扮演类游戏的全过程,其中包含了 Unity3D 引擎使用的介绍、游戏策划及游戏各大功能模块的实现。在游戏策划中将规划整个游戏项目的 背景故事,游戏场景,游戏系统等,为后面实现游戏功能代码打好基石。 在游戏程序开发中,将

2、使用 Unity3D 提供的编辑器结合 C#先实 现游戏流程整个程序框架,然后按照框架流程完成游戏各个模块的功能, 最后将游戏进行 Windows 和 Android 双平台打包调试。 1 前言 1.1 项目背景与设计理念 随便国家的富强,科技的发展,越来越多的人们需要在工作闲时进行娱乐休闲,游戏产业也随之诞生。在 21 世纪的互联网高速发展之期,游戏行业不断壮大,从最早的 红白机时代,再到主机时代,随后 PC 计算机的崛起让游戏行业大放光彩 , 直到近年来 移动领域 的热潮又将手机游戏推向了顶 峰。 在这样的背景下,也越来越多的公司投入的游戏研发中, 不过由于每次开发一款游戏都得重头开始编码

3、,效率低,成本高,所以 游戏设计 者 想如何去复用之前的东西 从 而进行快速发开。 慢慢的,游戏引擎( GameEngine) 问世了,它集成了图形引擎、物理引擎、 碰撞检测系统、音效、脚本引擎、电脑动画 、人工智能、网络引擎以及场景管理等 , 为 游戏设计 者提供各种编写游戏所需的各种工具 ,大大提高了游戏设计者开发游戏的时间和成本 。 1.2 游戏设计方法与实现技术 角色扮演类游戏( Role-Playing Game), 提供虚拟的计算机游戏世界,该游戏世界提供虚拟的游戏角色 供玩家选择并操作,最终使得玩家在该世界实现自己的第二人生为目标。 RPG 框架的设计和研究自 RPG 诞生以来不

4、断进步,至今发展到由引擎技术制作的时代。 RPG 游戏设计 较为复杂, 系统主要以战斗、剧情、任务,交互、装备等系统为主, 其中战斗系统为RPG 游戏设计的核心部分 。 战斗系统 主要 包含: 1、 属性 系统 : 这是游戏中最简单的系统,包括了主角、物品、 NPC、技能、怪物等各自的属性值,通过属性值可计算出战斗中各种逻辑交互数值。 2、 状态机 系统 : 该系统标志着一个人物或者怪物现处于 什么状态,相对于动作而言,人物是站立中?还是跑动中?还是与敌人打斗中?当然有些状态还是可以同时拥有的 , 这些状态需要在程序中利用不同的变量值来区分。所以战斗规则越多,状态机逻辑也就越复杂,所以在开发过

5、程中需要预先制定好一套方案,否 则在后续开发中将越加 难以维护。 3、 行为 系统 : 该系统决定了游戏的表演方式,每一个动作或者声音的表现都由行为系统来管理。 4、 人工智能( AI) : 该系统主要为了人机交互而生,在战斗过程中,敌人将以怎样的表现和玩家对战,越是强大的敌人,其 AI 设计过程也就越复杂,需要通过不一样的算法结合起来推导出一 套怪物的 AI 指令。 1.3 本项目的设计思路与实现技术 本项目 将 设计 一款角色扮演类游戏, 游戏将采用 Unity 引擎进行制作, 游戏中将实现游戏登录、交互、战斗 、保存等几 大功能,各功能间还包含了 许多与之相依赖的小功能。 项目利用 .n

6、et 下 mono的跨平台编译技术,使用 C#在 windows 环境下进行跨平台开发, 再结合 Unity 引擎提供了强大的API 函数库和渲染引擎技术来实现整个 RPG 游戏的技术实现。 1.4 本项目的主要工作任务 本项目的的主要设计工作包括: ( 1) 设计一款基于移动平台的 RPG 游戏 ( 2) 策划 RPG 游戏各模块玩法及系 统功能 ( 3) 利用 Unity3D 引擎完整的实现游戏所有功能 ( 4) 对最终实现游戏进行打包调试 本项目通过对 Unity3D 引擎的一年的学习,实验了许多的小项目,最后总结了如何利用它来快速开发一款 RPG 游戏,从前期的游戏策划,游戏功能布局,

7、再到游戏的程序框架、功能开发,到最后的打包调式,本文都将通过该实例一一描述。 2 项目介绍 2.1 游戏引擎介绍 Unity3D 是一款 由 Unity Technologies 开发的跨平台游戏引擎 , 该引擎集成了 强大的 可视化 用户编辑器 , 采用了组件式开发 , 使开发者能快速的开发出自己的游戏 。 该引擎 由于可进行跨平台发开,在移动领域崛起时,受到了很多开发者的青睐,现已越来越多的开发者投入其中 ,已成为目前世界上使用最广泛的游戏引擎。 在图形方面, Untiy3D 采用了主流的实时 光照, Lightmapping, 全局光照 GI 等技术 ,使游戏界面更加逼真。 在程序方面,

8、该引擎支持用 C#和原生的 UntiyScript 进行开发, 大大加快了用户开发进度,而且还提供了 AssetStore 商店,让开发者能在里面找到想要的插件, 能快速 实现想要的功能及效果。 2.2 游戏介绍 本文将以中国古代唐朝做为历史背景,利用 Unity3D 开发一款基于移动端的 ARPG 手游 。 游戏类型: ARPG 游戏 平台: Win、 Android 游戏风格:中国古代 游戏玩法 :玩家通过副本战斗消灭敌人获得奖励,还可以通过商店购买等不断强大自己。 2.3 游戏故事 背景 在开发游戏前,制定一个好的背景题材将决定了游戏后期的发展。如何定一个好的故事背景, 需要针对玩家的喜

9、好而决定,好的题材将更喜欢玩家的关注 , 所以好的故事题材将 为游戏 奠定基石。 本文中,制定了近期较为火热的中国古代唐朝题材为背景故事,打造一款即时战斗的 ARPG 游戏,让玩家在游戏中体 验打斗的快感和古典韵味。 2.4 游戏场景 游戏场景作为游戏主要的交互区,它承载了玩家在游戏中的大部分交互,其对游戏的重要性不言而喻。 游戏场景可分为 2D和 3D, 2D 场景都是由一张张图片拼成,效果相比 3D 稍差一些, 3D 给人感觉更真实,仿佛身临其境的感觉。 游戏场景还分为很多种风格,有古风,韩风,欧美风,日漫风,水墨风格等等,该如何去选择这就需要根据题材来决定了。 本文中由于题材定位中国古代

10、,所以场景也为中国古代风格的场景, 其 风格华丽,浑厚庄重,线条平直硬拐,装饰丰富 , 令人感觉心旷神怡 。 图 2.4 ( 1)华丽的长安城 图 2.4 ( 2)华丽的长安城 2.5 游戏角色 一款好玩的游戏、受欢迎的游戏,其中必定有几位受人欢迎的角色,每个角色有着自己独特的性格和能力,更加能被玩家们记住。 那么要创作一些好的角色也不容易,其中有一点很重要,那就是每个角色都要有自己存在的价值 ,形成鲜明的对比 ,要与其他角色与众不同,因为玩家们总是会喜欢独特的那位。 本文中的游戏主角为 一位初出茅庐的道士, 道士途中遇到了各种磨难,消灭敌人,一步步的成长起来。 道士 的武功主要以剑术为主,因

11、为性格较为外向,相信颇受玩家喜爱。 本作中还有另外两位角色,后续还可以继续为游戏添加新角色,从而丰富游戏哦。 图 2.5 帅气的道士 2.6 游戏系统 本文中的游戏功能系统主要为分以下几类 游戏登录 创建角色 背包系统 装备系统 战斗系统 副本系统 商店系统 NPC 系统 数值系统 以上几类为本游戏大致的游戏功能,这些功能在 RPG 类型的游戏中必备的几项, 通过这些功能系统,能够展示出一款 RPG 游戏的核心玩法 。 其中数值系统最为重要,一款好的 RPG 游戏不仅要满足玩家对画面以及功能上的需求,还要满足玩家的虚荣心 。 一款 RPG 游戏是不是好玩,和数值的相关性不是特别大,但是游戏是不

12、是不好玩以及能玩的多深入,和数值的关系就很大了。数值做的不好,在表现层面上是让游戏流程的体验不好,比较容易出现的两个极端是过度的挫折感(练功十年,出门就被小兵秒)和茫然所失的成就感(玩家还没发力, Boss 就扑街了?) ! 所以说,如何巧妙的运用这些数值来构建起整个游戏的可玩性是至关重要的, 得学会如何去根据玩家的需求来构建不一样的数值系统。 3 游戏 程序 框架设计 3.1 游戏核心 本游戏将采用组件式的模式进行开发,不同组件维护着自己相关的功能,不与其他组件进行直接交互, 降低层与层之间的耦合(俗称:解耦), 便于后期维护。本作还将根据 MVC 模式,即数据模型 (游戏数据 )、 视图

13、( UI) 和 控制器( 管理器 ) 来 编写整套逻辑程序。 MVC 模式所带来的优点 : 1、开发人员可以只关注整个结构中的其中某一层; 2、可以很容易的用新的实现来替换原有层次的实现; 3、可以降低层与层之间的依赖; 4、有利于标准化; 5、利于各层逻辑的复用。 数据 : 管理 游戏程序中各种数值数 据 。 视图 : Unity 中的控件都必须继承于 Monobehaviour。 管理器 : 对数据和 UI 进行操作和管理。 本文中的管理器都将继承于 Graduation.Component,这个类是本作者自己写的一个组件管理,利用组件容器将每个管理器加入容器中, 便于对各模块的管理器进行

14、管理和交互。 游戏核心架构: 游戏核心 ( GameCore) (单例) 游戏管理器( GameManager) : 场景管理器 ( SceneManager) 数据管理器( DataManager) 资源管理器( ResourceManager) UI 管理器( UIManager) 游戏组件 ( Component) : 音效管理器( SoundManager) 网络管理器( NetManager) 配置管理器( ConfigManager) 逻辑管理器( LogicManager) 动画管理器( AnimationManager) 游戏启动流程: / 启动游戏 . / 1.加载配置表 I

15、nitConfig(); / 2.加载组件 InitComponent(); / 3.加载游戏资源 InitResource(); / 4.初始化网络模块 InitNetwork(); / 5.进入游戏 EnterGame(); 图 3.1 游戏核心框架流程图 为了游戏开发中的方便使用,作者在开发前已经封装好了一整套常用工具库,工具库大致包含:文件读写工具类 ,数值计算 工具类, UI 工具类 ,序列化工具类等。 有了这些工具库,在开发中可以更快速编码,省去了频繁写一些常用逻辑的时间。 3.2 游戏 UI 框架 在 Unity3D 早起的版本里, UI 系统在引擎中是较为薄弱的,只能通过 Un

16、ity 提供的一些 API 来实现 UI 的搭 建,但这种方式效率实在太差,改起来也非常麻烦。 由于 Untiy 越加的火热, Unity 的 Asset Store 商店的插件也越来越多,其中 Next-GUI 插件(下文简称: NGUI)最受开发者欢迎,因为其弥补了 Unity 本身的弱点,把 UI 系统变得非常的强大,甚至用完美来形容。使用 NGUI 插件可以让用户通过可视化界面的方式,只要在界面上拖入各种控件、脚本,再结合自己的一些逻辑代码即可完成游戏所需的界面。 在 Unity4.6 版本中, Unity 开发组认识到了 UI 系统的薄弱,随即也在该版本发布了新版 UI 系统( 简称

17、; UGUI) 。它仅吸取了 NGUI 的各种优点,由于 UGUI 属于原生系统,所以性能上会比 NGUI 好很多 ,渐渐的也被开发者所接纳。 在本游戏中,将采用 Unity 最新的 UGUI 系统来完成整套游戏 UI 界面的开发, 并讲述如何来搭建游戏的 UI 框架 ,一套好的 UI 框架 将使后期开发起来更加便捷。 图 3.2 游戏 UI 框架 流程图 UIBase:该类 为所有 UI 脚本 都继承 的基类 ,该类重载了 大多数 MonoBehaviour 函数 , 方便在后期资源管理以及界面动画等进行统一管理 。 UIManager: 该类将 统一 管理所有 UI 界面 的 显示、隐藏、

18、动画、音效, 所以需要显示的 UI 界面都需要通过该类进行注册才能使用,该 类 还提供各种通用 UI 界面,例如消息框,提示框,输入框,确认选择框等等。 UIUtils: 该类为静态类 ,是 UI 工具库 ,将提供大量功能型函数供 UI 界面使用, 例如一些 UI 对齐, UI 的各种 位置算法 等。 有了以上三大类, 在后续的界面设计中就能轻松的利用他们实现一套完整的 UI 框架,实现每一个功能界面的需求。 3.3 Lightmapping 光照 烘焙 光照烘焙,该技术是指通过计算机计算模拟得到的灯光效果,省去了采用实时灯光所带来的高 消耗。 简单来说就是实时灯光计算十分耗时,随着光源越多会

19、倍增计算耗时。使用 Lightmap 模拟灯光带来的效果,便不用去计算灯光,会带来性能上的大大提升。当然你不用灯光效果也是没问题的,具体还是看项目需求。最简单的直接在 3dmas 或 maya 里面烘培完贴图顶点色也行。 对于移动手机游戏来说,由于硬件的原因,如果在 3D 游戏中大量的采用实时光照手机的性能是吃不消的,但如果不用实时光照效果又非常差。 所以本文的游戏中将采用 Untiy Pro 版本自带的 Lightmap技术,大大减轻了游戏本身对手机性能带来的开销,而且使 用 Lightmap 的画面效果又 非常 不错 。 首先,先在场景内 ,在合适的位置 打好大量的点光源( Point L

20、ight) ,方向 、 位置 、亮度 这些都需要经过细心的调整 。 图 3.3 ( 1) Lightmapping 的使用 其次, 打开 Lightmapping 面板调节具体的参数。 图 3.3 ( 2) Lightmapping 的使用 由于手游中并不需要太高的画质,所以这里作者调节的光照品质较为一般。 最后,点击 Bake Scene 即可开始场景的烘焙,烘焙需要等待一段时间。 看看烘焙后的效果是不是感觉好震撼? 效果丝毫不逊于实时光照。 图 3.3 ( 3) Lightmapping 的使用 3.4 序列化与反序化 3.4.1 序列化介绍 序列化 (Serialization): 将数

21、据结构或对象转换成二进制串的过程 反序列化 (Deserialize): 将在序列化过程中所生成的二进制串转换成数据结构或者对象的过程 这两个过程在游戏开发中被广泛的使用,因为其可以让游戏在跨平台上 方便的 进 行通讯传递 , 把一个完整的对象通过网络发送到终端。序列化还能将一个对象永久的保存在硬盘上,可以用于存储玩家的游戏数据。 本文 中将采用序列化方式来进行玩家数据存储,并在序列化过程中加入了加密解密技术,使得游戏数据不会轻易的被玩家所破坏。 现在主流的序列化方式大致分为 二进制序列化: 二进制序列化的优点是可以精确地控制序列化及反序列化的过程,并可以序列化对象的非公共成员。其序列化过程的

22、速度非常之快 , 而且序列化后的体积小 , 非常适合用来传输实时性较高的应用 。 但因为缺乏标准的协议 , 装拆箱比较麻烦 。 Json 序列化: JSON 起源于弱类型语言 Javascript, 与 xml 相比 , 这种序列化简直是太简单了 , 其只需要通过将变量用一个 key 对应一个 value 即可完成序列化,而且序列化速度比较快,仅次于 Binary方式 。 Xml 序列化: Xml 序列化历史较为悠久了,其缺点太明显了,冗余太大,但拥有的非常高的安全性与可扩展性,所以至今仍被广泛的使用着。 序列化方案的选择: 每种序列化协议都有优点和缺点,它们在设计之初有自己独特的应用场景。在

23、系统设计的过程中,需要考虑序列化需求的方方面面,综合对比各种序列化协议的特性,最终给出一个折衷的方案。 3.5.2 序列化应用 本文中的游戏为了更节省空间和解析效率,采用二进制序列化方式,并对二进制 序列化方案进行了二次封装,可更方便的在游戏中使用。 本文中所有需要序列化的对象都将继承与 SerializeData 类 ,在该类利用 .net 自带的 ISerializable 接口通过 BinaryFormatter 对所有需要序列化的变量进行序列化 并存储 。 附: 序列化与反序列化代码 (见附录) 3.5 表格 配置 数据读取 在游戏开发中,数值模型起到了很大的作用,它将很大程度上决定了

24、游戏的可玩性。那么如何在游戏 开发 中方便的配置数值 使游戏更具可玩性呢? 由于 Unity 自身有着强大的编辑器,开发者可以直接在编辑器上修改变量的数 值从而修改数据模型。但这样的作法看起来很方便,其实还是有很多弊端的 。 首先策划并不见得能很好的使用 Unity 进行数值编辑,其次这种方式需要 程序事先把所有变量都布局好供策划调整,而且中间经常会因为一些特殊的需求而出问题。所以如果在团队开发中,配置表格让策划自己填写无非是最好的方式了,策划只需要关心表中的字段和数值,然后根据游戏实际运行情况调整就行了。 本文将介绍如何用 csv 表格 (逗号分隔表 )进行数值的读取,然后将它配置到游戏中去

25、。 (一)、 用 Excel 制作 csv 表格 图 3.5( 1)制作 csv 表格 为了方 便程序中开发使用,本作者自己制定了一套读取方案。 打开 Excel 表格,填入数值字段及数值。 数据行介绍: 第一行:对应程序代码中的表类型 第二行:数据字段,字段名对应程序中的表类型成员变量,后缀 :s 结尾代表字符串, :a 结尾代表整型数组,如果没有带 后缀的则默认为整型数值。 第三行: 以 # 号开头的行代表这正行的数据作为解释行 ,不进行数据读取。 第四行至结尾:这些行每行的数据都代表着一行数据记录,读取后写入内存中方便调用。 (二)、保存 csv 配置表 选择另存为,选择 CSV(逗号分隔 )类型的文件,修改文 件名为 item.csv,然后保存至文档中。 图 3.5( 2) 保存 csv 表格

Copyright © 2018-2021 Wenke99.com All rights reserved

工信部备案号浙ICP备20026746号-2  

公安局备案号:浙公网安备33038302330469号

本站为C2C交文档易平台,即用户上传的文档直接卖给下载用户,本站只是网络服务中间平台,所有原创文档下载所得归上传人所有,若您发现上传作品侵犯了您的权利,请立刻联系网站客服并提供证据,平台将在3个工作日内予以改正。