[初二数学]天津大学本科生毕业设计-陈钺0605.doc

上传人:音乐台 文档编号:1971679 上传时间:2019-01-27 格式:DOC 页数:40 大小:492.50KB
返回 下载 相关 举报
[初二数学]天津大学本科生毕业设计-陈钺0605.doc_第1页
第1页 / 共40页
[初二数学]天津大学本科生毕业设计-陈钺0605.doc_第2页
第2页 / 共40页
[初二数学]天津大学本科生毕业设计-陈钺0605.doc_第3页
第3页 / 共40页
亲,该文档总共40页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述

《[初二数学]天津大学本科生毕业设计-陈钺0605.doc》由会员分享,可在线阅读,更多相关《[初二数学]天津大学本科生毕业设计-陈钺0605.doc(40页珍藏版)》请在三一文库上搜索。

1、毕业设计(论文)说明书学 院 软件学院 专 业 软件工程 年 级 2007 级 姓 名 陈钺 指导教师 刘艳 2011年 5月 16日毕业设计(论文)任务书题目:基于视频的互动游戏平台研发学生姓名 陈钺 学院名称 软件学院 专 业 软件工程 学 号 3007218032 指导教师 刘艳 职 称 副教授 一、原始依据 工作基础 基于视频的运动捕获的相关技术,在二维上本实验室有较为成熟的研究,可以做到实时的二维运动跟踪,并已经有较为完整的应用范例,能给要开发的游戏系统提供所需要的实时运动信息。游戏开发需要Windows程序设计、图形学、三维游戏引擎的相关知识可以使开发更顺利的进行。 研究条件开发平

2、台:Windows开发工具:Microsoft Visual C+ 2010 Express 应用环境基于视频的人体运动分析可广泛应用于智能监控、体育运动分析、动画生成、人机交互、视频会议、医疗诊断、虚拟现实等方面,具有广阔的研究和应用前景。使用体感技术作为输入手段的游戏是新型电子游戏研究的热门方向,已经并将继续有研究人员投身于体感游戏制作和游戏设计之中。 工作目的为本实验室已有的基于视频的动作捕获系统提供测试和应用平台,应用现有算法基础和开源游戏引擎开发出开发出一套具备良好用户界面的、较完整的应用软件平台。同时对体感游戏的设计思路进行深入研究。二、参考文献1 Shakhnarovich G,

3、Viola P, Darrell T,Fast pose estimation with parameter-sensitive hashing C,NINTH IEEE INTERNATIONAL CONFERENCE ON COMPUTER VISION, VOLS I AND II, PROCEEDINGS,2003, 750757.2 C.J.Taylor. Reconstruction of articulated objects form point correspondences in a single uncalibrated imageC.CVIU,80: 346-363,

4、2000.3 朱强,庄越挺, 潘云鹤, 基于紧身衣的人体动画研究J,软件学报。2002, 13(4): 601607.4 Barron.C, Kakadiaris.IA, . Estimating anthropometry and pose from a single image J. Computer Vision And Image Understanding, 2001,81(3):2692845 沈军行, 孙守迁, 基于shape from silhouette方法的虚拟人体构造J,中国图形图像学报:A辑,2002,7(10):108910936 庄越挺,刘小明,潘云鹤,一种基于视频

5、的人体动画骨架提取技术J,计算机研究与发展,2000, 37(4): 498506三、设计(研究)内容和要求1设计内容本课题计划应用现有基于视频的动作捕捉算法基础和开源游戏引擎开发出开发出一套具备良好用户界面的、较完整的应用软件平台。2设计目标及要求完成以下的工作内容:l 熟悉Windows平台下的C+程序开发l 查阅资料,了解视频处理和运动捕获的算法l 实现基于Ogre的游戏系统l 实现已有运动捕捉算法与游戏系统的整合l 完成基于体感输入的游戏系统开发,进行简单系统测试l 完成15k-20k字的毕业设计论文 指导教师(签字)年 月 日审题小组组长(签字)年 月 日天津大学本科生毕业设计(论文

6、)开题报告课题名称基于视频的互动游戏平台研发学院名称软件学院专业名称软件工程学生姓名陈钺指导教师刘艳一、课题的来源及意义当今世界,电子游戏已经在方方面面影响了人们的生活方式和思考方式。电子游戏产业也以其高额的利润成为热门产业。目前,大部分的电子游戏一般使用一些特定的设备来完成对游戏的控制,例如游戏杆、鼠标、键盘等,无疑这些控制器可以完成控制任务,但是缺陷是明显的:它们强制改变了人体的默认动作,尤其当玩家进行运动类游戏时,游戏的动作和实际从事这些运动的动作完全不同,这大大的破坏了游戏的真实感。玩家对真实感的需求导致了体感技术的出现和发展。体感技术,也可以称之为动作感应控制技术,即由计算机通过某些

7、特殊方式对用户的动作进行识别、解析,并按照预定方式,计算机对相应动作做出反馈。由于体感技术直接使用身体动作作为游戏输入,因此它的真实感远高于普通输入方式,在运动游戏、格斗游戏、舞蹈游戏等与现实密切相关的游戏类型中表现的尤为明显。除了高沉浸式的游戏体验以外,体感游戏还一改电子游戏危害身体健康的的缺点,它实现了在游戏中运动,给人们带来了一种更健康的娱乐方式和更快乐的运动方式。体感游戏的诸多优势,使它一直以来受到各大游戏厂商的特别关注,从跳舞毯、Wii到近期发布的Kinect以及基于这些平台而开发出来的众多游戏都证明了体感技术和体感游戏的广阔前景和其作为未来游戏发展方向的重要价值。本课题以通过视频的

8、动作捕获技术为基础,结合开源游戏引擎实现一个通过肢体动作直接控制的三维互动游戏,本课题对动作捕捉技术和相关游戏平台的研究对于游戏技术未来的发展和游戏设计思路的开阔都具有非常积极的意义。二、国内外发展状况由于体感游戏对于硬件的高依赖性,大部分体感游戏都必须在某一特定的运动捕获系统上运行,运动捕获系统主要的应用方式:一种是基于遥感器的运动捕获,另一种是基于视频的运动捕获。基于遥感器的动作捕获使用可手持的传感器来获得肢体的运动数据,任天堂的Family Computer(即国内俗称的红白机的主机)上的光电枪可谓是体感控制观念最原始的体现,而此类应用最典型的同样是任天堂公司的产品:Wiimote (即

9、Wii主机的遥控器),Wiimote使用一块ADXL330 MEMS(微机电系统)三轴加速度传感芯片。在X/Y/Z三个轴向上感知3G的加速度,采用模拟的方式输出结果,从而得到玩家手臂的运动数据。其他类似产品的原因也大致相同,这里不再赘述。跳舞毯同样是通过传感器来获得运动数据,只不过和Wiimote不同的是它的传感器位置固定。但在数据输入方式本质上并无特殊之处。由于以拥有可手持的传感器,此类平台上的游戏以射击、器械运动(如棒球,网球等)最有特色,著名作品包括:Barker Bills Trick Shooting、Wii Sports等等。另一种动作捕获的应用方式为基于视频的动作捕获,它没有传感

10、器,玩家直接在摄像头前作出动作,系统即可识别。代表系统有SCE公司EYETOY和微软公司的Kinect,EYETOY的原理是:摄像头以固定的速率采集图像,当场景内无变化时,前后两幅图像内容一致,当有物体运动时则产生差异,因此通过简单的对相邻两帧图像相减,得到画面中不同的部分,即可以感知是否有运动物体及运动物体的一些属性,比如大小,位置和颜色等。而Kinect则更为高级,它使用激光散斑(laser speckle)来获得摄像头面前玩家的三维动作信息,在2米范围内其精度可以到达1厘米。基于视频的动作捕获可以获得全身的运动数据,使得游戏的设计思路开阔了不少,除了已有的射击、运动、舞蹈游戏之外,格斗游

11、戏,绘画和非器械游戏也可以通过体感来控制,著名作品包括:The Fight、Brunswick、Kinect Adventures、Kinect Zoo等等。本实验的输入是基于视频的,故而我们选择了最为经典的体感游戏类型舞蹈类游戏来作为研究对象,从跳舞毯开始舞蹈类游戏一直是体感游戏最具代表的类型,它能非常好的体现出基于视频的动作捕获技术的特点和优势,同时舞蹈类游戏在电子游戏发展史一直占有重要位置,我们可以从前人的努力中获得大量经验。三、本课题的研究目标本课题计划应用现有基于视频的动作捕捉算法基础和开源游戏引擎开发出一套具备良好用户界面的、较完整的应用软件平台。四、本课题的研究内容 掌握Wind

12、ows平台下的C+图形程序开发的开发流程和技术,掌握游戏引擎的使用方法,熟悉视频处理和运动捕获的算法,并将其较好的整合到游戏系统之中,最后实现以视频作为输入以Ogre作为核心的游戏系统,得到一个较为完整的技术展示平台和一个具有可玩性的游戏。六、研究手段 Microsoft Visual C+ 2010 Express,OGRE,OpenCV七、进度安排2010年12月20日-2011年3月 10 日 查阅资料,完成任务书 ,完成开题报告2011年 3月11日2011年3月 12日 开题报告会2011年 3月 13日2011年4月24日 确定软件设计并完成设计的主要功能2011年 4月25日20

13、11年4月30日 毕业设计中期报告会2011年 5月1日2011年5月22日 对程序进行调整和完善2011年 5月23日2011年6月22日 完成论文及答辩八、实验方案的可行性分析本试验室已经完成了从视频中实时提取二维动作数据的全部算法攻关工作,并采用Matlab和openCV分别进行了算法的实验,实验结果表明算法有效。,可以做到实时的二维运动跟踪,并已经有较为完整的应用范例,能给要开发的游戏系统提供所需要的实时运动信息。实验室前期项目中曾经完成了三维游戏引擎的研发工作,对三维游戏的基本框架非常熟悉。可以做为本次毕设的工作基础。九、已具备的实验条件 基于视频的运动捕获的相关技术,在二维上本实验

14、室有较为成熟的研究,可以做到实时的二维运动跟踪,并已经有较为完整的应用范例,能给要开发的游戏系统提供所需要的实时运动信息。十、主要参考文献1 Shakhnarovich G,Viola P, Darrell T,Fast pose estimation with parameter-sensitive hashing C,NINTH IEEE INTERNATIONAL CONFERENCE ON COMPUTER VISION, VOLS I AND II, PROCEEDINGS,2003, 750757.2 C.J.Taylor. Reconstruction of articulate

15、d objects form point correspondences in a single uncalibrated imageC.CVIU,80: 346-363, 2000.3 朱强,庄越挺, 潘云鹤, 基于紧身衣的人体动画研究J,软件学报。2002, 13(4): 601607.4 Barron.C, Kakadiaris.IA, . Estimating anthropometry and pose from a single image J. Computer Vision And Image Understanding, 2001,81(3):2692845 沈军行, 孙守迁

16、, 基于shape from silhouette方法的虚拟人体构造J,中国图形图像学报:A辑,2002,7(10):108910936 庄越挺,刘小明,潘云鹤,一种基于视频的人体动画骨架提取技术J,计算机研究与发展,2000, 37(4): 4985067 周松华,肖靓,郭敏,基于SVM的图像分类研究 J,井冈山学院学报,2009, 30(6): 43458 Sahbi H.Coarse-to-Fine Support Vector Machines for Hierarchical Face Detection.(D),University of Versailles,20039 Welc

17、h G, Bishop G. An introduction to Kalman filterC. UNC-Chapel Hill, TR 95-041, July 24, 2006:11610 赵怀勋,郑敏, 李志强. 一种自适应光照的肤色识别算法J. 微电子学与计算机,2009,28(6): 158164选题是否合适: 是 否课题能否实现: 能 不能指导教师(签字)年 月 日选题是否合适: 是 否课题能否实现: 能 不能审题小组组长(签字)年 月 日摘 要基于视频的运动捕获技术是计算机视觉领域的重要课题之一,基于该技术的互动游戏是未来电子游戏发展的重要方向之一。本文探索基于视频的人体运动捕

18、获技术在3D游戏中的应用。集中于游戏实现及与已有算法的对接。 首先依靠开源引擎Ogre实现游戏对3D的支持,并使用CEGUI支持玩家与游戏功能的交互,使用FMod音乐引擎提高游戏的乐趣。其次,探索从基于视频的人体运动捕获技术中获得的人体运动数据和Ogre引擎动画模块的连接,本文以自定义数据格式来完成这个任务。本文同时研究了如何应用OpenCV以及DirectShow来实现对摄像头的支持。 最后,通过对游戏的测试,保证游戏的稳定性和可用性。关键词:Ogre;OpenCV;电子游戏;体感ABSTRACTVideo-based motion capture technology is an impo

19、rtant topic in computer vision, the interactive game based on this technology is the future direction of electronic games development. This article explores the human body motion capture based video game in 3D applications. Focus on the game implementation and docking with the existing algorithms.Fi

20、rst, open-source 3D game engine Ogre support implementation and CEGUI support for players to interact with game features, the FMod Music Engine to improve the game.Secondly, to explore the human body from a video-based motion capture technology to obtain data and human motion animation module Ogre e

21、ngine connected to a custom data format this article to accomplish this task.This paper also studied how to achieve the OpenCV and DirectShow camera support.Finally, test the game to ensure the stability and availability of the game.Key words:Ogre; OpenCV; Electronic games; Somatosensory目 录ABSTRACT1

22、0第一章 概述11.1 研究的背景和意义11.2 基于视频捕获的电子游戏在国内外的发展状况11.3 本课题所作的工作21.3.1 实现舞蹈游戏21.3.2 与运动捕获技术的交互31.3.3 基于软件工程思想的项目管理31.4 论文结构3第二章 本课题所用技术4第三章 系统需求53.1 需求概述53.2 用例描述53.3 模块描述73.3 流程描述9第四章 系统设计124.1 系统逻辑结构124.2 程序流程134.3 类设计15第五章 系统实现175.1 程序启动顺序175.1.1 目的175.1.2 Ogre的启动顺序175.1.3 本系统的实现方式175.1.4 资源的加载185.2 游戏

23、流程控制195.3 音乐195.3.1 线程的启动195.3.2 音乐的试听和播放195.4 角色和场景选择195.4.1 位置的记录195.4.2 动画的实现205.5 动画播放205.6 动作数据获取205.6.1 运动捕获算法概述205.6.2 交互方式及数据格式215.6.3 数据处理215.7 摄像数据的获取和展示21参考文献222天津大学2007届本科生毕业设计(论文)第一章 概述1.1 研究的背景和意义当今世界,电子游戏已经在方方面面影响了人们的生活方式和思考方式。电子游戏产业也以其高额的利润成为热门产业。目前,大部分的电子游戏一般使用一些特定的设备来完成对游戏的控制,例如游戏杆

24、、鼠标、键盘等,无疑这些控制器可以完成控制任务,但是缺陷是明显的:它们强制改变了人体的默认动作,尤其当玩家进行运动类游戏时,游戏的动作和实际从事这些运动的动作完全不同,这大大的破坏了游戏的真实感。玩家对真实感的需求导致了体感技术的出现和发展。体感技术,也可以称之为动作感应控制技术,即由计算机通过某些特殊方式对用户的动作进行识别、解析,并按照预定方式,计算机对相应动作做出反馈。由于体感技术直接使用身体动作作为游戏输入,因此它的真实感远高于普通输入方式,在运动游戏、格斗游戏、舞蹈游戏等与现实肢体运动密切相关的游戏类型中表现的尤为明显。除了高沉浸式的游戏体验以外,体感游戏还一改电子游戏危害身体健康的

25、的缺点,它实现了在游戏中运动,给人们带来了一种更健康的娱乐方式和更快乐的运动方式。体感游戏的诸多优势,使它一直以来受到各大游戏厂商的特别关注,从跳舞毯、Wii到近期发布的Kinect以及基于这些平台而开发出来的众多游戏都证明了体感技术和体感游戏的广阔前景和其作为未来游戏发展方向的重要价值。本课题以通过视频的动作捕获技术为基础,结合开源游戏引擎实现一个通过肢体动作直接控制的三维互动游戏,本课题对动作捕捉技术和相关游戏平台的研究对于游戏技术未来的发展和游戏设计思路的开阔都具有非常积极的意义。1.2 基于视频捕获的电子游戏在国内外的发展状况由于体感游戏对于硬件的高依赖性,大部分体感游戏都必须在某一特

26、定的运动捕获系统上运行,运动捕获系统主要的应用方式:一种是基于遥感器的运动捕获,另一种是基于视频的运动捕获。基于遥感器的动作捕获使用可手持的传感器来获得肢体的运动数据,任天堂的Family Computer(即国内俗称的红白机的主机)上的光电枪可谓是体感控制观念最原始的体现,而此类应用最典型的同样是任天堂公司的产品:Wiimote(即Wii主机的遥控器),Wiimote使用一块ADXL330 MEMS(微机电系统)三轴加速度传感芯片。在X/Y/Z三个轴向上感知3G的加速度,采用模拟的方式输出结果,从而得到玩家手臂的运动数据。其他类似产品的原因也大致相同,这里不再赘述。跳舞毯同样是通过传感器来获

27、得运动数据,只不过和Wiimote不同的是它的传感器位置固定。但在数据输入方式本质上并无特殊之处。由于以拥有可手持的传感器,此类平台上的游戏以射击、器械运动(如棒球,网球等)最有特色,著名作品包括:Barker Bills Trick Shooting、Wii Sports等等。另一种动作捕获的应用方式为基于视频的动作捕获,它没有传感器,玩家直接在摄像头前作出动作,系统即可识别。代表系统有SCE公司EYETOY和微软公司的Kinect,EYETOY的原理是:摄像头以固定的速率采集图像,当场景内无变化时,前后两幅图像内容一致,当有物体运动时则产生差异,因此通过简单的对相邻两帧图像相减,得到画面中

28、不同的部分,即可以感知是否有运动物体及运动物体的一些属性,比如大小,位置和颜色等。而Kinect则更为高级,它使用激光散斑(laser speckle)来获得摄像头面前玩家的三维动作信息,在2米范围内其精度可以到达1厘米。基于视频的动作捕获可以获得全身的运动数据,使得游戏的设计思路开阔了不少,除了已有的射击、运动、舞蹈游戏之外,格斗游戏,绘画和非器械游戏也可以通过体感来控制,著名作品包括:The Fight、Brunswick、Kinect Adventures、Kinect Zoo等等。本实验的输入是基于视频的,故而我们选择了最为经典的体感游戏类型舞蹈类游戏来作为研究对象,从跳舞毯开始舞蹈类

29、游戏一直是体感游戏最具代表的类型,它能非常好的体现出基于视频的动作捕获技术的特点和优势,同时舞蹈类游戏在电子游戏发展史一直占有重要位置,我们可以从前人的努力中获得大量经验。1.3 本课题所作的工作1.3.1 实现舞蹈游戏本文所作的工作为实现一个基于运动捕获技术(体感技术)的舞蹈游戏,该舞蹈游戏具有电子游戏应该具有的游戏特性:可控的游戏流程,能吸引玩家的游戏方式。同时具有代表未来电子游戏发展方向的先进的交互手段:基于视频的运动捕获。本游戏的主要游戏行为是在摄像头前做出游戏中的作为指导者身份存在的3D舞蹈者模型所示范的动作,系统将捕获玩家的舞蹈动作,实时控制游戏内另一个代表玩家自己的3D模型。同时

30、系统将对两者的运动进行比较,来评价玩家的舞蹈动作。出于游戏性的考虑,本游戏还提供了与核心游戏相关的其他功能,包括在舞蹈过程中播放音乐,对该音乐的选择。指导者以及玩家模型的选择。舞蹈场景的选择。由于本游戏同时承担了由于本游戏同时承担了对运动捕获算法的测试工作,所以游戏会提供一个窗口来呈现摄像头所捕获的数据。1.3.2 与运动捕获技术的交互(这部分我做完了在写吧.)1.3.3 基于软件工程思想的项目管理在课题的进行过程中,每一个部分都按照软件工程的方法来管理。开发过程被分为:需求及分析、设计、实现和测试四个阶段。因为本系统为实验性质,所以需求部分并不会占太大比例,因而这里把需求及分析阶段合而为一。

31、各个阶段的均有比较严格的时间安排和完整的文档。需求及分析阶段编写了系统用例以及用例的详细描述,以及系统的主要过程图。这些文档描述了系统需求以及未来的实现效果。设计阶段编写了系统的设计文档,其中描述了系统的逻辑结构,程序流程,类描述等更加细节的问题。测试阶段同样编写了测试文档,用来对测试用例进行管理。1.4 论文结构第一章:介绍了本文的研究背景以及国内外的现状,并对本文的工作进行了概要性描述.第二章:介绍本课题所用的技术,以及应用这些技术的方式。第三章:描述系统的需求第四章:描述针对系统需求而做出的系统设计方案第五章:详尽描述系统的实现方式第六章:介绍对现有系统的不足,并对未来的工作提出建议。第

32、二章 本课题所用技术本课题通过一系列的开源技术来实现主要功能,其中包括:OpenCV、Ogre、CEGUI,同时还应用了一些非开源但是免费的技术,包括Fmod、DirectShow。程序还使用了多线程技术。开发平台为Microsoft Visual Studio 2010 Express。OpenCV是一个基于BSD许可证授权的跨平台计算机视觉库,它可以高效的进行视频的处理,在本课题中,OpenCV主要在动作捕获相关的算法中承担摄像头图像的处理工作,为动作捕获提供基础。同时在呈现摄像头捕获的图像的过程中,OpenCV提供了较为方便的功能。Ogre是一个基于LGPL许可证授权的3D图形引擎,它能

33、提供非常方便高效的3D绘制。同时它具有非常完整文档和丰富的学习资源。在本课题中,Ogre是整个系统的核心,其他系统均以某种方式与它进行着交互。它负责游戏中所有的场景和物体的绘制工作,同时还与那些不是以运动捕获进行的人机交互有着重要的关系。游戏流程的控制并没有做到可以完全交给运动捕获系统来完成,所以依然需要一个传统的、基于图形的界面系统。CEGUI就是这样的系统。它是一个非常成熟的开源图形界面库,能非常方便的完成界面的绘制和对鼠标事件的反应。同时它可以与Ogre非常完美的结合到一起。Fmod是被广泛应用的跨平台声音引擎,它提供了一些非常方便的借口来实现本系统对音乐的需求。从而避免了直接操作Dir

34、ectSound所带来的麻烦,使整个系统的设计更加的简洁、清晰。DirectShow被应用在摄像头的数据提取上。让玩家直观的的了解自己做了什么动作。由于游戏过程中需要同时播放音乐、动画和处理运动捕获系统所获得的数据,所以使用多线程技术是必要的,它是系统能够并行的完成这些任务。第三章 系统需求3.1 需求概述本系统以摄像头为输入设备,获得人体关节的运动数据,来控制游戏中代表玩家的模型。游戏的进行时要求玩家按照系统提示和虚拟模型的指导运动身体,当运动满足要求时即可得分,而当运动与系统要求不符是则会扣分。系统要求的运动会根据音乐节奏决定,当音乐结束本轮游戏结束。游戏分为三个场景:第一选择歌曲,第二选

35、择玩家和指导者的3D模型以及游戏场景,第三是游戏的主场景,显示已经选择好的场景和人物。游戏功能包括:基于视频的动作捕获,虚拟指导,运动提示,玩家虚拟模型,测试模式,三维场景模式,3d显示模式,音乐系统,记分系统,暂停及重新开始。3.2 用例描述本节用先用图片的方式列出用例,然后再对用例进行文字描述。图3-1 系统用例1 选择歌曲玩家选择将在游戏进行中播放的音乐,指导者的动作将与该音乐有关。2 选择场景选择在游戏进行时的背景。3 选择玩家模型选择在游戏进行时玩家控制的虚拟人物的模型4 选择指导者模型选择游戏进行时指导者的模型5 开始游戏开始舞蹈游戏6 退出游戏退出程序7 暂停游戏在游戏进行中停止

36、指导者的运动和玩家对玩家模型的控制,并提供退出游戏和重新开始游戏的选项。8 重新开始游戏重新开始同样的游戏,歌曲、场景、人物模型均不改变。9 查看分数显示玩家的游戏得分10 控制玩家模型玩家通过运动肢体来控制游戏中的模型,它将做出与玩家相似的动作。3.3 模块描述l 动作捕获本模块通过处理摄像头视频,得到系统要求的玩家运动数据并提供给场景绘制模块。模块输入:分辨率在30万像素以上、至少20帧/秒采样速率的摄像头;摄像头应放置于显示器正上方或正前方,用户(站在摄像头正前方5-10米处。模块输出:玩家运动信息。l 运动数据处理通过动作捕获系统得到的运动信息,需要经过处理,把它转化为游戏引擎需要的模

37、型运动数据才能使游戏中的人物模型开始运动。模块输入:运动捕获系统传递的原始运动数据和关卡信息中的运动数据。模块输出:能被游戏引擎识别的模型运动信息。l 模型及场景绘制 提供游戏内主要三维模型的绘制,包括:场景、指导模型和玩家模型。虚拟指导用于帮助玩家作出正确动作。玩家模型用于帮助玩家更直观的了解自己的动作。本模块的工作主要由三维游戏引擎Ogre完成。名词解释:1、场景:根据关卡数据进行的三维场景的绘制,指导模型、玩家模型均位于此场景之中。2、虚拟指导:三维人形模型,由系统根据关卡数据中的模型数据生成,游戏开始后会会根据本关卡的运动数据在屏幕上进行运动。3、玩家模型:系统根据关卡数据中的模型数据

38、生成的三维模型,游戏开始后根据运动捕获系统输出的运动数据在屏幕上运动。l 游戏控制用于收集玩家命令并作出反应。程序前控制:输出设备设置、游戏视频设置、游戏音频设置,这三种设置通过Windows菜单方式进行。游戏前控制:指导模型选择、玩家模型选择、场景选择,这三者会给予玩家预览,玩家通过用鼠标点选预览模型的方式进行选择。舞蹈数据选择(其中包括了音乐数据)、开始新游戏、退出程序、启用指导、启用玩家模型、启用线条提示(包括指导和玩家两个)。以上选择通过游戏菜单实现。游戏中控制:1、游戏暂停与继续:通过玩家肢体动作实现,当玩家作出该动作时游戏暂停;而在玩家用鼠标点选继续游戏后20秒,游戏将继续。2、重

39、定位:当游戏暂停时,游戏界面上会出现代表关卡长度的计时条,玩家可用鼠标拖动计时条来重定位关卡进度。3、关卡退出:当游戏暂停时,玩家可以用鼠标点选退出指令,推出当前关卡,返回游戏准备界面。l 关卡管理 主要用于综合玩家设置,为关卡提供非动作数据支持。模块输入:游戏控制模块中游戏前控制时玩家输入的关卡信息,包括:指导模型文件、玩家模型文件、场景信息,舞蹈及音乐数据,以及是否启用指导与玩家模型,是否启用线条提示。模块输出:包含关卡数据的数据结构。提供给场景及模型绘制模块进行绘制。l 游戏性 此模块负责除去游戏控制之外的与游戏性相关的工作,包括音乐系统及记分系统。音乐系统:音乐信息与舞蹈动作信息捆绑,

40、当一套舞蹈动作(或者音乐)被选取后,游戏开始后将播放这段音乐。同时在玩家选择时,将有音乐预览提供。记分系统:游戏进行界面下方将实时显示玩家当前得分。记分方法如下:游戏过程中,如果玩家在规定时间内到达预定出发点和终点,系统将给予加分,如果玩家为在规定时间内到达或者未按照要求轨迹运动,该动作即视为无效,系统将扣分。对于未按照轨迹运动的判定问题:一旦玩家模型关键点离开规定范围,无论以后动作是否正确,系统都将此次运动判定无效,同时如果在下一个动作开始之前玩家因为未按照之前运动轨迹运动而不能达到预定起点,下次运动也将作废。l 拓展系统 本模块为可选方案,给系统提供更多的选择和细节。三维运动数据:开启三维

41、运动数据时,动作捕获模块将为玩家模型提供第三维的运动数据,绘制时系统将根据此数据让玩家模型进行运动,同时指导模型也将开启三维运动模式,而不仅是平面运动。立体显示:当游戏输出到立体显示模块时的系统运行模式,将提供更多的和立体显示有关的选项。线条提示:由系统根据关卡数据生成,游戏开始后在代表玩家模型和虚拟指导模型重要关节当前位置以及下一步运动结束点会出现闪光点和连接这两者的虚拟运动轨迹,运动轨迹为虚线,虚线点间隔代表运动速率:间隔越大,速度越慢;间隔越小,速度越快。玩家模型关键点在运动过程中将在轨迹上用较不明显的闪光点标志出实时位置。当模型关键点运动到指定位置后,该提示将消失,同时所有的运动提示都

42、有一个生命周期,在生命周期结束后无论是否到达指定位置提示都将消失。当玩家模型关键点的运动轨迹与预定轨迹不同时,屏幕将在玩家模型上用不同颜色显示出错误的运动轨迹。3.3 流程描述 本节以图片的方式来描述系统的主要流程。图3-2 选择歌曲流程描述图3-3 选择场景流程描述图3-4 选择模型流程描述图3-5 控制玩家模型流程描述图3-6 开始游戏流程描述第四章 系统设计4.1 系统逻辑结构本节在图片的方式逻辑上描述系统的结构。新图图4-1 系统逻辑结构图系统在逻辑上分为六个模块,如上图所示。其中文件控制模块用于读取文件,并把文件内容提交给需要的游戏模块,主要是关卡模块和音乐系统。它提供了一个特制的借

43、口用于获得文件名。三维引擎用于处理与3D绘制相关的所有工作。它提供了一些与Ogre引擎相关的借口。它是游戏的主模块用户界面用于绘制UI,由于游戏具有三个场景,所以该模块提供了选择要加载场景的接口,其他的接口与界面的资源加载和绘制有关。游戏的主模块通过调用它来实现用户界面的绘制并获得用户指令。关卡模块是一个数据模块,主要用于将用户选择的数据进行存储和传递,这些数据包括人物模型、场景数据、音乐数据等。运动捕获模块会提供它经过处理后的玩家运动数据,并把它封装成比较好的格式。计分模块用于分析玩家动作和指导者动作之间的差距,并据此判断玩家的舞蹈能力,从而对其进行评价。4.2 程序概要流程本节将描述程序的

44、概要流程。更加概要图4-2 系统概要流程程序启动后,见首先实例化Main类,之后再Main类中实现Ogre的一系列初始化过程,包括:Engine(即Ogre Root类)的初始化,Scene(即场景)的初始化,Framelistener(处理动画和输入)的初始化以及UI的初始化,随后开始逐帧渲染。除此之外还将启动另一个线程,用于处理与音乐相关的工作。4.4 类设计本节以图的方式描述系统的类设计及类之间的关系。新类图图4-3 类示意图游戏以Ogre引擎为主体,如图所示有三个类负责与Ogr引擎交互,Engine类主要负责引擎的初始化,包括创建Ogre Root类、加载资源和创建窗口等。Scene类

45、负责大部分3D物体的绘制和销毁工作,Framelistener类负责与动画和输入有关的工作。UI类是与CEGUI相关的类,它负责绘制UI、接受并把控制信息传递给相应控制的类,这些类包括:Framelistener、SmilyMain和Scene。Level和File是工具类,其中File类负责读取目录中的文件名并把它们封装到一个std:list里面,Level类负责保存几乎所有的类间传递的数据。所以与它发生关系的类有很多。最后在另一个线程的Sound类负责有关音乐方面的工作。它通过调用Fmod的API来实现这些功能。4.3 程序详细流程 本节将以图片和文字来描述游戏的整个流程。基于类的新图图5-1 系统流程示意图上图是整个游戏系统的详细流程示意图,它以UI的切换和UI类的功能为主线,同时描述了在界面切换过程中其他类所作的工作。整个游戏分为四个场景,第一个是在资源加载过程中显示的Loading界面,后三个为可交互界面。1 歌曲选择界面,2 模型及场景选择界面,3 舞蹈界面。

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

当前位置:首页 > 其他


经营许可证编号:宁ICP备18001539号-1