基于体感技术的游戏重构框架的应用研究
2017-11-01凌财进
凌财进
(河源职业技术学院 电子与信息工程学院,广东 河源 517000 )
基于体感技术的游戏重构框架的应用研究
凌财进
(河源职业技术学院 电子与信息工程学院,广东 河源 517000 )
为满足体感游戏市场需求,降低3D游戏前期投入风险,文章提出通过开发中间件模块对游戏开发过程进行简单改造,实现3D游戏向体感游戏平滑过渡的过程;先是简单介绍了体感技术的原理和工作过程,接着结合Kinect硬件系统提出了3D游戏到体感游戏重构框架(3D-MS重构框架),然后设计和实现了中间件模块,并对现有3D游戏的提出具体改进策略和方法;最后以《神龙》游戏为案例进行了重构和实验测试,实验表明3D-MS重构框架是可行的,采用中间件技术可平滑、快速实现从3D游戏到体感游戏,比直接改造游戏的效率高2.2倍,同时能提高游戏的人机互动效果。
体感技术;体感交互;游戏开发;游戏重构
0 前言
3D游戏是近十年来对原2D游戏的重要补充,其生动逼真的效果,在相当长的时间里获益不菲,同时,使得游戏公司投入了大量的资金。近年体感新技术推出,使得3D游戏人数增长减缓,前途渐渐变得不明朗,给游戏投资公司造成了极大的压力。另一方面,体感游戏相比传统的游戏,具有更加丰富的人机交互方式,及其所带来的离开电脑和控制设备的,近似于在真实生活空间中的互动操作,可以为游戏玩家带来更强的真实感和操控感,大大提升了游戏的操作性和可玩性,也因此深受玩家的喜爱。由于目前市场上基于体感技术的游戏作品较少,导致市场上体感游戏资源供不应求,游戏玩家因此感到遗憾。
本文的研究是从游戏开发的角度对现有的3D游戏进行重构和扩展,开发中间件模块,实现3D游戏低成本、快速地向体感游戏切换,一定程度上满足游戏玩家的需求,同时保障了游戏公司的前期投入。
1 体感技术
1.1 国内外研究情况
体感技术是目前人机交互领域出现的一种新兴技术,又称为动作感应控制技术。机器通过某些感觉通道和动作通道(输入方式:姿势、视线、表情、语音、手写等)方式对交互者(用户)的动作进行识别、解析,并按照预定感测模式对相应动作在机器端做出反馈。体感技术的实现主要包括体感硬件设备和体感软件系统两部分构成。通常硬件和软件是由同一厂商提供,目前主要有Microsoft,Nintendo和Sony等国际公司,国内主要有小霸王、外星科技、小米等公司和品牌。早期的体感技术主要依靠各种硬件捕捉设备去完成;随着技术的发展,现在借助激光等技术已经小型化或集成在摄像头上实现。
新体感技术的出现,给人机交互接口带来便利,尤其在游戏开发和虚拟现实等方面,成为人机交互发展的新趋势。相比早期的鼠标、键盘,以及后来的配戴型的各种硬件设备,新体感技术完全不需要玩家携带任何捕捉设备便可进行便捷的交互,提升了操作的自由度,增强了整体的沉浸感,从而提高了体感交互的实用性和娱乐性。
1.2 体感的技术原理
体感技术的工作原理和工作过程其实也是挺简单的,通过身体动作与数字设备及环境进行交互,根据用户的动作来接收各种指令并执行。其核心技术在于其先进的数字设备和光学设备,数字设备可以更加精准有效的视觉系统去观察现实世界,先进的光学等传感器可以全方位的采集环境信息,使得数字设备具有智慧的大脑去精准决断和应用,体感技术的基本工作原理和过程如图1所示。
图1 体感技术工作原理
根据体感发生机制的不同,体感技术主要可分为三大类:惯性感测模式、光学感测模式和联合感测模式。考虑到平台的普遍性、硬件平台集成的便捷性和价格的可接受性,本文选择以光学感测模式的Kinect为体感硬件进行研究的,通过光学传感器获取人体影像的动作,在游戏中的内容中呈现和互动。
1.3 体感开发技术对比
与其他体感游戏的实现一样,基于Kinect的体感游戏主要包括体感硬件设备和体感软件系统两部分构成。体感软件系统主要由体感游戏和硬件驱动两部分构成,体感游戏的实现通常有多种选择,在此我们针对主要的软件开发框架和具体的软件开发技术的对比,以便我们的开发更加合理,应用推广更加方便[1]。
目前,基于Kinect体感游戏有多种实现方式。其中,主要的两种常用的方式,分别是Kinect SDK和OpenNI软件开发框架,这两种开发框架都有各自的优缺点。对比如下表所示:
表1 Kinect体感游戏主要技术框架对比
由于本研究是改造传统的3D游戏项目为体感游戏,Unity几乎占据了整个3D游戏的市场;此外,从商业用途和操作系统支持等,以及从原有系统扩展便利性考虑,以便对原有模块和接口进一步封装和灵活调用等方面考虑,我们选择了后者。
2 游戏重构框架
一般来说体感游戏两部分构成,分别是:游戏软件、体感硬件和硬件驱动程序。为节省前期投资,本研究提出通过对传统3D游戏进行重构,增加中间件的方式快捷开发,开发体感硬件和软件接口的方式,实现传统3D游戏向体感游戏高效转化,我们称之为3D游戏体感重构框架(3-Dimensional Games to Motion Sensing GamesReconstitutionFramework,简称:3D-MS重构框架)。
2.1 传统游戏项目
传统3D游戏项目是我们的改造对象,假设游戏项目开放源码并且取得版权。通常完整的游戏包括创意、故事、游戏元素、任务系统、游戏规则、游戏智能、界面系统等10个方面功能模块构成。游戏玩家在操纵传统游戏时,主要依靠简单的键盘、鼠标、手柄、屏幕等设备[2],这种原始的人机交互方式在深度和广度在很大程度上受到限制。当游戏玩家想要引导游戏人物的转身时,操纵者首先需要考虑的问题是控制角色转身的键盘按键或手柄按键的位置,然后挪动手指到达相应的按键,这个过程实际上增加了游戏玩家思维的负担,并且造成思维的踊跃,增加了游戏玩家的反应时间,也极大地影响了游戏玩家的交互体验[3]。
针对传统游戏,我们认为必须经过重构才能更好地接入中间件,最后转化为体感游戏。游戏智能、游戏操作和游戏界面是我们对传统游戏改造的三大主要任务,也是与体感硬件和游戏玩家有交互的主要游戏模块。
2.2 体感硬件系统
Kinect体感硬件系统已整合成一个整体,最新版本为Kinect 2.0,由彩色摄像头、3D深度红外感应器、麦克风阵列、马达和电路等构成。Kinect通过其核心模式与用户模式和视频组件与声音组件实现了强大的人机交互方式,为体感游戏提供了可能。
2.3 中间件
中间件是我们整个3D-MS框架的核心,也是我们自行设计和开发的主要模块。中间件整合了 Kinect 的驱动程序、开发包、Unity3D组件包和我们封装的DLL类库等。在游戏改造时,中间件模块用作一个第三方软件类库导入到Unity开发平台中,随后在应用中即可使用。
基于Kinect硬件平台具有更加准确的景深数据流,深度数据流的分析与应用是中间件的一大任务。中根据景深技术,借助遮罩技术自动剔除非关键的动作,然后把含有关键动作的图像提交给专家系统去判断身体部位并根据前后识别结果(最新版本能识别每个玩家25个关节点),并根据骨骼结点生成游戏对象的骨架系统,以准确评估游戏对象实际所处位置和动作。
中间件的第二个重要任务是完成手势检测和序列化。根据体感的深度数据流,结合数据堆的方式实现手势检测和序列化,由于Kinect采用的是光学传感器来获取人体动作指令,因此,Kinect在识别游戏玩家所处的景深方面具有更加精确。
在渲染前,中间件需进行粒子算法和专家系统的学习与训练。
图2 3D-MS重构框架
此外,提供类库接入功能和体感信息读取与原游戏的操作信息映射等功能。从3D-MS重构框架图可知道,中间件起到承上启下的作用,向上需给游戏映射和转换数据,包括位移变化、空间变化和操作状态等;向下需要从Kinect硬件系统的各种传感器中读取数据,包括RGB数据流、深度数据流和声音数据流[4-5]等;中间件另一个重要功能是提供体感游戏开发的接口方法,以及体感数据与游戏动作之间的映射关系,起到提高体感游戏效率,减少游戏的时间和成本,图2是整个3D-MS重构框架的构成和交互关系图。
3 游戏的重构过程
这一环节,我们主要介绍中间件的实现和游戏的整合。在第二节里面,经过分析比较我们选择OpenNI为技术开发框架。OpenNI负责规范玩家体感的输入和底层硬件的接口,但从OpenNI的共享接口到游戏应用的实现,以及体感操作定义和互动都要由游戏开发者自行开发,为减少游戏厂家在这方面的这方面的开支,我们编写这样的部件程序,也就是我们中间件。
3.1 对现有游戏的重构策略
前面已分析游戏由创意、故事、游戏元素、任务系统、游戏规则、游戏智能、界面系统等10个方面构成,如图2所示。游戏改造并不是所有都要改造,我们的改造策略主要是兼顾前期的投入和体感效果两方面,因此,我们主要选择了游戏智能、游戏界面和游戏操作三个子系统进行改造。
首先,对游戏智能方面我们的改造策略是重构游戏中游戏角色的操纵方法,增加体感动作映射关系,在行走、跑、跳等方面让玩家感觉他们就是真实存在的人一样。传统的游戏都是让玩家通过键盘和鼠标等操作设备完成游戏角色的行走、跑、跳、攻击等动作,体验游戏乐趣。改造后是通过体感技术这种全新、便捷的人机交互方式,让游戏玩家全身的感官得到充分的解放,通过玩家在现实世界中动作来完成游戏角色的行为,轻松完成行走、跑步、跳跃、攻击等动作,这种通过玩家在现实世界中动作来完成游戏角色的行为即时呈现在游戏过程中,而不需要经过大脑进行太多的思索,使得游戏玩家的身体得到前所未有的解脱和自然的体验。系统在开始时,首先获取PC机的视频流数据,然后通过摄像头得到人体动作的图像数据,在数据经过缓冲处理、识别之后,将于解码后的RGB分量相互叠加[6],最后通过DVI接口将视频数据输出至显示器,同时FPGA将控制信号传送给PC机,达到控制PC机中游戏的目的。
游戏界面方面,改造策略是如何在各种显示设备上向玩家呈现,向游戏玩家展现游戏最佳最精彩的效果。增加多角色多视觉的察看方式,游戏玩家通过屏幕观看自己的设定角色和其他玩家角色,从不同视觉方式上查看。
3.2 中间件模块的实现
框架模型的主要实现思路是通过体感硬件设备、通过骨骼等技术获得游戏玩家的身体信息,把身体作为一种输入设备,然后把身体信息作为游戏的指令参数映射到游戏中,把玩家在真实世界中的行为呈现在游戏当中,并通过屏幕以游戏角色的方式展现出来,游戏玩家通过以“我为中心”这种方式实现与游戏角色的充分交互,中间件实现方法如下:
第一步:安装OpenNI框架并导入kinectWrapper.unitypackage;
第二步:将OpenNI连接至 Kinect;
第三步:通过 PrimeSense编写 OpenNI 驱动程序,应用NITE模块重写 OpenNI方法;
第四步:Unity3D 使用Xm3D_MS接口,获取身体信息实现相应的功能实现,对 Kinect 传过来的体感信息和数据进行处理;
第五步:编写控制模型,绑定模型到游戏角色的相应变量中,确保游戏角色和玩家行为节奏同步。
其中,在第四和第五步之间,我们还需要一个数据识别和处理环节,识别和传递游戏玩家身体信息,在此过程中需要用到kinectWrapper.unitypackage作为Unity3d 插件配合实现。此外,接口模块中整合了KinectNuiInit()、DisplayDepth()、DisplayColor()、DepthWrapper()、KinectGetDepthImage()、KinectColorFrameToImage()、KinectGetSkeleton()、KinectJudgeTrack()、KinectDrawSkeleton()和KinectNuiUnInit()等功能,快捷地实现了Kinect的初始化、图像获取、游戏玩家分析和跟踪、游戏合成场景的呈现和退出等操作。
通过以上方法,我们借助Kinect硬件系统识别游戏者在现实空间中的行走、跑步、跳跃、攻击和受击等游戏动作,实时捕获体感数据并变成指令操控、指挥游戏。
其中,在第五步中,在原3D游戏人物模型基础上,通过中间件预设的方法快速绑定骨骼模型,即时把游戏玩家的身体信息传入到体感游戏中的人物角色中去,此过程包括骨骼和彩色数据的捕捉,通过堆的形式存放数据,根据先进先出的原则进行存储和缓冲,对图像进行叠加和识别,最后转成对应的指令,实时的捕获传递的信号并及时做出反馈,骨骼模型与指令关系流程如图3所示。动作识别过程用到了K-means 聚类算法获取方向单元和骨骼点阵[7]。
图3 骨骼模型和指令流程图
3.3 集成实现
当硬件、中间件安装完毕,游戏进行必要的改造后,还需在Unity平台上进行集成。通过库的形式引入中间件到Unity,然后在游戏界面系统和和游戏智能上附加上写好的C#接口骨骼追踪代码(类图)如图4所示,代码附加与代码映射界面如图5所示,将Project窗口的OpenNI-->OpenNISettings拖动到Hierarchy窗口;在Hierarchy窗口选中soldier,将Project窗口的脚本NISkeletonController拖到Inspector中,完成人物模型的驱动;调用 MSR_NuiDeviceCount 方法来确定传感器数量;接着,使用new Runtime(index)方法创建一个新的 Runtime 对象和传递一个参数,实例化一个传感器设备;然后,调用 Runtime.Initialize方法来初始化设备实例的NUI(自然用户界面) API;另外,在管理界面调用图像流时,骨骼数据和管理摄像头等方法;体感数据转换成操作指令,执行游戏场景,最后调用 Runtime.Shutdown完成整个过程。
图4 骨骼追踪代码(类图)
图5 代码附加与代码映射界面
4 效果测试与实验评估
我们提出游戏3D-MS重构框架,并通过整合和抽象的方式实现了3D-MS中间件各类功能和接口,使得中间件快速实现了传统3D游戏重构成体感游戏,这种基于体感的游戏为游戏玩家带来一种全新的游戏交互方式,克服了传统游戏仅能依靠键盘、鼠标或手柄这样的简单设备进行人机交互的方式,游戏玩家通过肢体动作,如行走、跑步、跳跃、攻击和受击等就能够与游戏中的虚拟角色实现同步,从而使得玩家为中心的新型游戏形式,我们通过对原三维游戏的升级改造得到新型的体感游戏,在很大程度上消除了虚拟世界与真实世界的距离,充分显示体感游戏的真实性。为测试实验效果,我们邀请了6位游戏开发者和90位同学作为游戏玩家对中间件使用和体感游戏体验进行评估。
6位游戏开发者对中间件的实现方式表示认同,认为使用中间件能快速提高体感游戏的开发效率,改造现有的游戏实现体感游戏,在公司快速增加游戏新兴市场的份量起到非常重要作用,尤其为小型游戏公司或游戏作坊提供了超车的快捷渠道。
开始阶段,我们安排60位同学分别操纵改造前的《神龙》游戏(称为传统游戏)和改造后的《神龙》游戏(称为体感游戏)。在游戏开始之前,我们对测试成员进行了1个小时的训练和试用。最后,对游戏结果和访谈进行记录,同学全体认为体感游戏操作更加方便,更符合人的思考方式,操作游戏不需要太多的思考;其次,他们认为体感游戏让人感觉新鲜,玩起来不觉得累。游戏为人机对战,在传统游戏环节共48人取胜,体感游戏环节52人获胜。从游戏结果上看,体感游戏并没有取得大幅提升。为了排除可能存在着对游戏故事情节熟悉度的影响,在第二阶段我们另外招聘了30位同学,并且改变游戏顺序,培训过程保持一致。先让测试同学操纵体感游戏,然后玩传统游戏,实验中分别为26人和25人获胜。可见,体感游戏人机交互比传统稍好。
由于中间件是部署在客户端,基本不改变对服务器压力;另外,基于OpenNI实现Kinect对客户端需求不大。因此,虽然丰富了游戏与玩家之间的互动和体验,但并不会对影响玩家和游戏公司造成很大的压力。
5 总结
本文通过重构传统3D游戏和开发中间件的方式,实现传统游戏向体感游戏顺利过度,为重构传统游戏提供一种科学可行的途径。我们通过 Kinect 识别游戏玩家在现实世界中的各种动作等信息,实时捕获体感数据,加强了游戏中玩家的“自我为中心”的体验。这种基于Kinect 的体感游戏,让游戏玩家通过感知这种客观的空间,重构了主体以往的经验,强化了主体在原有认知上的体验,由此获得不同于传统游戏的全新体验,而这一切的实现不需要游戏从零开始,而是通过3D-MS模型来完成。
实验结果表明,3D-MS游戏重构框架的开发效率是在原有游戏基础的近2.2倍;同时,中间件的实现也兼顾了体感游戏玩家的感受,让玩家能享受体感游戏应有的互动和感受,据实验玩家反馈良好,基本达到了我们的目标。在接下来的研究中,一是将加强体感的精度和控制,二是将在框架的中间件模型中引入增强现实技术,使得游戏改造和重构更加省时、便捷的同时,让玩家体验更加人性化。
[1] 杨东方, 王仕成, 刘华平,等. 基于Kinect系统的场景建模与机器人自主导航[J]. 机器人, 2012, 34(5):581-589.
[2] 刘 康.基于中国京剧身体表演的体感游戏空间构造研究[D].哈尔滨:哈尔滨工业大学,2014.
[3] 谢 欣, 梁国伟. 基于网络体感游戏空间技术的京剧传播研究[J]. 文化遗产, 2015(2):14-21.
[4] 张 毅, 张 烁, 罗 元,等. 基于Kinect深度图像信息的手势轨迹识别及应用[J]. 计算机应用研究, 2012, 29(9):3547-3550.
[5] 马叶涵.基于Kinect的办公健康分析系统的设计与实现[D].哈尔滨:哈尔滨工业大学,2015.
[6] 武乾坤,胡 冰,兰 浩.基于Android+Kinect的失能老人自助系统设计与实现[J]. 计算机技术与发展. 2017(4):135-138.
[7] 陈 滨, 时 岩. 基于Kinect的体感虚拟鼠标研究与开发[J]. 软件, 2016(2):46-49.
[8] 赵 磊. 基于HTML5和Kinect的体感交互游戏关键技术研究[D].北京:北京邮电大学,2013.
[9] 周天彤, 徐飞林, 张旖帆,等. 基于unity和kinect的交警手势识别仿真系统的设计和实现[J]. 计算机测量与控制, 2016, 24(5):156-159.
[10] 张 帅,周恒杰,等. 基于Unity3D和Kinect的体感跑酷游戏开发关键技术设计与实现[J]. 三明学院学报, 2015(6):32-36.
[11] 杜 坤. 基于Leap Motion和Unity3D的体感游戏“Survival&Shoot”的开发[D].昆明:云南大学,2016.
[12] 徐洋凡. 基于Kinect虚拟现实下肢游戏的临床设计及应用[D].广州:暨南大学,2016.
[13] 张 贵. 体感交互及其游戏的设计与开发[D].广州:华南理工大学,2015.
[14] 杨 竹,王洪源,等. Unity3D中的Kinect声源定位与人机交互技术[J]. 沈阳理工大学学报, 2017(1):85-90.
[15] 马建荣,章苏静,等. 基于体感技术的亲子互动游戏设计与实现[J]. 中国电化教育, 2012(9):85-88.
[16] 蒋祥飞. 基于Kinect的手势识别及其在物流展会中的应用[D].合肥:合肥工业大学,2016.
Applied Research on Game Reconstruction Framework Based on Somatosensory Technology
Ling Caijin
(College of EIE, Heyuan Polytechnic, Heyuan 517000, China)
To meet the somatosensory game market demand and to reduce the risk of 3D games pre-investment, the article proposes a simple transformation of the game development process through the development of middleware module, and realizes the smooth transition of 3D game to somatosensory game.Firstly, the principle and working process of somatosensory technology are introduced, and then a 3D game to somatosensory game reconstruction framework (3D-MS reconstruction framework) is proposed in combination with Kinect hardware system. Then, the middleware module is designed and implemented; the game specific improvement strategies and methods are proposed. Finally, the game of Dragon is reconstructed and experimentally tested. The experiment shows that the 3D-MS reconstruction framework is feasible.The middleware technology can be used to realize the game smoothly and quickly from 3D game to somatosensory game, 2.2 times more efficient than without 3D-MS framework, while improving the game man-machine interaction effect.
somatosensory technology;somatosensory interaction; game development; game reconstruction
2017-06-26;
2017-07-11。
广东省教育科学“十二五”规划教育信息课题;广东省教育教学改革项目 (201401232)。
凌财进(1983-),男,广东河源人,硕士,讲师,主要从事虚拟现实、游戏开发和物联网安全等方向的研究。
1671-4598(2017)08-0187-04
10.16526/j.cnki.11-4762/tp.2017.08.048
P391.9
A