基于unity3D变装系统的RPG游戏的设计与开发毕业论文.docx
《基于unity3D变装系统的RPG游戏的设计与开发毕业论文.docx》由会员分享,可在线阅读,更多相关《基于unity3D变装系统的RPG游戏的设计与开发毕业论文.docx(42页珍藏版)》请在冰豆网上搜索。
基于unity3D变装系统的RPG游戏的设计与开发毕业论文
---文档均为word文档,下载后可直接编辑使用亦可打印---
摘要
随着人们生活水平的提高,追求精神生活则成为必然需求,而游戏则是精神生活的一部分,伴随着第三次科技革命的到来,科技的发展进步,使众多游戏开发引擎应运而生,其中,unity3D则是一个较为流行且优秀的游戏开发引擎,有了这款开发引擎,可以满足人们玩游戏的精神生活需求。
在众多游戏中,游戏可分为:
角色扮演类、射击类、动作类、冒险类、休闲类、音乐类游戏等。
角色扮演游戏(Roleplayinggame),简称RPG,是一种玩家扮演某个角色在一个写实或虚构世界中活动的游戏。
而RPG变装游戏则是更换玩家控制游戏人物的头发、衣服、裤子、裙子、裤袜、鞋子、手套等。
通过个性化的搭配,玩家可以搭配出漂亮且喜欢的服装给游戏人物,丰富玩家的爱美需求。
添加游戏战斗模块,增加游戏的刺激性和趣味性。
Unity3D作为一款快速开发的引擎,我们将一起探究基于Unity3D的变装游戏的设计与开发,它是区别于2D变装游戏,是一款3DRPG变装游戏,玩家在选择好自己喜欢的服装搭配之后进入游戏,在游戏中,玩家共有3个技能,不同的技能攻击伤害是不一样的,玩家可利用技能攻击,杀死敌人,游戏攻击属性多元,绚丽的粒子特效给玩家带来刺激的体验。
由于现在人们忙碌和疲惫的生活下,一款卡通人物形象的动漫风设定手法,更加受青少年喜爱,游戏屏弃杀戮、血腥、外表暴露的游戏特性,采用清新、唯美、可爱的游戏人物风格,更加适合青少年消遣。
文章主要描述游戏人物的变装原理及玩法,还有游戏设计与实现以及游戏的测试。
关键词:
Unity3D3D技术变装类游戏游戏技能
Abstract
Withtheimprovementofpeople'slivingstandards,thepursuitofspirituallifehasbecomeaninevitabledemand,andgamesarepartofspirituallife.Withtheadventofthethirdtechnologicalrevolution,thedevelopmentofscienceandtechnologyhasmademanygamedevelopmentenginescomeintobeing.Unity3Disamorepopularandexcellentgamedevelopmentengine.Withthisdevelopmentengine,itcanmeetthespirituallifeneedsofpeopleplayinggames.Inmanygames,gamescanbedividedinto:
role-playing,shooting,action,adventure,leisure,musicgames,etc.Role-PlayingGame,orRPGforshort,isagameinwhichaplayerplaysaroleinarealisticorfictionalworld.TheRPGdraggamereplacesthecharacters,clothes,pants,skirts,pantyhose,shoes,andglovesofthecharacterstheplayercontrols.Throughpersonalizedmatching,playerscanmatchbeautifulandfavoritecostumestothegamecharacters,enrichingtheplayer'sbeautyneeds.Addagamecombatmoduletoincreasetheexcitementandfunofthegame.
Unity3Dasafastdevelopmentengine,wewillexplorethedesignanddevelopmentofthecross-dressinggamebasedonUnity3D.Itisdifferentfromthe2Dcross-dressinggame.Itisa3DRPGcross-dressinggame.Playersarechoosingtheirfavoriteclothing.Afterthematch,enterthegame.Inthegame,theplayerhasatotalof3skills.Differentskillsattackdamageisdifferent.Playerscanuseskillstoattack,killtheenemy,thegamehasmultipleattackattributes,andthegorgeousparticlespecialeffectsbringstimulationtotheplayer.Experience.Duetothebusyandexhaustedlifeofpeoplenowadays,ananimestylesettingmethodforcartooncharactersismorepopularwithteenagers.Thegamescreendiscardsthegamecharacteristicsofkilling,bloody,andexposedappearance,andadoptsafresh,beautiful,andlovelygamecharacterstyle.Moresuitableforyoungpeople'spastime.Thearticlemainlydescribesthegamecharacters'cross-dressingprinciplesandgameplay,aswellasgamedesignandimplementationandgametesting.
KeyWords:
Unity3D3DTechnologyCrossovergamesPlayerskills
第一章引言
1.1选题目的及意义
随着科学技术的不断进步和发展,人们生活水平的提高使个人电脑和网络得到了有效普及,各式各样的游戏也相续迸发。
游戏能给人们带来什么样的生活意义?
首先,游戏给人们带来的是压力的释放,现代人的快节奏生活,忙碌的生活易于产生焦虑和压力,而游戏应用的诞生给业余生活增加了生活的乐趣。
其次,RPG变装游戏是目前比较流行的游戏类型之一,一般大型游戏中都会有变装系统,这也是很多游戏获得收益的来源。
使用Unity3d开发,可以让玩家对游戏人物、建筑等进行三维观看,有很好的视觉效果。
RPG变装游戏可以改变玩家使用的人物形象,给游戏人物头部,身体和四肢的这些部位佩戴不同的配饰,如发型、头饰、武器、衣服、翅膀等,通过改变人物形象来提高游戏的可玩性和趣味性。
通过改变人物形象,提高游戏的可玩性和趣味性。
其次也可通过改变相应的配饰,折射出了玩家内心世界,也就是说玩家有一部分心理或行为是想要改变的,通过游戏可以缓解一部分想要改变又暂时不想或不能改变的焦虑。
1.2RPG变装游戏发展历程
RPG是一个有着悠久历史的游戏类型,它可以追溯到公元前,因为当玩家扮演某个角色来执行某个动作时,此时游戏就可以定义为RPG游戏。
20世纪70年代,随着人类社会的进步和发展,在电子游戏中存在着黑白图形的游戏界面,非常简单,但在那时候,RPG的基础框架就有了雏形,在九十年代的时候,游戏引擎的诞生,为RPG游戏的发展注入的新鲜的血液,在那之后,RPG的游戏种类出现各式各样,ARPG也是在RPG的基础之上的诞生的。
RPG可以与冒险、射击等类型的游戏相结合,形成一种新的游戏模式。
显然,变装游戏和RPG的结合也因此产生,例如1998年《塞尔达传说:
时之笛》就运用了RPG与变装相结合,该游戏受到众多玩家的喜爱。
直到现在,RPG变装游戏也一直受诸多玩家喜欢。
1.3Unity3dRPG变装游戏研究现状
Unity3D是近年非常受欢迎的游戏开发引擎,目前科学技术高速发展,很多高科技人才选择了做Unity游戏开发行业。
目前Unity3d开发人员供不应求,Unity3d游戏开发成本低,市场前景十分广阔,是游戏业界关注的一个领域。
由于Unity3d人才的缺乏和社会需求量大导致了这方面人才的价值上涨,所以前景和工资也是相当乐观的,这使得Unity3d发展的越来越好。
运用Unity3d开发变装游戏,人物变装系统通常模拟一个三维的虚拟变装空间,给玩家一个三维变装环境,有独立的场景、服装、饰品、道具等模拟设计,让用户在系统中个性化装扮自己,是实现网络游戏人物多样化的主要环节。
在人物变装系统中可以看见,游戏服装的发展紧跟现实服装潮流,例如《绝地求生》游戏中的服装,游戏玩家喜欢这类服装,促使部分玩家购买现实版游戏服装。
可见,游戏变装系统对游戏玩家是间接影响的,它有一定的商业价值。
1.4课题研究内容
本文主要介绍一款变装游戏的设计及实现
第一章:
引言
阐述笨课题研究目的、意义以及研究发展现状,本文的研究重点及主要内容。
第二章:
Unity3D变装游戏系统相关技术与概念
阐述Unity3D引擎、使用软件、架构设计
第三章:
游戏策划及可行性分析
概述游戏系统以及游戏开发的可行性分析
第四章:
变装系统的设计与实现
阐述变装系统的前期设计、变装系统的实现
第五章:
动画系统的概念及实现
介绍动画系统以及动画系统的实现
第六章:
战斗系统的实现
第三人称视角移动和旋转、鼠标点击特效及技能特效的实现、AI敌人的实现、碰撞检测、血量制作与实现、技能伤害表、玩家敌人受伤减血、玩家补血、TAB键弹出换装界面、敌人玩家死亡
第七章:
游戏测试
测试环境、测试用例及结果
第二章Unity3D变装游戏系统相关技术与概念
2.1Unity3D游戏引擎
2.1.1Unity3D简介
Unity3D是什么?
喜欢制作独立游戏的人可能已经听说过Unity,这是由UnityTechnologies开发的,开发者可以很容易地创建一个多平台的游戏,其中包含3D视频游戏、建筑可视化、实时3D动画等多种交互内容,在小型开发项目中开发人员最喜爱的就是它了,虽然存在许多其他3D引擎,但是Unity3D是最简单、易上手的引擎,它是一个具有跨平台的3D游戏开发引擎,为新手提供最友好的用户体验,支持Android、ios、windows、WebGL开发,而且还支持制作VR游戏。
对于专业游戏开发人员来说它是足够使用。
例如武士系列、城堡勇士、蒸汽之城、绝代双骄、炉石传说、神庙逃亡等都是在Unity3D上开发的。
2.1.2Unity3D模块介绍
1)Unity3D基础操作模块:
(a)导航菜单:
新建场景、导入导出素材、保存场景和打包游戏等。
(b)工具栏:
主要操作场景中对象。
(c)Hierarchy视图:
场景中的所有物体对象都在这里,显示物体之间的层级关系。
(d)Project视图:
本地的资源就存在这里,可以增加、删除资源。
(e)Inspector视图:
查看和修改物体属性。
(f)Scene视图:
展示工程项目中的物体。
(g)Game视图:
显示运行时的游戏制作效果。
2)物理引擎:
Unity游戏物体引擎,不需要自己写代码来模拟虚拟世界中的物理效果,只需要通过几行已经写成集合的代码,
3)基于C#脚本开发:
开发游戏的核心就是脚本,脚本的作用主要时控制游戏中的物体、动画、摄像机、界面等。
4)GUI界面:
每个游戏都有自己独特的界面设计,例如:
玩家引导、主界面等,UI界面可以处理用户交互。
2.1.3Unity3D脚本开发基础知识
1)Tag标签的作用是标识,在同一类物体中,可以设置成统一标签,通过Tag标签查找,可以查找到N个物体。
2)Unity中对象SetActive()方法,需要初始化false,然后再利用GameOblect.Find(“对象名”)方法是找不到隐藏对象的,需要先找到父物体,然后再根据父物体利用transform方法就可以查找游戏的隐藏对象。
3)Unity3D脚本中常用方法:
Awake方法:
脚本实例时被调用
OnEnable方法:
对象被激活状态时被调用
Start方法:
该方法实在加载游戏场景的时候被调用
Update方法:
该方法会在执行每帧之前被调用
FixedUpdate方法:
该方法是执行物理行为的时候被调用
OnGUI方法:
处理OnGUI事件
OnGestroy方法:
对象销毁时调用
2.23DsMAX软件
3dsMax是一款功能强大的3D建模设计软件,渲染逼真的3D模型和动画,主要基于多边形建模,和其他动画程序相比,多边形建模在游戏制作中使用更广,因为游戏制作对模型的面数是有高度特定控制的。
它具有非常人性化的界面,还可以用于管理动画中的专业项目。
最出色的功能之一就是添加插件功能,从而极大的提高了工作效率。
2.3Photoshop软件
Photoshop是在1987年诞生的,由Thomas和JohnKnoll两人发开,是一款平面图像处理软件。
可以编辑图片的颜色和形状,添加文本以及做出各种各样的图像效果,它是为专业设计师制作的,它需要很高的性能,PS能进行图像校正和调整,裁剪图片,添加图层等功能。
主要用于网页设计、图像处理、三维动画、广告设计、彩色印刷以及影像特效制作等众多领域,已成为国际平面设计的标准技术。
2.4VisualStudiocode软件
Visualstudiocode是一款轻量级源代码编辑器,但是如果搭配插件使用的话,可以和VisualStudio的功能一样强,可在Windows、Linux、MacOS上运行,支持Unity的调试功能,而且支持智能提示,开发人员在开发过程中出现了代码错误的时候,它能定位到具体位置,还有各种方便的快捷键,软件开源并且免费使用。
第三章游戏策划及可行性分析
3.1游戏系统概述
该项目是基于Unity3D引擎开发的变装游戏,游戏模式可分为两种,一种是单机模式,一种是联网模式,本次开发的是单机模式,游戏的玩法是玩家在进入游戏前选择发型、衣服、裙子、手套、裤袜、鞋子、眼睛等,然后搭配好个人喜欢的服饰,确定进入游戏。
游戏功能有玩家可通过左键点击地面,人物移动到指定位置并有粒子效果显示点击位置,鼠标右键控制视角,玩家技能系统、敌人AI系统、战斗系统、回血站点、按Tab键显示换装系统、游戏结束等实现组成。
3.2可行性分析
3.2.1技术可行性
Unity3d引擎具有UGUI界面、物理系统、事件系统、粒子系统、还有AI系统,而本次游戏开发的变装功能的实现,使用UGUI中的Toggle和OnChangeValue实现的。
游戏在碰撞和攻击的时候,需要用到碰撞器,物理系统提供碰撞检测函数。
在玩家发动技能的时候,发射的粒子,可以通过粒子系统制作。
敌人的运动和巡逻有动画状态机和AI系统可以实现,血条的增减可以通过UGUI完成。
现今所需的所有功能Unity3D引擎足够支持。
所以本次开发制作技术方面可行。
3.2.2经济可行性
Unity3D引擎支持跨平台开发,支持Windows系列、Linux系列等操作系统的开发,制作好的游戏直接就可以导出exe文件在本地生成,玩家只需要复制一份到本地电脑就可以运行体验,所以不存在网络成本。
如果需要在苹果或者安卓系统中体验,Unity3D引擎的优势突出,开发人员不用开发多个版本,就可以实现多平台开发,开发成本降低,并且效率高,因此经济上可行。
3.2.3社会可行性
在金钱社会的影响之下,在如今的部分游戏有以下特征:
血腥、杀戮、外表暴露,例如:
《毁灭战士3》、《美人三国》、《女王之刃》等游戏,这些游戏对于青少年的身心健康发展具有相当大的影响,而这款变装游戏都不具备这些特性,这款游戏采用卡通人物形象动漫风设定手法,游戏人物风格清新、唯美、可爱,更加适合青少年娱乐。
因此游戏开发在社会上可行。
3.3游戏架构设计
下图3-3-1所示为游戏架构设计图:
图3-3-1游戏架构
第四章变装系统的设计与实现
4.1变装系统的前期设计
4.1.13DSMAX制作人物及服饰
在3DSMAX中新建一个长方体,将其转化为可编辑多边形,然后在“修改”点击多边形,通过编辑多边形,如插入顶点,挤出、倒角插入、收缩、扩张等属性,完成对人物身体的建模,然后再使用镜像工具,完成对身体另一半的建模。
然后再给人物增加贴图,制作完成的人物模型如下图4-1-1所示。
图4-1-1人物模型
同理,头、头发、衣服、裤袜、鞋子也是采用同样的方式进行建模,最后把模型全部集中在一起。
制作完成的服装模型如下图4-1-2所示。
图4-1-2人物服装
4.1.2骨骼动画的原理
在新建好人物及服装之后,模型是不能直接动起来的,需要给模型绑定骨骼,事实上,可以不需要给人物增加骨骼,人物也一样可以运动,可以在关键帧里修改模型的顶点位置信息,这样人物就会跟着一起运动,但是,这种方式有一个缺点,就是效率低,如果需要制作一个复杂的动画,那么这种方式将会被淘汰掉。
因此,就产生了骨骼+蒙皮的制作方式,它是通过将皮肤上的点转变成空间上的点,然后通过平移、旋转缩放把骨骼移动到新位置,再根据骨骼的新位置计算皮肤上的顶点的位置。
如果一个顶点被多根骨骼影响,就需要使用顶点混合计算新的坐标点,而蒙皮就是为了把皮肤新的坐标点跟对应骨骼关联。
至于怎么关联?
每个顶点在骨骼上都有一个标号,然后在皮肤上受哪几根骨骼的影响还有受权重的影响有多大决定的。
4.2变装系统的实现原理
Unity3D变装系统,有各式各样,但是这个变装系统采用的是Unity3d动态变装,这里需要一些服饰和变装的思路。
这里的变装不是单纯的换衣服裤子的颜色,而是更换衣服和裤子的款式。
谈到变装,很多游戏都有换装系统,包括一些很火的手游,例如王者荣耀、阴阳师、永远的七日之都、模拟人生,游戏的种类不一样,换装的原理也也是会有所不同。
2D变装与3D变装有着很大差别,2D的换装需要大量图片来实现,而3D变装则不用,3D的换装需要用骨骼动画来实现。
先把资源导入Unity,把人物模型拖到渲染器上,模型是一个白模,需要把贴图拖到人物身上,游戏人物组件只有一个Transform,骨骼多大表示是通过位置信息来表示的,找到对应部分的模拟,把对应的材质加到里面去。
骨骼一直在动,它的位置信息也在不断发生改变,之所以会动着动着就停下来了,是因为没有勾选loop。
SkinnnedMeshRenderer是蒙皮网格渲染器,主要用来渲染人物的,里面包含三大部分,包含网格、骨骼、还有材质。
勾选上,隐藏,就是换装的原理。
动态的话,要换骨骼,如果是静态的话,换掉Mesh就可以了。
4.3变装系统的实现步骤
1)换装的场景搭建,首先需要在场景中带有girl所有部位的模型,命名为lookhand-1,子物体中有15种头发,11件上衣,7副手套,11套短裙,8双裤袜,8双鞋子,9套长裙,1双眼睛,把这些模型的skinnedmeshreaderer存储到模型里面。
然后还要一个空的骨骼,命名为lookhand-1Target,还是girl的模型,但是需要把skinnedmeshreaderer全部删除掉,只留骨骼。
一些服饰是通过代码生成的。
新建一个文件夹命名为Resources,把lookhand-1和lookhand-1Target做成预制体放入Resources中,通过寻找Resources中的物体,生成到游戏场景中。
把换装的房间模型导入游戏场景中,调整房间好与lookhand-1的位置。
2)换装骨骼的加载:
将lookhand-1中的所有skinnedmeshreaderer的信息存储到字典里。
存储的方式是通过部位的名字加编号,所以模型部位在命名之前就需要命名好。
新建一个字典,使用一个字典是存储不了的,字典通过键值对来查找信息,键是唯一的,值是不唯一,这里使用的嵌套字典来存储位置信息。
另外有一套transform类型的骨骼信息,用来做骨骼绑定。
初始化游戏信息,生成资源游戏物体,生成出来之后隐藏。
骨架的加载也是同样的方式。
如下图4-3-1所示:
图4-3-1骨骼加载
3)换装信息数据的存储:
遍历所有子物体,然后把子物体的名字进行拆分,进行存储,然后生成对应的部位信息,且只生成一次。
如下图4-3-2所示:
图4-3-2换装信息存储
4)换装逻辑的实现:
换装的实现就是换材质球、换Mesh、换骨骼,ChangeMesh中有两个参数,通过girlData可以传入一个部位的名字,以及这个部位所对应的编号,然后取出skinnedmeshrenderer去替换当前lookhand-1Target的skinnedmeshrenderer。
代码如下图4-3-3所示:
图4-3-3更换服装
5)人物加载到动态加载到场景中,初始化骨架让她有mesh、材质骨骼信息,建一个二维数组,二维数组中有part,num,默认穿第一套衣服。
代码如下图4-3-4所示:
图4-3-4动态加载代码
6)游戏面板单选框的制作:
右键新建一个Canvas,在Canvas之下新建添加一个Image,将Image改名为BG,在Image(Script)组件中添加背景图,然后将ImageType改成sliced。
在添加一个Image,名字改为bg,同理BG的步骤,然后再bg下添加hair、coat、gloves、pants、stockings、shoes、outfit、eye、hairPanle。
在hair中再新建一个Image。
如下图4-4-5所示:
图4-3-5变装Image面板
7)点击菜单栏中的不同服饰,显示不同信息:
在hair中添加Toggle组件,然后添加图片以及在OnValueChanged选择函数,其他服饰也同理可得,如下图4-3-6所示:
图4-3-6hair面板
8)更换面板UI图标:
使用UGUI来制作,添加背景图片,让背景图片自适应,增添选项栏,可以选择头发、上衣短裙、鞋子、裤袜、长裙、眼睛。
都添加ToggleGroup组件,在头发中新建Image将名改成hair-1,添加图片,需要15种发型,新建15个Image,在hair-1中新建两个Image,名字分别为bored和ok,添加相应的图片。
如下图4-3-7及4-3-8所示:
图4-3-7hair图片面板
图4-3-8切换图标代码
9)保存换装信息到新的场景:
代码如下图4-3-9和4-3-10所示:
图4-3-9保存信息
图4-3-10加载到game场景
10)添加换装动画,最后,人物在换装的时候,上衣和一整套裙子不能同时使用,需要判断是上衣还是裙子,两者不能同时有,只能存在一个,最