基于Unity3D的汽车驾驶游戏的设计与实现(毕业论文)Word文件下载.doc

上传人:wj 文档编号:8256653 上传时间:2023-05-10 格式:DOC 页数:39 大小:5.37MB
下载 相关 举报
基于Unity3D的汽车驾驶游戏的设计与实现(毕业论文)Word文件下载.doc_第1页
第1页 / 共39页
基于Unity3D的汽车驾驶游戏的设计与实现(毕业论文)Word文件下载.doc_第2页
第2页 / 共39页
基于Unity3D的汽车驾驶游戏的设计与实现(毕业论文)Word文件下载.doc_第3页
第3页 / 共39页
基于Unity3D的汽车驾驶游戏的设计与实现(毕业论文)Word文件下载.doc_第4页
第4页 / 共39页
基于Unity3D的汽车驾驶游戏的设计与实现(毕业论文)Word文件下载.doc_第5页
第5页 / 共39页
基于Unity3D的汽车驾驶游戏的设计与实现(毕业论文)Word文件下载.doc_第6页
第6页 / 共39页
基于Unity3D的汽车驾驶游戏的设计与实现(毕业论文)Word文件下载.doc_第7页
第7页 / 共39页
基于Unity3D的汽车驾驶游戏的设计与实现(毕业论文)Word文件下载.doc_第8页
第8页 / 共39页
基于Unity3D的汽车驾驶游戏的设计与实现(毕业论文)Word文件下载.doc_第9页
第9页 / 共39页
基于Unity3D的汽车驾驶游戏的设计与实现(毕业论文)Word文件下载.doc_第10页
第10页 / 共39页
基于Unity3D的汽车驾驶游戏的设计与实现(毕业论文)Word文件下载.doc_第11页
第11页 / 共39页
基于Unity3D的汽车驾驶游戏的设计与实现(毕业论文)Word文件下载.doc_第12页
第12页 / 共39页
基于Unity3D的汽车驾驶游戏的设计与实现(毕业论文)Word文件下载.doc_第13页
第13页 / 共39页
基于Unity3D的汽车驾驶游戏的设计与实现(毕业论文)Word文件下载.doc_第14页
第14页 / 共39页
基于Unity3D的汽车驾驶游戏的设计与实现(毕业论文)Word文件下载.doc_第15页
第15页 / 共39页
基于Unity3D的汽车驾驶游戏的设计与实现(毕业论文)Word文件下载.doc_第16页
第16页 / 共39页
基于Unity3D的汽车驾驶游戏的设计与实现(毕业论文)Word文件下载.doc_第17页
第17页 / 共39页
基于Unity3D的汽车驾驶游戏的设计与实现(毕业论文)Word文件下载.doc_第18页
第18页 / 共39页
基于Unity3D的汽车驾驶游戏的设计与实现(毕业论文)Word文件下载.doc_第19页
第19页 / 共39页
基于Unity3D的汽车驾驶游戏的设计与实现(毕业论文)Word文件下载.doc_第20页
第20页 / 共39页
亲,该文档总共39页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

基于Unity3D的汽车驾驶游戏的设计与实现(毕业论文)Word文件下载.doc

《基于Unity3D的汽车驾驶游戏的设计与实现(毕业论文)Word文件下载.doc》由会员分享,可在线阅读,更多相关《基于Unity3D的汽车驾驶游戏的设计与实现(毕业论文)Word文件下载.doc(39页珍藏版)》请在冰点文库上搜索。

基于Unity3D的汽车驾驶游戏的设计与实现(毕业论文)Word文件下载.doc

(一) 游戏展示 28

(二) 性能分析 30

六、 项目总结 32

(一) 总结 32

(二) 下一步工作的展望 33

参考文献 34

华东师范大学学士学位论文基于Unity的车辆模拟游戏的设计与实现

摘要

随着计算机技术的发展,电子游戏的形式越来越丰富,用户对于电子游戏的娱乐性需求也越来越高,追求更加真实的感官体验成为电子游戏的一条发展趋势。

作为虚拟现实领域的一项的综合应用,3D游戏已经在电脑、手机、机顶盒等多平台得到了普及,相对于传统的2D游戏,3D游戏让用户感觉更融入,更加享受,但所依赖的计算机技术也更加复杂,计算机图形学、物理仿真等都成为3D游戏开发所需要的重点研究方向。

我国在电子游戏领域的发展与领先国家还具有一定的差距,为了振兴本国电子游戏行业,对这一项综合应用所涉及的技术进行整体的梳理是完全有必要的。

论文按照从设计到实现,从理论到应用。

首先介绍了3D游戏的一般技术框架,之后围绕一款基于Unity3D的小型的汽车驾驶游戏,使用Unity3D支持多个平台,可方便引入各方面插件。

在游戏设计和实现阶段,先简单介绍了游戏的创意,接着设计了整个游戏的的整体结构,并将游戏系统主要分为图形渲染、物理仿真、网络同步等模块,图形渲染使用Unity3D中OpenGL插件,使得游戏可以运行到手机平台,为了更精确、更快速处理汽车的物理仿真,使用了PhysX来对车身及场景进行物理设计,着重涉及到碰撞检测、车身刚体及轮胎的悬挂系统的概念及算法,并且增加界面设计及网络模块使得用户增加互动性。

论文的最后对游戏做了一定的分析,在执行效率及可玩性做出了改进展望。

整个游戏系统各模块之间接口灵活且耦合性低,且运行效率高,虽然属于小型游戏,但涉及的技术点较为全面,可以为同类问题提供参考。

关键字:

Unity3D,游戏,图形引擎,物理引擎,PhysX,汽车驾驶

Abstract

Withthedevelopmentoftheelectronicscience,formsofelectronicgamesarebecomingricherandricher,meanwhilethatusersneedtomorerealsensejudgmenthasbeenanimportantprogresstrend.Asanapplicationofthevirtualreality,3Dgamesisavailableonallthemajorcomputer,mobileplatforms,set-topboxesandsoon.3Dgamesmakeuserseasierimmerseinenjoyingitcomparedwith2Dgames,butrequiremorecomplextechnique,sothatComputerGraphicandColliderdetectionhavebeenkeyresearchfields.Theindustrylevelof3DgamesfallsbehindinChinaatpresent,itisameaningworktogothroughthetechnologyofthecomprehensiveapplication.

Thethesisisorderfromtheorytoapplication.Firstlythispaperintroducesthebaseframeworkof3Dgames,andthendevelopavehiclegamebyUnity3D,whichsupportsmultipleplatformsandeasiertodevelopbytheplugin.Inthespecificgame,introducetheideaofthisgameanddiscusstheoveralldesignoftheintegralstructure.Thisgameisbrokendownintomodulessuchasgraphicrending,physicalsimulationandnetwork.GraphicrenderingusesOpenGLplugininUnity3D,whichmakesgameruninmobilephone.PhysicalsimulationdependsonPhysXwhichcanobtainmoreaccurateresultstodesigntherigidbodyofthecar,thesuspensionofthewheelsandthescene.InordertoaddinteractivityweaddnetworkandUImodule.Intheend,thispaperanalysisthisgametoputforwardthenextimprovement.

Thisvehiclegameismini,butownssomeadvantagessuchasflexiblemoduleinterfaces,lowcouplingandfastexecuting.Mostimportantlythispaperreferstomostaspectsofa3Dgameandprovideareferencefordeveloperswhohasasimilarrequirement.

Keywords:

Unity3D,game,graphicengine,physicalengine,PhysX,automobilism

III

一、绪论

(一)研究背景和研究意义

这几年,中国经济以8%左右的速度持续平稳的增长,而在刚刚过去的2012年中国游戏市场实际销售收入602.8亿元,同比增长率为35.1%,首次突破600亿规模[1]。

游戏产业己经成为经济市场中增长速度最快的热点,是众所关注的焦点。

游戏是文化创意产业里的一部分,创意经济是知识经济的核心内容,更是其经济的重要表现形式,没有创意就没有新经济。

游戏设计是文化艺术创意和商品生产的结合,游戏产业的发展在中国的经济发展中具有十分重要的意义[2]:

1.有利于保护民族的文化传统和价值观,抵制文化入侵;

2.推动创意产业的快速发展,提升我国经济产业发展水平;

3.提供健康快乐的大众娱乐方式,提升消费者的休闲体验感受。

游戏的发展从表现方法上经历了2D游戏和3D游戏两个阶段。

游戏设计,特别是3D游戏开发综合运用了计算机图形学、物理仿真和网络通讯等技术,并且移动平台技术在这几年得到迅猛发展,轻量级、微创新、时间碎片化一直是移动游戏的发展趋势,如《愤怒的小鸟》、《顽皮鳄鱼爱洗澡》、《神庙逃亡》的用户数都已经过亿。

论文通过一个简单的“碰碰车”创意予以实现,涵盖了3D游戏涉及到的一些基本技术,能深入理解这些领域的底层技术并熟练掌握成熟的引擎使用,对于将来开发具有自主知识产权的游戏提供了参考。

(二)国内外研究现状

国外的3D游戏起步在90年代初,美国的卡马克的《重返德军总部3D》是第一部3D第一人称射击游戏,由其开发的Doom引擎也成为最早3D游戏引擎。

国内首款自主研发的3D游戏始于2003年,到目前为止,国内在3D游戏已经有了很多的研究,但由于3D游戏开发的复杂性及经济效益的考虑,国内只有屈指可数的互联网公司拥有自主研发的3D游戏引擎,中小型公司还是使用国外较为成熟的游戏引擎和工具,如虚幻,Unity3D,寒霜。

虽然近年来国内涌现一些优秀的3D网游诸如《剑侠情缘3》、《九阴真经》,但一直无法像产出世界级的3D游戏大作,大部分游戏公司还是以代理国外优秀产品为主,导致资金外流及本土文化缺失。

随着移动硬件设备的日益强大,移动平台上的游戏也出现了惊人的增长,3D互动娱乐在手机领域的应用也逐渐增加。

而移动领域存在诸多的操作系统,常用的有Android、WindowsMobile、iOS等,而在各个平台上的移植和实现对于开发商来说是不经济的,而目前国外优秀的成熟引擎已经成功解决这类需求,最为突出的要数Unity3D引擎,Unity3D中使用虚拟机技术使游戏编译结果独立于平台执行。

国内对于跨平台引擎技术的研究还处于起步阶段,但熟练掌握和理解这些引擎的使用依然具有一定意义。

(三)论文组织结构

论文按照从设计到实现,从理论到应用,主要围绕一款基于Unity3D的小型的汽车驾驶游戏,对一些3D游戏设计的技术进行相关的研究,并予以设计实现。

本文共分为六章,各章节安排如下:

第一部分:

绪论,阐述了论文的研究背景和意义、国内外研究现状以及本文主要研究内容;

第二部分:

介绍了3D游戏开发的一般技术框架,及相关的第三方引擎,主要有图形渲染库、物理引擎及Unity3D的概述;

第三部分:

汽车驾驶游戏的创意以及游戏系统的整体设计,并根据Unity3D框架规范设计了一种MVC层次结构;

第四部分:

讨论游戏中各模块的技术研究和实现过程,主要的核心模块是场景渲染和物理仿真;

第五部分:

展示当前的游戏并对效率、玩法等方面做一定分析;

第六部分:

结论,对该设计进行总结并指出其中的不足,提出下一步展望。

二、3D游戏技术的知识系统

(一)3D图形库

1.3D图形库简介

3D图形库被定义为显卡与应用程序直接的接口。

编程人员只要调用3D图形库中的API(ApplicationProgrammingInterface)函数,从而与硬件的驱动程序沟通,启动3D芯片内强大的3D图形处理功能,制作具有3D图形效果的软件。

3D图形库的执行具有非常快速的特点,并且具有高度的可移植性,其中的API函数定义为独立于任何程序设计语言的一组规范,在特定语言中的实现描述由国际标准化组织来制定。

严格按照计算机图形学原理设计而成,符合光学和视觉原理,编程人员只要用这些API函数定义点、线、面的三维特征,如位置坐标、顶点颜色、法向向量、纹理坐标等就可以创建极其逼真的3D图像。

许多三维演示系统都用3D图形库作为三维图形生成和控制的编程接口。

目前主要应用的3D函数库有DirectX和OpenGL。

DirectX:

微软公司专为PC游戏开发的API,与Windows操作系统兼容性好,可绕过图形显示接口(GDI)直接进行支持该API的各种硬件的底层操作,大大提高了游戏的运行速度,而且目前基本上是免费使用的。

由于要考虑与各方面的兼容性,DirectX用起来比较麻烦、在执行效率上也未见得最优。

OpenGL:

(开放式图形接口)由SiliconGraphics公司开发,能够在Windows95、WindowsNT、Macos、Beos、OS/2、以及Unix上应用的API。

由于OpenGL起步较早,一直用于高档图形工作站,其3D图形功能很强,超过DirectX,能最大限度地发挥3D芯片的巨大潜力。

在Windows中已经全面支持DirectX和OpenGL。

在OpenGL的1.2版中还增加了对3DNow!

标准的支持。

2.3D图形库的渲染管线

绝大多数3D图形库实现都有相似操作顺序,一系列相关的处理阶段叫做3D图形的渲染管线,如图2-1显示了这些顺序,它是3D图形库处理数据的方法[3]。

图2-13D图形库渲染管线

下面详细介绍其中几个比较重要的阶段:

基于顶点的操作与基本装配:

这个过程包括本地空间-世界空间-视图空间-背面拣选,主要是根据编程人员设置的摄像机位置、视锥属性和顶点索引对顶点数据进行一系列的数学运算,使3D图形的形状及位置得以正确显示。

像素操作:

该过程主要根据编程人员传入显卡的纹理及顶点的纹理坐标以及光照信息进行颜色计算、混合,并对线、面采用线性插值、二次线性插值等算法最终进行出像素的颜色。

这个过程的计算一般由显卡固定管线的计算公式完成,如想得到更真实、更多样的效果,可采用可编程管线技术实现。

3.3D程序基本工作流程

前面提到了调用3D图形库中的API函数来设计3D应用程序,现在更为详细的介绍这样的应用程序的一般工作流程,如图2-2所示:

图2-23D图形库渲染管线

在程序主入口main函数中,首先调用ApplicationInitial函数进3D图形库的一些初始化工作:

如通知显卡存储顶点、颜色、灯光、纹理等信息,接下来进入主循环不断调用ApplicationUpdate函数,ApplicationUpdate调用每一个渲染物体的ObjectUpdate函数,更新其在显存中的信息,并通知显存进行一次渲染管线流动,这样新的一帧3D图形就被渲染出来并产生动画。

最后在应用程序结束时调用ApplicationDestory来进行清理工作。

当然,复杂的3D应用框架还会利用多线程技术来处理逻辑运算和事件回调等内容。

(二)物理引擎

1.物理引擎简介

在游戏这项综合应用中中,除了华丽的画面渲染外,作为表现虚拟世界系统内在物理规律的计算是必不可少的。

当被模拟的刚体的运动比较简单,我们可以在一定程度上通过编程或编写脚本来实现,如简单的加速和减速牛顿物理运动。

但当模拟比较复杂的物体的碰撞、滚动、滑动或者弹跳的时候,通过编写底层算法会造成工程延误,这显然不符合软件工程的思想。

成熟的物理引擎能够允许更复杂的物理模拟,像球形关节、轮子、气缸或者铰链,有些也支持非刚性体的物理属性,比如流体和布料。

物理引擎接受的输入是由外界调用模块传递过来的场景信息以及场景中物体的位置信息。

根据调用模块的不同,可能输出三种计算结果:

场景与物体以及物体之间是否发生碰撞、碰撞发生的具体位置以及发生碰撞后物体的具体位置,并将计算结果传送给调用模块。

如图2-3所示:

图2-3物理引擎功能示意图

2.物理引擎基本架构[4]

物理引擎一般分为两个重要部分,即碰撞检测和物理学世界。

如图2-4所示:

图2-4物理引擎基本架构

碰撞检测模块是物理引擎的核心模块,建立在物理学世界的基础上的[5]。

其由初步碰撞检测、精确碰撞检测和精确求交三个基本模块组成,各模块的执行顺序如图2-5所示:

图2-5碰撞检测模块流程图

在初始化阶段,碰撞检测模块给虚拟世界每个物体建立包围盒,比较常用的包围盒算法有AABB(Axis-alignedboundingbox)、包围球、胶囊体等。

逐步求精阶段将整个虚拟世界进行空间划分,主要用到数据结构有八叉树、k-d树和BSP树等,通过自顶向下的层次结构不断判断物体是否可能发生碰撞。

最后再精确求交模块中使用凸体算法和射线检测算法得到精确的碰撞信息[6]。

物理学世界模块,是现实世界的抽象模型。

物理学世界包含两个部分,一个是刚体物理学世界,一个是柔体物理学世界。

在力的作用下,体积和形状都不发生改变的物体称作刚体。

刚体按照其运动特征可以分为平动、定轴转动、平面运动、定点运动和一般运动等形式。

在一般情况下,运动刚体上各点的轨迹、速度和加速度是各不相同的,但彼此之间存在着一定的关系。

体积和形状在力的作用下能够发生变化的物体称作柔体,如流体、布料等。

因此,物理学世界的模块结构如图2-6所示。

图2-6物理学世界模块结构图

3.Havok和PhysX的比较

物理引擎中需要大量的计算,并且不同物理引擎针对特定显卡有3D加速功能,因此,开发3D游戏前选择一款合适的物理引擎是及其重要的,否则会极大影响游戏的性能。

目前在游戏市场占重要地位的有Intel的Havok和Nvidia的PhysX。

Havok,全称为HavokGameDynamicsSDK,译作Havok游戏动力开发包,主要分为Physics、FX、Animation、Behavior、Cloth、Destruction、AI几大组件。

Havok成立于1998年,总部位于爱尔兰首都都柏林。

引擎基于C/C++语言而成,2000年在游戏开发者大会上发布了Havok1.0,最新版本为5.5,2007年9月,Intel宣布收购Havok。

在全平台上,共有353种游戏使用Havok引擎,超过了PhysX的309种,使用Havok的著名游戏有:

《极品飞车:

亡命天涯》、《星际争霸2》、《暗黑破坏神3》、《上古卷轴4》等,图为Havok的展示Demo:

图2-7Havok引擎展示(左为HavokPhysics,右为HavokCloth)

PhysX物理运算引擎由五名年轻的技术人员开发,他们成立了AGEIA公司。

由于PhysX物理引擎在设计上就并不适合用CPU去计算,因此AGEIA公司还为PhysX引擎设计了专门的运算硬件,PhysX物理加速卡,其中的运算核心被称为PPU(PhysicsprocessingUnit)。

图2-8为AGEIA当初设想的未来PC组成部分。

图2-8AGEIA当初设想的未来PC组成部分

2008年,Nvdia收购了AGEIA,物理加速卡停止开发,而是将PhysX物理加速功能移植到NvdiaGPU中,用户不必额外购买PhysX物理加速卡就能享受到PhysX物理加速功能。

在PC平台上,共有269种游戏采用PhysX引擎,而Havok为163种。

表4-1Havok和PhysX在各方面的比较

物理引擎:

Havok

PhysX

物理加速

多线程加速

只支持NvdiaGPU加速

执行效率

不开启GPU加速下略逊一筹

跨平台性

全平台

是否开源

游戏引擎集成

寒霜

Unity3D

主要游戏平台

Wii、Xbox360、PS3

PC

(三)Unity3D

1.Unity3D简介

Unity3D是由UnityTechnologies开发的一款全面整合的专业游戏引擎,其具有的功能使得开发人员可专注于游戏的设计而忽略底层的技术实现,达到快速开发的目的。

Unity类似于Director,Blendergameengine,Virtools或TorqueGameBuilder等利用交互的图型化开发环境为首要方式的软件其编辑器运行在Windows和MacOSX下。

其主要的特色有[7]:

图形动力:

内部封装了DirectX和OpenGL图形渲染库,并附带一些常用的渲染组件及着色器脚本。

物理仿真:

Unity3d不但整合了NvidiaPhysX物理引擎,并在其基础上封装了游戏中常会用到的物理组件,如碰撞体、连接体等。

跨平台性:

可发布游戏至Windows、Mac、iOS、Android、Xbox、Wii或PS3平台,也可以利用Unitywebplayer或者Flash插件发布网页游戏,支持Mac和Windows的网页浏览。

资源商城:

开发人员可在资源商城中购买其他人开发的资源(代码、模型等),进行高效复用。

资源服务器:

Unity资源服务器是一个附加的版本控制的产品,但比起SVN更适合游戏团队中不同职位的人员共同使用(程序、策划、美术)。

性能分析器:

引擎中自带一个Profiler分析器,开发人员可在编辑器或者设备连线进行性能分析CPU和GPU不同阶段的效率。

2.Unity3D基本概念

一个完整的lJnity3d程序是由若干个场景(Scene)组合起来的,每个场景中又包含有许多游戏对象(GameObject),每个对象可以具有若干组件(Component),其中的继承自MonoBehavior的脚本组件进行初始化、更新等操作,而我们在场景所看到的内容是由摄像头(Camera)来呈现并控制的。

场景(Scene):

场景是Unity3D程序的基本组成单位,任何一个Unity3D程序都是由若干场景组合而成,程序通过脚本在这些场景之间跳转。

场景通过场景图的形式组织,场景图实际上是一种树形结构,其中每个节点就是一个游戏对象。

对象与对象之间存在父子关系,即当父级对象移动、旋转、缩放时,子级对象也跟着一起变换[8],如图2-9所示:

图2-9旋转一个父节点同时它的子节点也跟着旋转

游戏对象(GameObject):

在场景中按照场景图形式组织,场景图实际上是一种树形结构,如图。

树形层次结构中的节点,加入的特定组件后就成了有实际功能的对象,如可渲染网格、摄像机、光源等,游戏对象可以打包成.prefab格式的文件方便复用。

组件(Component):

组件可以是网格(Mesh)、光源(Light)、摄像机(Camera)、粒子系统(Particle)、物理碰撞体(Collider)、布料(Cloth)、连接体(Joint)、声音(Audio)、动画(Animation)以及最重要的脚本(Script)。

Unity3D的设计是以面向对象理论为基础,Unity3D支持C#、JavaScript和Boo三种脚本语言,如果对象继承自MonoBehavior脚本对象,生命周期将交给Unity3D来管理,如图2-10所示:

图2-10MonoBehavior的生命周期

三、车辆驾驶游戏的设计

(一)游戏创意

随着移动硬件设备的日益强大,并且移动平台技术在这几年得到迅猛发展,移动平台上的游戏也出现了惊人的增长,轻量级、微创新、时间碎片化一直是移动游戏的发展趋势。

《愤怒的小鸟》、《顽皮鳄鱼爱洗澡》等几款创意游戏都得到了巨大的成功,这些游戏的共同特点有:

1.操作简单,游戏目的简单。

不论是高级游戏玩家还是不常玩游戏的用户群,很容易知道如何操作并理解游戏的目的。

如《愤怒的小鸟》只需一只手指调整弹弓的角度和力度最终将猪击飞,《顽皮鳄鱼爱洗澡》只要用手指刮开泥土将水引导进鳄鱼的浴缸;

2.真实的物理规律。

游戏中充分考虑到现实生活中的物理规律,如《愤怒的小鸟》中飞行的速度、重力的考虑,《顽皮鳄鱼爱洗澡》中水流的流体走向;

3.多样化的设计。

别出心裁的设计不仅使玩家产生兴趣继续挑战,也会更加开动玩家的脑筋。

如《愤怒的小鸟》中小鸟不同的技能、会荡秋千的猪、冰雪的场景和会引燃的炸药,《顽皮鳄鱼爱洗澡》中清水、污水、泥石流产生的不同效果,以及风扇、喷枪的设计等;

图3-1左为《愤怒的小鸟》游戏截图,右为《顽皮鳄鱼爱洗澡》游戏截图

笔者按照这些思路产生了将游乐场中“碰碰车”这一游乐项目搬上有游戏的想法,游戏同样遵从以上三个特点,下面是简单的游戏策划

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 高中教育 > 语文

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2