基于Unity3D与VR头盔的虚拟现实体感游戏开发
2022-06-15谢婷玲
摘要:智能技术的的不断发展,更好地带动了新技术的发展,就比如现在出现的VR虚拟技术。现在深受很多玩家喜欢的虚拟现实手机体感游戏就是采用了VR技术,是将VR头盔配合手机进行操作。借助于手机内置的螺旋仪器,系统能够针对于人体变化实行定位,从而实现了体感操作方式。再将这款VR智能头盔与3D双屏数字显示系统相结合的操作过程中,借助于智能手机操作媒介,能够轻松实现身临其境的感觉,充分真实地模拟出了虚拟化的操作体验效果。通过借助于蓝牙遥控制器,在佩戴这款智能手机VR智能头盔之后,玩家能够更好地融入到游戏中,使得游戏的体验感增强。
关键词:Unity3D VR头盔 虚拟现实体感游戏 开发
中图分类号: G898文献标识码:A 文章编号:1672-3791(2022)05(b)-0000-00
作者简介:谢婷玲(1989—),女,本科,软件工程师,研究方向为VR游戏
该文在设计研究过程中,借助于暴风魔镜4代VR头盔作为交互式硬件,借助于Unity3D游戏平台开展,能够进行友好交互,借助于 C语言等多模式进行研发,并且能够在网页、安卓、苹果等多个平台使用,使得Unity3D效果得到更好的实现以及推广。借助于Unity3D系统的开发以及手机市场的应用,如果手机中已经安装了暴风魔镜等相应的VR头盔,那么软件就可以直接进入虚拟场景体验游戏。
1 设计概述
此次设计研发所借助的是真人CS户外对抗活动。游戏所设计采用的主要是第一人称视角,玩家在佩戴一款VR游戏头盔之后它就能够直接借助于游戏身体以及头部的快速移动,对整个游戏内部的角色格斗进行移动控制与帮助玩家一起完成角色格斗,游戏内部在角色格斗设计上所采用的主要是一种蓝牙无线控制格斗方式,能够直接让玩家在整个游戏进行过程中360°同时体验感受到各种VR头盔视觉效果,这样能够更好地控制游戏,在游戏过程中有更好的体验。在整个游戏设计过程中,所涉及到的环节,有游戏场景构建,游戏程序设计,游戏角色设定等。
游戏设计过程中,針对于动画事件播放设计所采用的是Unity官方API函数Animation‐Event进行,音频控制所采用的是AudioSettings ,对于界面内容进行调整使用GUIContent方式,对于界面布局进行调整,采用的是GUILayout方式。在规定的时间内,如果玩家能够到达指定的地点,那么就能够触发相应的道具,对于场景产生一定的转变,在整个游戏过程中玩家需要进行智能操作,借助于计算机控制台,对于路径上所出现的危险进行控制,顺利到达下一个关卡。
2 游戏设计计算方式
2.1 A 星算法
在一个游戏设计控制过程中会不断出现很多敌对坐标设置,借助于这个坐标来对位置进行控制或者说就是通过采用诸如Unity3D游戏中的AI等设计控制方式,能够直接使敌对方面的人员进入完全防御攻击状态。为了能够使得敌对方的显示操作更加逼真,智能化可以采用A星算法。在整个操作过程中,如果所涉及到的点比较多的话,无论是采用深度优先搜索,防止或者是广度优先搜索方式所产生的搜索效率都不高。这样的情况下需要使用启发式搜索算法。启发式搜索算法也是一种猜测,启发式搜索算法是由起点针对于周边各个位置可能出现的点进行评估,在open表数据内能够将周边内点编辑进去,计算出表内,每一个点的h(n)和g(n),然后对于评估只进行测量。在close表内f(n)最小值编辑进内,然后持续将open表内陆续加入close表中周围的点,在整个操作过程中需要注意,如果是障碍物或者是以加入的点不需要再进行处理,针对于位置点逐个的进行遍历,一直到完成最终的目标启发式中,所采用的函数表达方式是:f(n)=h(n)+g(n)。
2.2 OBB包围盒碰撞检测算法
三维中的物体碰撞检测与二维中的物体碰撞检测相对的比较起来是相对十分复杂的,这其中目前需要广泛使用主要是OBB包围盒碰撞检测方式,才能够更好地实现设计目标。在实际进行三维游戏场景引擎帧的设计工作过程中,需要首先针对于三维场景中的物体模型进行三维表面凸块的分析,然后为凸块物体构建了一起OBB包围盒之后,能够轻松针对于图块场景进行采用三角形带压缩编码方式,能够轻松实现三维场景物体之间的变形碰撞角度测量。
2.3 陀螺仪空间定位算法
现在在智能手机电脑中都已经安装了陀螺仪传感器,陀螺仪传感器的运动坐标主要原理是以环绕地球的磁场运动为坐标基础,操作的过程中会出现转变,也就是相对于地磁场出现了一定的转变。当地磁运动速度控制器件在运行时达到任何一个不同方向的速度时候,地磁场运动都会对其产生一个相应的运动作用。
3 具体游戏设计实现方式
Unity3D属于它的是一款非常专业级的游戏管理引擎且其功能性十分强大,能够完全借助于一个Unity3D交互式游戏应用程序,实现同时能够在不同的平台运用。它不仅能够轻松采用多种着色文件格式同时运行,并且在各种着色器使用方面十分的灵活,可以轻松实现互联网以及三维网络图形间的混合以及视频等等多方面的着色功能。此次这款游戏在进行设计场景过程中对于建模游戏场景所需要采用的模式是MAYA的模式,为了使其能够有效使得整个游戏的场景视觉效果变得更好,在游戏进行场景建模的设计过程中针对于不同的游戏功能场景进行了一部分项目的优化,这样能够展现出更真实的游戏场景,让玩家有切身的游戏体验。
3.1 分析游戏开发需求
此次的游戏设计环境主要是各种人物之间针对于暴徒击杀。玩家能够直接进入到游戏环节,来到游戏激励进行击杀,游戏设定的是机枪手,整个游戏氛围十分的紧张刺激,在进行游戏的过程中,对于玩家所使用的武器也可以进行转变,在与敌人搏斗的过程中,一定要注重精神集中,针对于游戏内部周围环境进行仔细的观察发现隐秘性通关秘诀。可以说整个游戏的设计十分逼真,并且采用了多种特殊道具玩家在进行游戏的过程中可以有全新的视觉体验。此次游戏主要设置为3个通关模式:第一关卡是以科幻性为主的背景环境下。主要场景选择是工业大厦需要玩家潜入到工业大厦内收集相关的情报,并且能够击杀暴徒,对于敌对装备进行破坏,然后能够顺利的逃出工业大厦。第二关卡是潜入到敌对基地内,能够击杀敌对长官,并且对于基地内的基础设备进行破坏,再到达长官作战区域内,玩家需要针对于场景中的纸片不断的进行收集,能够根据纸片的内容寻找到敌对长官。第三关卡主要是玩家到达基地总部之后能够摧毁基地,并且获得最后的胜利。在整个游戏过程中,玩家的角色是一名机枪手可以选择射击或者是躲避操作,针对于敌军的设备进行摧毁,借助于蓝牙控制器能够与身体头部相结合,对于人物进行方向的控制,实现击杀躲避等操作。在突破游戏关卡之后,完成设定的剧情就表示游戏通关。
3.2 优化场景
在Unity中,玩家为了能够有更好的游戏体验感,可以对于游戏光照颜色进行亮度调整,但是由于智能手机的CPU内存有限,在需要进行一次光照亮度调整的游戏过程中,会直接使得游戏渲染的启动次数不会有所谓的增加,这样在游戏的过程中画面会出现抖动的情况,甚至会出现卡顿的情况。为了我们能够有效避免出现此类的各种问题,在整个游戏中的设计开始过程中我们需要预先设定一个好的实时模拟光照,将它直接作为烘培光照。实时光照太强的真相对于一种静态性的物体来说能够直接产生一种模拟性的光照,但是这仅仅属于游戏是一种静态性的模拟操作,在整个游戏中的设定设计开始模拟过程中需要采用模拟渲染,整个模拟游戏在在设计开始过程中基本不会重复的再次出现模拟渲染前的情况,这样这么做的最大优势就是整个游戏在设定开始模拟设定之初只需要做一次模拟渲染前的操作,在后期的设置中不需要重复的操作使得渲染效率得到有效的改善。
在游戏进行过程中会有描绘指令出现,所以它表示的意思是说在游戏进行过程中,每一个场景部位在进行展示游戏过程的当中都可能需要将其放置在特殊的展示文件中,再将特殊文件数据传递发送到3D部分然后投屏进行显示。对于游戏场景相应的的模型场景构件以及游戏场景构件包装中的显示主要部分是由展示CPU来完成的。在进行游戏场景设置前的过程中,玩家每一次发射的一枚子弹后在消耗或者说只是一个角色时的消耗都应该是相同的,如果说不需要降低游戏描绘指令,那么现在电脑上就会将所有的游戏场景或者物体用来进行游戏渲染前的操作,这样就会使得CPU的内存有所增强,渲染效率受到影响。为了能够解决此类问题,可以借助于遮挡,剔除等方式,也就是说针对于当前这个位置上的任何物体可能会被其他的任何物体覆盖住,不会再留在设影机的工作范围内,出现对这个部分不满时需要再次的移动进行影像渲染,几何体进行分割后会形成不同物体尺寸的各个模块,根据于每一个尺寸模块它都可以进行构建生产出一个列表,在立体摄影及影像摄录的各个范围内对其模块进行再次激活,不在列表构建过程内其中的一个模块也只需要将其进行去除。
采用此技术需要有两个模型的支持,一个模型需要的面数较多,设计效果较为逼真,另一个面数较少,质感较为粗糙。具体的场景组合技术操作场景设置设计方式一般上都是首先针对于两个场景关键点的场景距离和视角度设置D1和距离焦距D2进行场景组合操作设置,将它们分别进行组合起来设置为一个场景摄像机与两个不同场景的关键点和距离,如果说D的距离已经大于实际距离,那么对于模型进行高清调整,如果说D距离已经小于实际距离,需要借助于粗糙模型进行调整。根据于不同的精准模型进行选择,能够针对于绘制顶点数目进行降低,这样能够使得游戏的场景实施效果更具优化,在Unity中借助于Component → Rendering →LODGroup,采取操作方式能够使得模型以及距离设置进行有效的控制。
overdraw所说的也就是一个像素可以能够被多次混合绘制,针对于这些像素能够进行绘制优化的一个重点,就是如何使得overdraw有所降低,针对于每个控制点的顺序可以进行优化控制,可以最大限度地避免出现控制overdraw等的情况。在控制PC的状态下控制资源可以能够得到无限制的使用,为了这样能够直接使得游戏渲染图的结构更加容易优化,再者在进行颜色绘制的混合过程中一定是需要注意保证首先是从后往前的先进行混合绘制,先是进行针对于不透明颜色物体的先进行混合绘制,然后再进行绘制透明颜色物体之后的再进行绘制混合,在各种移动的游戏平台上,使用此种混合方法后就会直接产生大量的像素overdraw,采用从前往后的进行绘制混合方法,能够使得overdraw有所降低,都是深度检测所带来的效果。在Shader 中设置成Geometry对象。绘制物体方法也是从后由前往后,如果说的是我们想要要形成固定的一个队列像素物体,需要用的是从后往前的方式进行物体绘制,这也就能够表明在我们进行队列物体绘制队列图的设置中一定必须要尽量能够做到一个geometry,同时我们能够有效的与Unity物体联合一起使用,能够对于物体绘制时的顺序能够进行自动控制,就比如说在一个天空盒子已经完全涵盖了所有的队列像素,所处的像素位置也是在队列物体后面,因此我们能够将其他的队列物体设置为一个geometry+1,这样能够使得overdraws 有所降低。
3.3 优化代码
在对于游戏代码进行编写的过程中,可以采用单利方式避免使用静态模式。在程序中使用单例只需要保留一份饥渴,而使用动态的话需要保留多个这样对象,池内重复使用就会对于物体进行统一的管理,采用预加载方式,针对于资源加载造成的卡顿进行优化。在编写的过程中尽量不使用foreach,而是使用for的使用,能够收集到迭代器的使用,每一次的循环都会出现24B垃圾,如果进行10次循环,那么就是240B。在进行访问的过程中不要直接访问gameobjec tag属性,就比如进行if(go.tag==“machine”)的过程中,可以将其转换成if(go.CompVReTag(“machine”),因为如果访问的是tag属性,那么就会使得空间有所增加,在循环处理过程中会产生大量的垃圾,针对于代码进行重构处理,能够使得代码架构设计更优化,降低其耦合性,使其更容易进行扩展。
3.4 优化CPU
在对于CPU进行优化的时候,可以采用降低DrawCalls的方式,但是在日常操作中,主要还是选用批处理。所谓的批处理就是将所有的物体放在一起进行批次处理,需要满足的条件,必须是物体属于同一材质,针对于同一材质的物体,除了在顶点数据有所差异之外,其他并没有差异存在,能够将所有的数据结合在一起,由CPU进行统一的处理,这样使得CPU的消耗有所降低。Unity批处理主要是动态批处理与静态批处理。动态批处理大量增加CPU的消耗,静态批处理所说的是在进行游戏引擎处理过程中,针对于绘制物体所产生的DrawCalls进行降低,再进行合并之后的物体内外资源进行储存,使得内存有所增加,CPU资源就会降低。在针对于桌子椅子等图形进行绘制的过程中,可以在编辑器中将其設置为静态状态,将具有同样材质的物体组合成一个网格对其进行调制,这样能够使得 CPU的消耗有所降低。在VR游戏设置过程中,将游戏的角色设置为枪手,能够配合真实的环境、氛围、声音,让玩家在游戏的过程中有很好的体验感,所以说在此次游戏过程中,针对于环境特效光声音等方面都进行了优化处理。
3.5 游戏敌人 AI 功能
游戏中敌人AI智能功能人工智能在游戏过程中是非常重要的一个环节,能够借助于随机的数字,使得敌人作出相应的动作以及反抗,在Unity中采用AI脚本程序完成此功能,在普通的射击游戏过程中,通常都是借助于一套VR规则进行完成,无论玩家怎样进行操作都会根据VR设计做出相应的回应所具备的确定性较强,这样玩家在整个游戏过程中并没有很好的体验,会感觉较为单调。所以说在游戏的设计中可以增加更多的随机性,因此VR需要更具智能化,能够增加模糊概率算法,使得不确定性得到提升,玩家才会有新奇感.当玩家与敌人距离较劲的时候,就敌人能够进行攻击,可以借助于脚本设置,针对于敌人的攻击速度,移动速度命中率等进行修改,针对于脚本编写需要足够的小游戏,玩家玩起来才会更有兴致,所以为了满足游戏所需,设置针对于非玩家角色控制算法实现主动与被动控制,两种方式处于被动状态下,对于是否能够进行攻击触发条件进行设置。如果说非玩家已经触动了设置就会转变为主动状态,在主动状态下,如果目标已经到达一定的区域范围内,那么非玩家就会启动攻击模式,或者是进行防备。
4 结语
本来主要介绍的是基于Unity3D与VR头盔的虚拟现实体感游戏的设计,针对于游戏设计环节所涉及到的算法以及优化方式进行分析,借助于AI系统,能够使得玩家角色更加真是,吸引玩家的兴趣,增加游戏的可玩性。现在游戏的操作方式越来越简便,故事情节更具吸引力,玩家佩戴VR头盔结合蓝牙遥控器,就可以尽情的体验到游戏基站所带来的快乐。信息技术的发展使得VR技术越来越成熟,在教育、医疗、建筑等多个行业已经广泛的开始使用。在发展的过程中也要保证VR游戏设计精良,需要在策划以及优化上采取方式,只有这样才能够保证游戏设计的新鲜感,并为用户带来全新的体验感。
参考文献
[1] 胡松,黄睿泽,周昶,等.基于Unity3D和WebAccess的三维可视化能源计量监测系统的实现[J].计量技术,2017(4):16-19.
[2] 刘氢.基于Unity3D和htcvive的虚拟现实游戏设计与实现[J].通讯世界,2017(3):43-44.
[3] 马方楠,朱明健.数字媒体艺术中频谱符号的探析——基于古德曼艺术语言观[J].南京艺术学院学报(美术与设计),2020(6):190-193.
[4] 郭正奕.浅析独立VR虚拟现实游戏设计[J].数字技术与应用,2021,39(4):164-166.
[5] 王建磊.基于Unity3D的虚拟现实游戏设计与实现——以《VR动物园》项目为例[J].现代信息科技,2021,5(10):53-56,61.
[6] 黃才证.基于强化学习的虚拟现实游戏AI系统研究与实现[D].深圳:深圳大学,2020.