基于Unity3D的三维Web设计毕业设计.docx
- 文档编号:16008922
- 上传时间:2023-07-09
- 格式:DOCX
- 页数:32
- 大小:928.21KB
基于Unity3D的三维Web设计毕业设计.docx
《基于Unity3D的三维Web设计毕业设计.docx》由会员分享,可在线阅读,更多相关《基于Unity3D的三维Web设计毕业设计.docx(32页珍藏版)》请在冰点文库上搜索。
基于Unity3D的三维Web设计毕业设计
学校代码*****学号********
分类号密级
本科毕业论文(设计)
基于Unity3D的三维Web设计
毕业设计(论文)原创性声明和使用授权说明
原创性声明
本人郑重承诺:
所呈交的毕业设计(论文),是我个人在指导教师的指导下进行的研究工作及取得的成果。
尽我所知,除文中特别加以标注和致谢的地方外,不包含其他人或组织已经发表或公布过的研究成果,也不包含我为获得及其它教育机构的学位或学历而使用过的材料。
对本研究提供过帮助和做出过贡献的个人或集体,均已在文中作了明确的说明并表示了谢意。
作者签名:
日 期:
指导教师签名:
日 期:
使用授权说明
本人完全了解大学关于收集、保存、使用毕业设计(论文)的规定,即:
按照学校要求提交毕业设计(论文)的印刷本和电子版本;学校有权保存毕业设计(论文)的印刷本和电子版,并提供目录检索与阅览服务;学校可以采用影印、缩印、数字化或其它复制手段保存论文;在不以赢利为目的前提下,学校可以公布论文的部分或全部内容。
作者签名:
日 期:
学位论文原创性声明
本人郑重声明:
所呈交的论文是本人在导师的指导下独立进行研究所取得的研究成果。
除了文中特别加以标注引用的内容外,本论文不包含任何其他个人或集体已经发表或撰写的成果作品。
对本文的研究做出重要贡献的个人和集体,均已在文中以明确方式标明。
本人完全意识到本声明的法律后果由本人承担。
作者签名:
日期:
年月日
学位论文版权使用授权书
本学位论文作者完全了解学校有关保留、使用学位论文的规定,同意学校保留并向国家有关部门或机构送交论文的复印件和电子版,允许论文被查阅和借阅。
本人授权 大学可以将本学位论文的全部或部分内容编入有关数据库进行检索,可以采用影印、缩印或扫描等复制手段保存和汇编本学位论文。
涉密论文按学校规定处理。
作者签名:
日期:
年月日
导师签名:
日期:
年月日
指导教师评阅书
指导教师评价:
一、撰写(设计)过程
1、学生在论文(设计)过程中的治学态度、工作精神
□优□良□中□及格□不及格
2、学生掌握专业知识、技能的扎实程度
□优□良□中□及格□不及格
3、学生综合运用所学知识和专业技能分析和解决问题的能力
□优□良□中□及格□不及格
4、研究方法的科学性;技术线路的可行性;设计方案的合理性
□优□良□中□及格□不及格
5、完成毕业论文(设计)期间的出勤情况
□优□良□中□及格□不及格
二、论文(设计)质量
1、论文(设计)的整体结构是否符合撰写规范?
□优□良□中□及格□不及格
2、是否完成指定的论文(设计)任务(包括装订及附件)?
□优□良□中□及格□不及格
三、论文(设计)水平
1、论文(设计)的理论意义或对解决实际问题的指导意义
□优□良□中□及格□不及格
2、论文的观念是否有新意?
设计是否有创意?
□优□良□中□及格□不及格
3、论文(设计说明书)所体现的整体水平
□优□良□中□及格□不及格
建议成绩:
□优□良□中□及格□不及格
(在所选等级前的□内画“√”)
指导教师:
(签名)单位:
(盖章)
年月日
评阅教师评阅书
评阅教师评价:
一、论文(设计)质量
1、论文(设计)的整体结构是否符合撰写规范?
□优□良□中□及格□不及格
2、是否完成指定的论文(设计)任务(包括装订及附件)?
□优□良□中□及格□不及格
二、论文(设计)水平
1、论文(设计)的理论意义或对解决实际问题的指导意义
□优□良□中□及格□不及格
2、论文的观念是否有新意?
设计是否有创意?
□优□良□中□及格□不及格
3、论文(设计说明书)所体现的整体水平
□优□良□中□及格□不及格
建议成绩:
□优□良□中□及格□不及格
(在所选等级前的□内画“√”)
评阅教师:
(签名)单位:
(盖章)
年月日
教研室(或答辩小组)及教学系意见
教研室(或答辩小组)评价:
一、答辩过程
1、毕业论文(设计)的基本要点和见解的叙述情况
□优□良□中□及格□不及格
2、对答辩问题的反应、理解、表达情况
□优□良□中□及格□不及格
3、学生答辩过程中的精神状态
□优□良□中□及格□不及格
二、论文(设计)质量
1、论文(设计)的整体结构是否符合撰写规范?
□优□良□中□及格□不及格
2、是否完成指定的论文(设计)任务(包括装订及附件)?
□优□良□中□及格□不及格
三、论文(设计)水平
1、论文(设计)的理论意义或对解决实际问题的指导意义
□优□良□中□及格□不及格
2、论文的观念是否有新意?
设计是否有创意?
□优□良□中□及格□不及格
3、论文(设计说明书)所体现的整体水平
□优□良□中□及格□不及格
评定成绩:
□优□良□中□及格□不及格
(在所选等级前的□内画“√”)
教研室主任(或答辩小组组长):
(签名)
年月日
教学系意见:
系主任:
(签名)
年月日
基于Unity3D的三维Web设计
摘要:
随着网络技术、虚拟现实技术越来越快的发展,基于各种平台的三维Web设计成为研究热点,正在受到越来越多的商家关注,当然也有着激烈的竞争。
3D图形技术并不是一个新话题,早已应用到各个领域,Web3D技术是随着网络技术、虚拟现实技术发展而产生的,其目的是在互联网上建立三维的虚拟世界。
此次设计以Unity3D作为开发平台,研究实现技巧与展示方式,用Unity3D实现了一个3D炮塔射击游戏。
本次设计所需主要工具是Unity3D。
Unity3D是由UnityTechnologies开发的,是一个专业的全面整合的游戏引擎。
这是一个非常强大综合型游戏开发工具,用户可以使用这个平台创建3D视频游戏、实时3D动画、建筑可视化等互动内容。
Unity其编辑器运行在Windows和MacOSX下,可发布游戏至windows、Mac、Wii、iPhone和Android平台。
也可以利用UnityWebPlayer插件发布网页游戏或者手机游戏,支持Mac和Windows的网页浏览。
本次设计的最终结果是发布一个可以运行的三维炮塔射击游戏。
关键词:
Unity3D,虚拟现实,地形,炮塔模型
Three-dimensionalWebdesignbasedonUnity3D
ABSTRACT:
Withvirtualrealitytechnology,networktechnology,network-basedvirtualsystemdevelopmentandresearchbecomethehot,designsbasedonallkindsofplatformhavebecomeahottopic,isbeingmoreandmorebusinessesconcernwithintensecompetition.3Dgraphicstechnologyisnotanewtopic,ithaslongbeenappliedtovariousfields.Web3Dtechnologywasbornwiththedevelopmentofvirtualrealitytechnology,networktechnology.Itaimedatcreateathree-dimensionalvirtualworldonInternet.ThedevelopmentplatformofthedesignisUnity3D,researchingskillsandpresentation.Designaturretshootergameontheplatform.
ThemaintoolofthisdesignisUnity3D.Unity3DisdevelopedbyUnityTechnologiesisafullyintegratedgameengine.Thisisaverypowerfulgamedevelopmenttools,theusercanusethisplatformtocreatea3Dvideogames,real-time3Danimation,architecturalvisualizationandinteractivecontent.UnityitseditorrunningonWindowsandMacOSX,youcanreleasethegametoWindows,Mac,Wii,iPhoneandAndroidplatform.YoucanalsousetheUnitywebplayerplug-publishwebgamesormobilegames,supportforMacandWindowswebbrowser.Thefinalofthedesignistopublishaworking3Dturretshootergame.
Keywords:
Unity3D,Uvirtualreality,terrain,Turretmodel
第一章绪论
1.1研究背景
上世纪九十年代,计算机网络以其巨大的、卓越的优势迅猛发展了起来,随着网络技术、虚拟现实技术的发展,基于各种平台的三维Web设计不断出现。
要做出具有真实感的图形,需要借助颜色模型、光照模型和映射等技术。
[1]
虚拟现实技术(VirtualReality),简称VR技术,综合了计算机图形技术、多媒体技术、传感器与测量技术、人工智能技术、网络技术以及仿真技术等多种信息技术,成为近年来十分活跃的技术研究领域,被广泛应用于航天、军事、通信、医疗、教育、娱乐、建筑和商业等各个领域,不断的影响着人们的日常学习和生活。
[2]
随着3D技术的发展,网上一些文本类、静态的、二维的的产品,如图片、游戏、网页等,已经满足不了人们。
人们越来越对那些可视化的、动态的、三维的产品的需求迫切。
因为3D技术的形象展示功能,强大的交互性和对现实的模拟功能,可以提高用户对产品的参与度与体验感。
使用Unity3D设计的产品,具有直观立体,真实互动的效果。
用户可以更好的体验虚拟现实。
1.2Unity3D研究现状
随着移动互联网的发展和游戏研发技术及PC硬件水平的提升,跨网、跨平台和跨终端的网络应用有了更大的拓展空间。
在当前传统网游市场疲软的现状下,
国内外厂商纷纷将视线转向了跨平台游戏领域。
近年来,网页游戏的发展趋势侧重于2D画面向3D的升级,3D页游已经被公认为将是该领域的主流形态。
而基于Unity3D引擎的画面和跨平台应用优势,在目前海内外渐成趋势的跨平台游戏领域,Unity3D引擎显然是各大厂商关注的焦点。
它的脚本语言,unity3D的脚本语言在Unit3D游戏开发中占据了主角地位。
它提供了三种脚本语言的支持:
Javascript、C#、Boo。
脚本语言的动态特性让我们可以方便的通过名称、层次结构、tags等方式访问所有的对象。
[3]更大的好处就是脚本语言的跨平台性,绝大部分平台相关的代码都放到了引擎的内部,而游戏内容相关的代码都可以跨平台执行,在游戏的制作过程中实现了跨平台。
时至今日,国内外跨平台游戏领域在不到一年时间内,已经涌现出数十款PC端的Unity3D网游,而基于该引擎的手机游戏更是多达数百款。
现在,业内在高品质3D页游的引擎选择上,有Adobe和Unity3D两大引擎,Adobe是在它最新版Flash设定中,才开始支持3D引擎,而Unity3D引擎在实际的应用上,已经在国内外陆续推出了数十款认可度颇高的3D页游。
所以相对于其他游戏引擎来说,unity3D游戏引擎的发展还是很可观的。
[4]
1.3问题的研究方法
本次研究主要使用Unity3D引擎,脚本语言采用Javascript,分层次、按的进行设计。
第一步首先了解Unity3D的菜单,视图界面,这是最基本的基础。
第二步是理解场景里的坐标系统,这也是非常重要的。
第三步是学习场景的基础概念:
游戏对象,组件,脚本。
第四步是学习如何导入基本元素:
网格,材质,贴图,动画等。
第五步是对于脚本的学习,和一些基本的方法。
第六步是进一步学习摄像机,灯光,地形,渲染,粒子系统,物理系统等等。
第七步是学习更高级的概念:
内存管理,图形优化等。
最后整合,发布一个完整的游戏。
1.4论文构成
本论文主要研究基于Unity3D的三维Web设计,通过一些流行的方法。
并以一个炮塔射击游戏为例,介绍了用Unity3D开发一个游戏原型的基本流程,从开发的技术选择,模型的建立方式,脚本的编写,交互的实现到最终的发布。
对流程的细节加以解释,希望利用unity3D技术在3D研究方面做出一定探索。
本论文的框架结构和各部分的详细内容如下:
第一章绪论部分介绍了问题的研究背景,Unity3D研究状况,问题的研究方法,提出了本文的主要研究内容——基于Unity3D的三维Web设计。
第二章介绍了本次研究使用的开发工具,以及涉及到的相关技术。
第三章结合炮塔游戏原型的实现过程,总结了利用Unity3D技术进行设计的流程,对这一流程中需注意的问题进行了详述,给出具体解决方案。
在论文的最后,总结了本研究的主要工作及研究中存在的问题,并对进一步的研究进行了展望。
第二章开发工具及相关技术简介
2.1Unity3D简介
Unity3D是由UnityTechnologies开发的,是一个专业的全面整合的游戏引擎。
Unity3D是本身是一个多平台专业3D游戏开发引擎,具有高度优化的图形渲染管道。
内置的物理引擎能够实现逼真的互动,并提供支持柔和阴影与烘焙的光影渲染系统。
而且Unity3D具有方便的可视化创作环境,使用广为人知的Javascript和C#作为脚本语言。
[3]
Unity3D是一款标准的商业游戏引擎,而商业引擎的主要特点有收费、封闭源码和功能强大。
2.23DSMax简介
3DStudioMax,常简称为3DSMax或MAX,是Discreet公司开发的(后被Autodesk公司合并)基于PC系统的三维动画渲染和制作软件。
其前身是基于DOS操作系统的3DStudio系列软件。
WindowsNT出现以前,工业级的CG制作被SGI图形工作站所垄断。
3DStudioMax+WindowsNT组合的出现一下子降低了CG制作的门槛,首选开始运用在电脑游戏中的动画制作,后更进一步开始参与影视片的特效制作,例如X战警II,最后的武士等。
[5]
3DSMax是功能强大的三维设计软件,越来越多的设计师使用它制作效果图及动画作品。
2.3Javascript简介
Javascript是一种基于对象和事件驱动并具有相对安全性的客户端脚本语言。
同时也是一种广泛用于客户端Web开发的脚本语言,常用来给HTML网页添加动态功能,比如响应用户的各种操作。
,是一种动态、弱类型、基于原型的语言,内置支持类。
Javascript是Sun公司的注册商标。
不同于服务器端脚本语言,例如PHP与ASP,Javascript是客户端脚本语言,也就是说Javascript是在用户的浏览器上运行,不需要服务器的支持而可以独立运行。
Javascript是一种脚本语言,其源代码在发往客户端运行之前不需经过编译,而是将文本格式的字符代码发送给浏览器由浏览器解释运行。
2.4C#简介
C#读作CSharp。
它是由Microsoft公司的开发团队设计的。
C#是一种安全的、稳定的、简单的、优雅的,由C和C++衍生出来的面向对象的编程语言。
C#使得C++程序员可以高效的开发程序,且因可调用由C/C++编写的本机原生函数,因此绝不损失C/C++原有的强大的功能。
因为这种继承关系,C#与C/C++具有极大的相似性,熟悉类似语言的开发者可以很快的转向C#。
C#是微软公司发布的一种面向对象的、运行于.NETFramework之上的高级程序设计语言。
并定于在微软职业开发者论坛(PDC)上登台亮相。
C#是微软公司研究员AndersHejlsberg的最新成果。
C#看起来与Java有着惊人的相似;它包括了诸如单一继承、接口、与Java几乎同样的语法和编译成中间代码再运行的过程。
但是C#与Java有着明显的不同,它借鉴了Delphi的一个特点,与COM(组件对象模型)是直接集成的,而且它是微软公司.NETwindows网络框架的主角。
第三章设计基本流程
3.1Unity3D的基本界面介绍
图3.1Unity3D主界面
场景面板(Scene):
该面板为Unity3D的编辑面板;您可以将您所有的模型、灯光、以及其他材质对象拖放到该场景中。
构建游戏中所能呈现景象。
动画面板(Game):
与场景面板不同,该面板是用来渲染场景面板中景象的。
该面板不能用作编辑,但却可以呈现完整的动画效果。
层次清单栏(Hierarchy):
该面板栏主要功能是显示放在场景面板中所有的物体对象。
项目文件栏(Project):
该面板栏主要功能是显示该项目文件中的所有资源列表。
除了模型、材质、字体等,还包括该项目的各个场景文件。
对象属性栏(Inspector):
该面板栏会呈现出任何对象的所固有的属性,包括三维坐标、旋转量、缩放大小、脚本的变量和对象等等。
场景调整工具:
可改变您在编辑过程中的场景视角、物体世界坐标和本地坐标的更换、物体法线中心的位子,以及物体在场景中的坐标位置,缩放大小等等。
菜单栏:
菜单栏中包含有八个菜单选项:
分别是File【文件】Edit【编辑】Assets【资源】GameObject【游戏对象】Component【组件】Terrain【地形】Window【窗口】Help(帮助)。
3.2地形基础
地形绘制:
首先新建一个工程:
点击菜单File—>OpenProject。
这样就创建了一个新的工程,在这个工程里,已经存在一些必要的资源,在以后的工作中为我们可以直接使用。
在弹出的对话框ProjectLocation:
中设定所创建工程的路径。
设定完路径之后点击Create按钮进行创建。
这样就创建了一个新的工程,在这个工程里,已经存在一些必要的资源,在以后的工作中为我们可以直接使用。
图3.2地形属性窗口
地形绘制:
首先创建一个地形Terrain->CreateTerrain;可以在Terrain菜单下设置地形大小、分辨率、导入高度等。
点击“GameObject”——>“CreateOther”——>“Camera”,在场景中创建一个摄像机,这时您就可以在Game【动画面板】中观看到摄像机所观察到的景象了。
在地形的属性(Inspector)这一层中,可以看到很多绘制地形的工具。
第一个工具是抬高工具,可以用来绘制山脉或者是一些河道的效果。
第二个工具是绘制高度,可以用来踏平一个地形。
第三个工具是柔滑高度,就是使地面变得比较光滑。
地形贴图:
选择第四个工具之后,点击EditTexture来添加纹理。
在弹出的对话框下选择地形纹理后,点击Add按钮即可。
添加之后选中草地的材质,在地形中进行绘制,绘制前还是可以设置笔刷的大小、强度和融合度。
植物的种植:
第五个工具是用来在地形上种植树木的。
选中第五个工具,并添加要种植的树的模型。
选中树,并对其参数值进行设定后,就可以在场景中进行种植树了。
种植树时,直接点击左键即可。
可以根据滚动条设置笔刷的大小、树的密度、树的颜色的随机性、树的高度、高度的随机性、树的宽的、宽的随机性。
接下来绘制草地,第六个工具用来绘制细节。
选中第六个工具用来绘制草地。
添加一个草地的材质。
在弹出的对话框中选择相应的草地,同时可以根据自己的需要修改下面的参数值。
也可以在绘制完后再进行调整。
点击Add按钮即可。
细节的实现:
第六个工具是有关地形的细节的设置。
具体的参数有网格优化的容差,Map的距离,光晕图的设置等。
地形的所有效果已经设置完毕,但我们发觉在Game【动画面板】画面似乎很暗,这是由于没有加入灯光的缘故。
点击“GameObject”——>“CreateOther”——>“DirectionalLight”创建一个太阳光。
太阳光和自身的位置没有多大的关系,只与自身的角度有关,这和我们平时生活中的太阳光是一致的。
所以为了让场景变得更亮,我们就需要用到场景调整工具中的旋转按钮来对太阳光进行旋转。
当然您也可以在属性面板(Rotation)中对它进行调节。
根据我们生活的常识,当太阳光90°直射地面的时候,光线最强。
第十步:
为了让摄像机全方位的观察我们刚才所创建的场景,您可以
在Project【项目文件栏】中找到Mouselook、characterMotor、FPSInputController这三个脚本文件,并将他们依次拖放到场景中的摄像机上面。
放置完毕之后,点击测试按钮,您就可以身临其境的在您刚才创建的Game【动画面板】中进行漫游了。
用鼠标控制视角,用键盘的方向键控制行走。
漫游的过程中,可以清晰的看见创建的草随微风缓缓摆动。
再次点击测试按钮,退出动画模式。
下面我们来为场景加上蓝天和光照效果。
选中场景中的摄像机对象,然后点选菜单栏中的“Component”——>“Rendering”——>“Skybox”为摄像机添加一个天空盒。
添加成功之后,您就能在摄像机的属性面板中找到刚才添加的天空盒了。
3.3导入模型
使用3DSMax制作一个炮塔模型。
图3.3炮塔模型
在3DSMax中,点击File【文件】——>export【导出】,将模型文件导出为FBX文件,保存到“Turret”文件夹中的“Assets”【资源】文件夹下面。
打开3dMax软件制作一个炮塔模型,分为上下两部分,导出格式为fbx,再将制作好的模型保存在“Turret”文件夹中的“Assets”文件夹下边。
来到Unity环境中,找一个合适的位置,将我们的炮塔拖拽上去。
在这里可以在它的属性面板中找到“ScaleFactor”,来改变它的大小。
3.4图形用户界面类G.U.I
在玩很多3D游戏的时候,不知是否注意到在游戏界面中,总有一些图形和文字信息是不随着3D视觉的改变而改变的。
这也是由于游戏本身的要求所决定的,比方说英雄的生命值,聊天窗口的文字信息等等。
这一些不被改变的类就被称作G.U.I。
第一步:
打开Unity3D,它会自动导入上一次的工程项目。
第二步:
用PhotoShop制作弹药的填发时间图。
并将它们全部保存为PNG文件到工程项目的“Assets”文件夹内。
第
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 Unity3D 三维 Web 设计 毕业设计