[计算机软件及应用]Unity3DKinect体感应用开发_第1页
[计算机软件及应用]Unity3DKinect体感应用开发_第2页
[计算机软件及应用]Unity3DKinect体感应用开发_第3页
[计算机软件及应用]Unity3DKinect体感应用开发_第4页
[计算机软件及应用]Unity3DKinect体感应用开发_第5页
已阅读5页,还剩26页未读 继续免费阅读

下载本文档

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

文档简介

1、精品文档欢迎下载题目题目 ?UNITY3D?UNITY3D?体感应用开发体感应用开发 摘要摘要虚拟现实技术是二十世纪末才兴起的一门崭新的综合性信息技术,在最近几年开展迅速,已经有了一定的规模。而 Kinect 是微软在 2021 年 6 月 14 日对 XBOX360体感周边外设正式发布的名字,它是一种 3D 体感摄影机,同时导入了即时动态捕捉、影像辨识、麦克风输入、语音辨识、社群互动等功能。本文的研究内容以 Unity3D 为开发工具,以 Kinect 系统为目标平台,开发一款名为?耍皮影游戏?的体感应用,体感应用中可以通过参与游戏的玩家的手势来控制游戏中的皮影角色完成游戏,实现人机的交互控

2、制。应用能在 Kinect 设备上独立运行,应用具有完整场景,良好的画面效果,较高的互动乐趣,让用户使用互动投影设备控制虚拟皮影角色进行丰富多彩的互动体验。关键词关键词 虚拟现实技术 Unity 3D Kinect 体感 交互控制精品文档欢迎下载TitleTitle PlayingPlaying shadowshadow puppetspuppets somatosensorysomatosensory applicationapplication developmentdevelopment AbstractAbstractVirtual reality technology is the

3、end of the twentieth century before the rise of a new integrated IT, has developed rapidly in recent years, has a certain scale. Kinect is the name in the June 14, 2021, Microsoft officially released the XBOX360 somatosensory peripherals, it is a 3D somatosensory camera, to import real-time motion c

4、apture, image recognition, microphone input, voice recognition, and community interaction function.The content of this research the Unity3D development tools, Kinect system for the target platform, a development called playing the shadow play games, the application of the somatosensory, somatosensor

5、y applications to control the game in the shadow play through the game to packrole to complete the game to achieve interactive control. Applications can be run independently in the Kinect device application with the complete scene, good screen effects, interactive fun, interactive projection equipme

6、nt to control the virtual shadow play the role of a variety of interactive experience.KeywordsKeywords Virtual reality technology Unity 3D Kinect Somatosensory Interactive control精品文档欢迎下载目录1前言.11.1 选题背景 .11.2 选题意义 .21.3 题目研究现状简介 .21.4 资料收集 .31.5 论文组织结构 .31.5.1 前言 .31.5.2 开发工具与运行环境.31.5.3 应用设计 .31.5.

7、4 系统实现 .31.5.5 系统测试 .31.5.6 全文的总结 .32开发工具与运行环境 .42.1 开发工具 .4 Unity 3D .42.1.2 Photoshop .52.1.3 OpenNI.62.1.4 3ds Max .72.1.5 Kinect .72.2 运行环境 .83系统设计 .93.1 应用关卡设计 .93.1.1 应用第一关设计 .93.1.2 应用第二关设计 .93.1.3 应用第三关设计 .94系统实现 .104.1 应用的开始场景 .104.1.1 场景的选择按钮样式.11精品文档欢迎下载4.2 应用的选择关卡场景 .114.3 应用的第一关 .124.3.

8、1 时间的倒计时 .124.3.2 金币的生成 .134.3.3 玩家拾到金币并计分.144.3.4 结束时判断哪个玩家获胜.144.3.5 游戏角色的控制系统.144.4 应用的第二关与第三关 .164.4.1 发射子弹系统 .164.4.2 生命值的控制 .174.4.3 增加生命值和减少生命值的物体.174.4.4 摄像机系统 .174.4.5 游戏角色的控制系统.185系统测试 .205.1 程序调试 .205.2 程序的测试 .205.2.1 测试的重要性及目的. 测试的重要性 . 测试的目的 .215.2.2 测试的步骤 .215.2.3 测试的

9、主要内容 .215.3 应用的生成 .22结论.23致谢.26参考文献 .28精品文档欢迎下载1.前言Kinect 是微软公司基于 xbox360 制作出来的硬件设备,原本是运用在xbox360 上进行体感游戏的配套设备,而本文需要研究将这个新鲜的体感设备连接到电脑上,并通过新的驱动进行新游戏的设计以及开发。Unity3D 是游戏开发的根底,Kinect 设备通过 openni 的驱动与 Unity3D游戏开发引擎连接,通过在 Unity3D 中进行游戏场景的搭建,游戏功能的设置,带有控制器的模型的导入,以及代码的编写等等工作,然后在通过环境的配置对体感游戏进行控制。虚拟现实技术具有超越现实的

10、虚拟性。它是伴随多媒体技术开展起来的计算机新技术,它利用三维图形生成技术、多传感交互技术以及高分辨率显示技术,生成三维逼真的虚拟环境,用户需要通过特殊的交互设备才能进入虚拟环境中。这是一门崭新的综合性信息技术,它融合了数字图像处理、计算机图形学、多媒体技术、传感器技术等多个信息技术分支,从而大大推进了计算机技术的开展。随着近年来游戏事业在全球大踏步的前进,市场的前景非常可观,但是在国内的市场上,体感游戏还是一个比拟小的群体,大局部的游戏玩家的主旋律还是通过鼠标、键盘、手柄等游戏设备进行游戏,而仅仅通过身体的运动而控制游戏中人物的控制还是一个比拟新鲜的领域。1.1 选题背景在未来的游戏开展中,人

11、们越来越注重亲身的体验,体感游戏将逐步开展为主流游戏。人们在游戏中不仅可以得到游戏给人带来精神上的欢乐,还可以通过游戏锻炼人们身体,将自己真正的融入到虚拟游戏世界当中。Kinect 是微软在 2021 年 6 月 14 日对 XBOX360 体感周边外设正式发布的名字,它是一种 3D 体感摄影机,同时导入了即时动态捕捉、影像辨识、麦克风输入、语音辨识、社群互动等功能让玩家脱离传统游戏手柄的束缚,通过自己的肢体控制游戏。同类产品有任天堂 Wii、Play Station Move,但它们必须让玩家手里拿一个或者多个设备,才能完成所谓的体感互动。Unity 3D 是一个多平台的游戏开发工具,是一个

12、全面整合的专业游戏引擎,具有更优越的效果和更高的扩展空间。Unity 内置的 NVIDIA、PhysX 物理引擎能够带来逼真的互动感觉,实时三维图形混合音频流、视频流。精品文档欢迎下载Unity3D 引擎具备开发过程技术要求高,高级渲染效果和用户定制支持远远高于其他的优势,非常适合产品虚拟展示在交互访问和逼真表现的需求。虚拟现实从其萌芽到今天的日渐成熟已经经历了一段相当长的时间,伴随着计算机图像技术和计算机网络技术的不断开展,我们的虚拟现实技术也将迎来一个快速开展的阶段,使我们的虚拟现实中的场景更加的真实,虚拟现实中的人物也更加的形象与生动,成为一个真正意义上的“人。本论文根据 KinectS

13、DK 工具的设计理念背景、Unity3D 的功能背景以及未来游戏开展趋势的大背景下,对?耍皮影?体感应用进行设计与研究。1.2 选题意义体感游戏是一种新颖的、趣味性强的、富有极高创造力的游戏。而且,微软公司在 2021 年才刚刚推出 Kinect 体感游戏控制器,体感应用游戏是一次挑战也是一个机遇,Kinect 不需要玩家佩戴或借助任何装置,完全由Kinect 去捕获玩家的各种动作,并表到达游戏中的角色上去,因此,玩一会儿游戏下来,你可能已经大汗淋漓了。皮影戏是国家非常重视的非物质文化遗产,在 2021 年正式成为世界人类非物质文化遗产。不过,在如今这娱乐生活多样的年代,皮影戏的魅力光环正在逐

14、渐黯淡,只有这一些特殊场合可以看见。现在的很多年轻人虽然对这些老艺术感兴趣,但是很难有时机看到。这个?耍皮影?的体感应用,便可以让玩家通过体感游戏的方式,更加真实地了解皮影戏的魅力所在。?耍皮影?体感应用是一个通过现代的高科技演绎历史悠久的传统艺术,并且可以让每一位游戏玩家到游戏中的角色中去体验。本次的游戏设计旨在通过 Kinect 体感游戏控制器以及 Unity3D 游戏开发工具相结合,进行?耍皮影?体感应用进行设计,通过编译,将传统的艺术表演呈现在现代的高科技游戏中。1.3 题目研究现状简介20 世纪 90 年代末,国外的单位已经在增强现实系统的摄像机校正算法、增强现实头盔显示器的设计、硬

15、件平台的应用、视觉跟踪技术等方面取得了一些可喜的成果。目前,国内对增强现实技术的研究处于起步阶段。从 1995年至今,涉及增强现实系统的国际专利多达一百多篇,局部设计应用于航海平安控制辅助、飞行员培训、应急训练的方面。而国内涉及增强现实的专利精品文档欢迎下载还很少。不过近些年随着国内技术人员的增多,在这个领域有了一个飞速的开展。1.4 资料收集通过网络,先对所选课题进行详细的了解,然后通过各种论坛,去深入了解制作游戏的方法与步骤。1.5 论文组织结构前言本段内容 主要介绍 的是 Kinect 开发的现状、 Unity3D 游戏开发引擎的介绍、以及 虚拟现实 技术的定义及国内外开展现状,阐述了课

16、题的目的与意义。1.5.2 开发工具与运行环境本段内容 主要介绍 游戏设计的过程中需要用到的软硬件设备,以及所需要的开发环境。应用设计本段内容重要是对游戏中的每个关卡的设计进行介绍,包括图片背景的设计、按钮的设计、模型的设计、游戏功能的设计等。通过对设计的介绍,让玩家对游戏有一个初步认识。1.5.4 系统实现本段内容重要是游戏代码的实现,体感控制,对游戏的核心制作局部进行介绍。有游戏制作的先后顺序,过程等等。1.5.5 系统测试本段的主要内容是在游戏根本制作完成以后,为了减少游戏中的错误以及 bug,对游戏进行测试与调试。全文的总结本段主要是总结这次毕业设计, 包括研究成果、建议和建议被采纳的

17、可能性。精品文档欢迎下载2.开发工具与运行环境2.1 开发工具2.1.1 Unity 3DUnity3D 是由 Unity Technologies 开发的一个让你轻松创立诸如三维视频游戏、建筑可视化、实时三维动画等类型互动内容的多平台的综合型游戏开发工具,是一个全面整合的专业游戏引擎。 Unity 类似于Director,Blender game engine, Virtools 或 Torque Game Builder 等利用交互的图型化开发环境为首要方式的软件其编辑器运行在Windows 和 Mac OS X 下,可发布游戏至 Windows、Mac、Wii、iPhone 和 Andr

18、oid平台。也可以利用 Unity web player 插件发布网页游戏,支持 Mac 和Windows 的网页浏览。它的网页播放器也被Mac widgets 所支持。该软件有一下的几个特色:综合编辑: 通过 Unity 简单的用户界面,你可以完成任何工作。这些为你节省了大量的时间。 图形动力:Unity 对 DirectX 和 OpenGL 拥有高度优化的图形渲染管道。 资源导入:Unity 支持所有主要文件格式,并能和大局部相关应用程序协同工作。 一键部署:Unity 可以让你的作品在多平台呈现。 Wii 的发布:Unity 让业界最流行的游戏平台软件更容易开发。 iPhone 发布:U

19、nity 让革命性的游戏开发降临革命性的设备。 着色器:Unity 的着色器系统整合了易用性、灵活性和高性能。 地形:低端硬件亦可流畅运行广阔茂盛的植被景观。 联网:从单人游戏到全实时多人游戏。 物理特效:Unity 内置的 NVIDIA®PhysX®物理引擎带给你生活的互动。 音频和视频:实时三维图形混合音频流、视频流。 脚本:Unity 支持 3 种脚本语言: JavaScript,C#,Boo。 Unity 资源效劳器:Unity 资源效劳器是一个附加的包括版本控制的产品。 精品文档欢迎下载光影:Unity 提供了具有柔和阴影与烘焙 lightmaps 的

20、高度完善的光影渲染系统。 文档:Unity 为你提供逐步的指导、文档和实例方案。2.1.2 PhotoshopAdobe Photoshop:图像元老,最受欢送的强大图像处理软件之一 。 Photoshop 是 Adobe 公司旗下最为知名的图像处理软件之一。多数人对于 PHOTOSHOP 的了解仅限于 “一个很好的图像编辑软件 ,并不知道它的诸多应用方面,实际上, Photoshop 的应用领域很广泛的,在图像、图形、文字、视频、出版各方面都有涉及。 平面图像设计的开展史,可以追溯到人类开展史的源头,人类祖先用来记事的简单符号、文字,那是人类最根底、最原始的平面图像设计实例。当初也许只在于表

21、达某种具体的含义,而不包含艺术、美学的成份。伴随着人类文明的开展,人们对艺术、美的追求和探索逐渐成为开展的主流,当初记事的用途也逐渐淡化。传统的画家经过数十载的训练才掌握绘画这门技能,他们通过笔和纸的演绎描绘自己抽象的思维,表现自己对艺术、美的理解。除了艺术家之外每个人都有追求美的权利,都有一定的创作天赋和自己对生活、艺术、美的独特认识。需要长期的训练才能掌握的技能,对大多数人来说有些“可望不可及 。而电脑的出现使人们的梦想成为现实。 电脑在问世之初只是作为科研机构进行科学计算的工具,体积庞大、价格昂贵、使用复杂是其特点。到 50 至 70 年代,一些科学家像Noll,Harman、Knowt

22、on 以及 Nake 等利用电脑程序语言从事电脑图形图像处理的研究,研究的主题多是图形形成原理的探索,例如,如何编程使得计算机的二进制代码能够表现为一条弧线或是一个三角形等简单的几何图形。70 年代,伴随着个人电脑 PC 的出现,使电脑的体积缩小许多,价格亦降低许多,平面图像技术也逐步成熟,使有兴趣从事电脑艺术创作的人有更多的时机,不用编写令人讨厌的代码程序就能随心所欲地进行艺术创作。在80年代的 10 年中,随着电脑的开展推广,电脑桌上排版 Desk Top Publishing,DTP和数字印前行业 Prepress得以迅速开展,使电脑的输出展现出新的面貌。通过专业的设备,图像自电脑直接输

23、出的精度、准确和美观的程度,几乎可以同照片媲美,甚至在某些方面远远超出照片的效果。精品文档欢迎下载2.1.3 OpenNIOpenNI开放式的自然交互 是一个由业界领导的非营利组织。该组织专注与提高和改善自然交互设备 ,应用软件的互操作能力。通过使用这些硬件和中间件软件 ,来很方便的访问和使用一些设备。 该组织创立于 2021 年 11 月,网站与 12 月 8 号正式公开。主要成员之一是 PrimeSense 公司,Kinect 的核心芯片正是这家公司提供的。其他成员还有:开发 ROS 的机器人公司 Willow Garage,以及游戏公司 Side-Kick 。 OpenNI(开放自然交互

24、 )是一个多语言,跨平台的框架,它定义了编写应用程序,并利用其自然交互的 API。OpenNI API 由一组可用来编写通用自然交互应用的接口组成。 OpenNI 的主要目的是要形成一个标准的 API,来搭建以下两方面之间通信的桥梁: 第一是视觉和音频传感器 包括分析周围环境的设备 ; 第二是视觉和音频感知中间件 用于实时的记录音频和视觉分析的数据并理解它们的软件组件 。 例如,一个中间件可以接收一副有人的图像,计算并返回人手掌在图像中的位置。OpenNI 提供了一组基于传感器设备的 API,以及一组由中间件组件1实现的 API。通过打破传感器和中间件之间的依赖,使用OpenNI的 API 编

25、写应用程序就不需要额外的努力去处理由不同的中间件共存带来的问题跨平台 。 OpenNI 的 API 还允许开发人员直接基于最原始的数据格式编写中间件上层的算法,而不管这些数据是由哪个传感器设备产生的。同时OpenNI 的这种机制给了传感器制造商一个充分的自由空间去制造自己的传感器而不用考虑上层 OpenNI 兼容的应用程序。 OpenNI API 使得自然交互应用开发人员通过传感器输出的标准化了的数据类型来处理真实的三维数据 这些标准化的数据类型可以表示人体全身,手的位置,或者仅仅是一个含有深度信息的像素图等 。编写应用程序的时候不用考虑传感器或中间件供给商相关的细节。 OpenNI 是微软的

26、 xbox 360 配件 kinect,在 PC 上的开源驱动必须安装的一个 API。精品文档欢迎下载2.1.4 3ds Max在应用范围方面,广泛应用于广告、影视、工业设计、建筑设计、多媒体制作、游戏、辅助教学以及工程可视化等领域。拥有强大功能的3DS MAX 被广泛地应用于电视及娱乐业中,比方片头动画和视频游戏的制作,深深扎根于玩家心中的劳拉角色形象就是3DS MAX 的杰作。在影视特效方面也有一定的应用。而在国内开展的相比照拟成熟的建筑效果图和建筑动画制作中,3DS MAX 的使用率更是占据了绝对的优势。根据不同行业的应用特点对 3DS MAX 的掌握程度也有不同的要求,建筑方面的应用相

27、对来说要局限性大一些,它只要求单帧的渲染效果和环境效果,只涉及到比拟简单的动画;片头动画和视频游戏应用中动画占的比例很大,特别是视频游戏对角色动画的要求要高一些;影视特效方面的应用那么把3DS MAX 的功能发挥到了极至。特点:第一,功能强大,扩展性好 。建模功能强大,在角色动画方面具备很强的优势,另外丰富的插件也是其一大亮点 。第二,操作简单,容易上手 。与强大的功能相比, 3ds max 可以说是最容易上手的 3D 软件。第三,和其它相关软件配合流畅 。第四,做出来的效果非常的逼真 。本系统中需要用 3DS MAX 来进行房屋、各种家具、装饰品以及人物模型的建模。2.1.5 KinectK

28、inect 是微软在 2021 年 6 月 14 日对 XBOX360 体感周边外设正式发布的名字。Natal 为开发代号。伴随 Kinect 名称的正式发布, Kinect 还推出了多款配套游戏,包括 Lucasarts 出品的?星球大战?、MTV 推出的跳舞游戏、宠物游戏、运动游戏 ?Kinect Sports?、冒险游戏?Kinect Adventure?、赛车游戏?Joyride?等。图 2-1 Kinect精品文档欢迎下载Natal 微软在 2021 年 6 月 2 日的 E3 大展上。正式公布的 XBOX360 体感周边外设。Natal 彻底颠覆了游戏的单一操作。使人机互动的理念更

29、加彻底的展现出来。 它是一种 3D 体感摄影机(开发代号“Project Natal),同时它导入了即时动态捕捉、影像辨识、麦克风输入、语音辨识、社群互动等功能。 玩家可以通过这项技术在游戏中开车、与其他玩家互动、通过互联网与其他 Xbox 玩家分享图片和信息等。 微软互动娱乐业务副总裁唐 马特里克(Don Mattrick)说:“这个技术让我们在不用出售新主机的情况下就可以步入一个互动娱乐的新纪元。唐马特里克还说: “先前,有种障碍把电动游戏玩家和所有人都分隔了开,“现在,有了 Natal,大家都能参加游戏,使用创造史上最棒的遥控器你。 微软在洛杉矶的 E3 电子娱乐展上揭示 Natal 技

30、术。这场娱乐展正好办在电玩产业的转折期。过去电玩产业都被认为对经济衰退免疫,但是有迹象显示整体产业成长有减缓的迹象。 微软的 Natal 不需要使用任何控制器;它是依靠相机捕捉 三维空间中玩家的运动。微软指出它会让系统更加简易操作来吸引群众。 这个系统也辨识人脸,让玩家自动连上游戏。它还可识别声音和接受命令。 在游戏示范中,玩家们用脚踢仅存在于屛幕中的足球,并用伸手设法拦阻进球。在驾驶游戏中,玩家转动想像中的方向盘来操控电视游戏中的赛车。在绘画游戏,玩家那么是说出颜色 -“蓝色或“浅褐色-然后摇摆双臂来在数码式画板上飞溅一片油漆。2.2 运行环境硬件:COREi7 4GB 内存电脑一台、 Ki

31、nect 一台、数据转换线一根。软件:window7 系统、photoshop4、3DS MAX2021、openni 驱动、unity3D 3.5。精品文档欢迎下载3.系统设计3.1 应用关卡设计应用总共分为三个关卡,每关有不同的玩法,让玩家体验不同的游戏性。3.1.1 应用第一关设计应用第一关:本关为初始关卡,是需要由两个玩家,通过对战的形式,共同进行游戏的。游戏开始,时间限制为每局60 秒,从天上会随机掉下假设干金币,玩家需要通过 Kinect 识别手势,对皮影进行移动控制,成功接住天上掉下来的金币后,方可得分。两个玩家通过反响速度,以及对掉落金币位置的判断,来获得尽可能多的金币。最终6

32、0 秒到时,获得分数高的玩家获胜。3.1.2 应用第二关设计应用第二关:本关是需要由一个玩家来独立进行,完成游戏的。游戏开始,玩家通过 Kinect 识别手势,对皮影进行移动控制,通过向前、向后、跳起、发炮等一系列动作,突破重重困难,取得最后的道具获得胜利。游戏中有计分系统、判定死亡系统、碰撞识别系统、以及爆炸系统等。3.1.3 应用第三关设计应用第三关是有一个玩家来进行游戏。游戏开始,玩家通过Kinect 识别手势对皮影进行控制,向前、向后、跳起、发炮等一系列动作,突破重重困难,取得最后的道具获得胜利。游戏中有计分系统、判定死亡系统、碰撞识别系统、以及爆炸系统等。精品文档欢迎下载4.系统实现

33、4.1 应用的开始场景开始场景实现了按钮在屏幕上响应鼠标 点击,点击开始游戏,游戏即进入关卡选择界面,点击退出游戏,那么退出游戏。 通过体感设备,玩家同样可以通过手势识别来来控制屏幕中的按钮来点击按钮。游戏的开始界面。图 4-1 开始界面4.1.1 场景的选择按钮样式开始按钮样式,点击前与点击后。public void OnGUI()if(NIGUI.Button(new Rect(450,30,45,45),)Application.LoadLevel(0); 精品文档欢迎下载图 4-2 开始按钮退出按钮样式,点击前与点击后。图 4-3 退出按钮4.2 应用的选择关卡场景应用的选关场景是玩家

34、点击玩开始界面中的开始按钮以后,出现的一个游戏选择的界面,玩家可以通过这个界面选择想要玩的关卡。这个界面主要是以按钮为主,同样是可以通过鼠标或者体感设备来控制,去点击按钮。图 4-4 选择关卡4.3 应用的第一关本关考验的是玩家的反响能力,在规定的时间内,从屏幕的上面随机掉下金币,两个游戏角色去抢夺从天上掉下的金币,当时间为零时,获得分数精品文档欢迎下载多的玩家获胜,获得分数少的玩家失败。图 4-5 第一关游戏 效果图4.3.1 时间的倒计时显示时间的倒数,以及时间到零的时候,显示结束画面。在游戏时间到了以后,不再生成金币。倒计时。#pragma strictvar skin:GUISkin;

35、var totalTime:int =60;var timeLeft:int = 0;private var startTime:int;private var showEnd :boolean= false;function Start () startTime = totalTime+Time.time;spawn=GameObject.Find(SpawnObject);function Update () timeLeft = startTime - Time.time;/if(timeLeft=0)showEnd = true;spawn.active = false;if(time

36、Left0)timeLeft = 0;精品文档欢迎下载显示剩余时间 。4.3.2 金币的生成金币对象。下次降落金币的时间。降落金币的频率。每隔一个金币降落的时间段 降落金币一次。生成金币,以及金币掉落的随机坐标。GUI.Label(Rect(Screen.width /2 -100,10,400,40),Time: + timeLeft);var eggPrefab:Transform ;private var nextEggTime:float = 0.0f;private var spawnRate:float= 1.5f;if (nextEggTime malePlayer.maleSc

37、ore)finalResult = Girl Win;else if (femalePlayer.femaleScoremalePlayer.maleScore)finalResult = Boy Win;elsefinalResult = Same Score;精品文档欢迎下载的实现会支持不同的关节。其次就是对已经实现的动作进行更新, 1更新模型的位置:以骨架作为一个整体的根底,然后移动躯干的位置。 2更新关节的位置:要符合逻辑情况,判断关节是否连接到新的位置上。3更新关节定位:关节是否应该改变与自己的方向相匹配的骨架。决定何时使用关节的位置和方向取决于模型由脚本控制的类型。一个被操纵的模型

38、,准备这样一个共同的方向改变,改变它相连的关节的位置。使脚本改变自己的立场,这将干扰和不自然的方式,使模型拉伸,因此被操纵的模型,只有方向应加以控制,而不是位置。4缩放限制:由于游戏中模型的大小与现实玩家的大小是由差异的,为了不发生不符合现实的缩放,要协调统一坐标转换规模。最后是线调试对象,线调试对象是负责制订共同的立场之间的线路。分别通过 NISkeletonControllerLineDebugger 脚本SkeletonLineDebugger 预制和 NISkeletonControllerLineRenderer 脚本SkeletonLineRenderer 预制。图 4-6 模型控

39、制图第四步,完成对模型的预制。 综合这些步骤,使得玩家可以通过kinect 设备识别玩家身体,然后进行对游戏中模型的各种控制。4.4 应用的第二关与第三关玩家控制小人在平台之间跳跃,躲避正方形敌人,捡起苹果和电池,苹果可以加积分,电池可以加能量,当玩家的能量为零时,游戏结束,当玩家到底终点时,玩家挑战成功。精品文档欢迎下载图 4-7 第二关游戏效果图4.4.1 发射子弹系统按下鼠标左键,发射子弹。4.4.2 生命值的控制当游戏角色碰到方形危险品时,生命值会减少一点,当游戏角色生命值为零时,游戏结束。function Update()if (Input.GetMouseButtonDown(0)

40、 transform.FindChild(eye).gameObject.GetComponent(gunlogic).Fire();function hit()health-;if(health=0)animation.CrossFade(dying);isDead=true;function Update () if(health1)Destroy(this.gameObject);精品文档欢迎下载4.4.3 增加生命值与减少生命值的物品苹果与电池,吃到他们会增加分数和一点生命值。4.4.4 摄像机系统设置摄像机跟随着游戏人物一直到游戏结束。跟随对象跟随距离缓存跟随的目标对象X 轴坐标始终

41、保持一直Y 轴坐标跟随人物的跳动而改变function OnTriggerEnter(theObject:Collider)if(theObject.gameO=Bot)var newSparkles:GameObject=Instantiate(sparkles,transform.position,transform.rotation);GameController.totalScore +=10;Destroy(gameObject);var target:GameObject;var dis:float=0;private var targetY:float;tra

42、nsform.position.x=target.transform.position.x;if(RobotController.grounded)targetY=target.transform.position.y+dis;elsetargetY=target.transform.position.y-dis;transform.position.y-=(transform.position.y-targetY)/20;精品文档欢迎下载4.4.5 游戏角色的控制系统游戏开始时, kinect 设备会先对玩家的肢体以及位置进行识别,当识别好玩家以后,屏幕中的皮影模型会跟着玩家的动作而运动。第

43、一步,将模型导入。将一个绑定好骨骼的模型完整的导入到所需要的游戏场景中,这个模型的格式需要使用FBX 格式。第二步,修复模型。一个完整的模型中的动画是不需要的,所以要将动画的组件删除,然后将模型调整成一个 “T型,即身体直立,双臂侧平举180。在调整的过程中,有的一些小的关节会出现不平的情况,我通过调整关节的上下方向的数据进行微调。第三步,连接骨骼控制器。首先是添加NISkeletonController 脚本给导入的模型,这个脚本是负责控制骨架。然后是关节的控制局部,其中包括头部、颈部、躯干、手等,这些都是可以被NISkeletonController 脚本所控制的关节。将这些关节都赋予 N

44、ISkeletonController 脚本,为随后的的体感控制做好准备。 OpenNI 不同的实现会支持不同的关节。其次就是对已经实现的动作进行更新,1更新模型的位置:以骨架作为一个整体的根底,然后移动躯干的位置。2更新关节的位置:要符合逻辑情况,判断关节是否连接到新的位置上。3更新关节定位:关节是否应该改变与自己的方向相匹配的骨架。决定何时使用关节的位置和方向取决于模型由脚本控制的类型。一个被操纵的模型,准备这样一个共同的方向改变,改变它相连的关节的位置。使脚本改变自己的立场,这将干扰和不自然的方式,使模型拉伸,因此被操纵的模型,只有方向应加以控制,而不是位置。 4缩放限制:由于游戏中模型

45、的大小与现实玩家的大小是由差异的,为了不发生不符合现实的缩放,要协调统一坐标转换规模。最后是线调试对象,线调试对象是负责制订共同的立场之间的线路。分别通过NISkeletonControllerLineDebugger 脚本 SkeletonLineDebugger 预制和NISkeletonControllerLineRenderer 脚本 SkeletonLineRenderer 预制。第四步,完成对模型的预制。 综合这些步骤,使得玩家可以通过kinect 设备识别玩家身体,然后进行对游戏中模型的各种控制。精品文档欢迎下载5.系统测试5.1 程序调试在设计系统的过程中,存在一些错误是必然的

46、。对于语句的语法错误,在程序运行时自动提示,并请求立即纠正,因此,这类错误比拟容易发现和纠正。但另一类错误是在程序执行时由于不正确的操作或对某些数据的计算公式的逻辑错误导致的错误结果。这类错误隐蔽性强,有时会出现,有时又不出现,因此,对这一类动态发生的错误的排查是耗时费力的。另外,Kinect 是一个需要识别人物各个肢体动作的的设备,需要更严谨的位置参数的设定。精品文档欢迎下载5.2 程序的测试软件测试的意义在于,保证发布出去的产品到达了一定的质量标准。软件测试工程师的工作就是利用测试工具按照测试方案和流程对产品进行功能和性能测试,甚至根据需要编写不同的测试工具,设计和维护测试系统,对测试方案

47、可能出现的问题进行分析和评估。执行测试用例后,需要跟踪故障,以确保开发的产品适合需求 。使用人工或者自动手段来运行或测试某个系统的过程,其目的在于检验它是否满足规定的需求或弄清预期结果与实际结果之间的差异。它是帮助识别开发完成的计算机软件的正确度、完全度和质量的软件过程。5.2.1 测试的重要性及目的 测试的重要性测试应用系统的重要性是不言而喻的,软件测试学仅处于运行维护阶段之前,是软件产品交付用户使用之前保证软件质量的重要手段。近来,软件工程界趋向于一种新的观点,即认为软件生命周期每一阶段中都应包含测试,从而检验本阶段的成果是否接近预期的目标,尽可能早的发现错误并加以修正,如果

48、不在早期阶段进行测试,错误的延时扩散常常会导致最后成品测试的巨大困难。在软件开发的总本钱中,用在测试上的开销要占 30到 50。如果把维护阶段也考虑在内,讨论整个软件生存期时,测试的本钱比例也许会有所降低,但实际上维护工作相当于二次开发,乃至屡次开发,其中必定还包含有许多测试工作。在实践中,软件测试的困难常常使人望而却步或敷衍了事,这是由于对测试仍然存在一些不正确的看法和错误的态度。虽然,为了解决一个错误会用上很长时间与精力,但是测试是必须的,绝不能简单的敷衍了事,将存在的问题一一解决了,才能是制作出来的应用系统更加完整。 测试的目的如果测试的目的是为了尽可能多地找出错误,那么测

49、试就应该直接针对软件比拟复杂的局部或是以前出错比拟多的位置。第一,软件测试是为了发现错误而执行程序的过程 ;第二,测试是为了证明程序有错,而不是证明程序无错误 ;精品文档欢迎下载第三,一个好的测试用例是在于它能发现至今未发现的错误;第四,一个成功的测试是发现了至今未发现的错误的测试。这种观点可以提醒人们测试要以查找错误为中心,而不是为了演示软件的正确功能。但是仅凭字面意思理解这一观点可能会产生误导,认为发现错误是软件测试的唯一目,查找不出错误的测试就是没有价值的,事实并非如此。 首先,测试并不仅仅是为了要找出错误。通过分析错误产生的原因和错误的分布特征,可以帮助工程管理者发现当前所采用的软件过

50、程的缺陷,以便改良。同时,这种分析也能帮助我们设计出有针对性地检测方法,改善测试的有效性。其次,没有发现错误的测试也是有价值的,完整的测试是评定测试质量的一种方法。 5.2.2 测试的步骤 第一,模块测试:在这个测试步骤中所发现的往往是编码和详细设计的错误。 第二,系统测试:在这个测试步骤中发现的往往是软件设计中的错误,也可能发现需求说明中的错误。 5.2.3 测试的主要内容 第一,单元测试 单元测试集中在检查软件设计的最小单位 模块上,通过测试发现实现该模块的实际功能与定义该模块的功能说明不符合的情况,以及编码的错误。 第二,系统测试 软件开发完成以后,最终还要与系统中其他局部配套运行,进行

51、系统测试。包括功能测试、平安测试、强度测试和性能测试等。5.3 应用的最后生成最后将整个应用测试完成无误以后,会将游戏输出一个.exe 格式应用程序,分辨是 1024*768,这个格式应用配上原有的数据包,可以在任何的电脑上进行游戏。精品文档欢迎下载结论图 6-1 游戏完成效果图图 6-2 游戏失败效果图以上的两幅图分别是每关完成时候的游戏效果图,有成功的、有失败的。精品文档欢迎下载自从毕业设计的正式开始,选题是利用Unity3D 作为设计的根底,再利用微软公司新出的 xbox 中的 kinect 设备的进行游戏控制的体感应用,这是一个全新的尝试,每一项都需要去学习,在学习的过程中,我对本专业

52、的根本理论、专业知识和根本技术进行了梳理,并有了更深入的了解,使我在四年中所学到的知识得到了升华,并且还能在毕业设计的制作过程中学到新的知识。首先,通过任务书中的内容,以及所需要的一些重要资料,在网上进行查找,并且将这些知识进行汇总,整理好备用,为以后的制作提供方便。这个应用主要是利用 unity3D 进行系统整体框架的搭建, 然后做出一系列相关的根底设置。但是 unity3D 对于我来说还是比拟陌生的,因为在大学期间,对 unity3D 的学习只是些粗浅的入门知识,这就使得我对unity3D 的了解,仅仅局限在那些相比照拟宽泛的根底知识层面上。但这些粗浅的概念和简单的根底知识,对于我此次要做

53、的游戏应用的制作来说,显然是远远不够的,那么这就需要我对很多专业性知识进行更深一步的学习与研究,将以前学的知识最大化。然而在我寻找学习途径和相关书籍、资料时发现,这款软件刚刚在大陆发行不久,所以中文文献很少,这便进一步增加了我学习的难度。然而,这些困难并没有阻止我不断探索、学习的愿望。在这期间我通过自己的努力,到国家图书馆查阅了大量的资料, 查看各种关于 unity3D 的网站和参与一些由 Unity 相对专业的人士以及爱好者组织的讨论组,通过我的学习对此软件有了更加深刻的了解,应用的也更加熟练。然后,比 Unity3D 更加困难的就是 kinect 的使用。这是一个全新的设备,不管是从硬件还

54、是软件。由于是要通过Unity3D 这个软件进行开发,所以不能使用微软公司自己的驱动来进行安装,只能用另一个驱动程序openni 来对 kinect 进行开发。Unity3D 程序里根本上是使用 JavaScript来进行脚本的编辑,而 openni 需要用 C#进行脚本编辑,在这里就需要将这两种脚本进行互相的改编 。接着就是这次毕业设计的一个重要的环节,团队合作。这个题目是要我和一名艺术的学生一起合作完成。我主要负责框架的建设、代码的编写、游戏的设置等工作,而艺术的同学需要进行美工的设计、模型的制作、游戏的筹划等工作。这种合作是在以前的学习中没有的,这是对社会接轨的一个很好的尝试,让我们更加

55、熟悉团队合作完成一项工程,使我们提高团队精神。精品文档欢迎下载最后,总结这次在我的程序设计过程中,我感觉到书本上的知识是不够的,只有把理论与实践相结合才能够真正的学到知识。同时,系统中还存在许多问题,有待在日后的使用中发现和解决。编程前的深思熟虑是减少程序调试工作量的重要方法,只有进行充分考虑,才会减少调试过程中的工作量。虽然在开始写程序之前做了很多的准备工作,但在真正的写程序时仍然发现许多问题。 做系统时刚开始觉得很简单,但一真正开始做的时候才发现有很多的难题等待我去解决,有的时候一个问题刚解决完紧接着又出现了另一个问题。此次毕业设计提升了我的工程开发的能力,初步形成了一定的工程开发思想。精品文档欢迎下载致谢从论文选题到搜集资料,从写稿到反复修改,期间 我经历了喜悦、聒噪、痛苦和彷徨,在 制作毕业设计与 写作论文的过程中心情是如此复杂。如今,伴随着这篇毕业论文的最终成稿 以及毕业设计的完成 ,复杂的心情烟消云散,自己甚至还有一点成就感。那种感觉就宛如在一场盛大的颁

温馨提示

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

评论

0/150

提交评论