因为对AR游戏领域的好奇,在网上搜集了一些资料。但是关于AR技术在游戏中实际应用的文章较少,而且大多数文章只是简单的介绍高通的SDK的使用,没有关于AR的核心技术。
简单了解目前的AR模式,大多数都是通过对相机中环境的检测,包括使用一些识别图去进行AR的检测触发。然后再通过对图像的叠加完成增强现实的效果。后来看到一篇关于unity实现AR的文章。尽管文章中实现的是一个APP。但是它这种关于AR的想法我认为是完全可行的。在该作者想法的基础上,我构建了一种不同于现在常见AR的一种系统架构。
最初我是以游戏架构为主提出的,但是随着这个想法的成熟,我发现这个模式(L-AR)不仅可以创建出全新的AR游戏方式,而且可以应用到未来的实际生活中,作为一种生活中的AR技术来使用。
接下来我将分成三部分讲述这种模式(L-AR),第一是现有AR的分析,第二是L-AR架构方式的整体系统阐述,最后是L-AR在未来的应用与发展以及这种模式可能会出现的问题。
第一部分:
现有的AR技术,以高通的AR SDK为模板来阐述一下现在的AR模式。先来说一下这种AR使用的操作,主要是以识别图为主,将所需要的识别图上传到高通的网站,然后可以生成unity的文件,导入到unity中,然后对想要显示的模型进行设定,绑好AR相机,就可以完成目前很常见的通过图像识别显示出的AR。
因为其中很多的技术都被封装了,所以也不好说其中比较有技术性的部分。就单独来看最终呈现时的图像层次。后面的一层,就是我们相机拍摄的环境。前面的一层是呈现在识别图上的模型,通过识别图去定位模型的景深。最后通过两层图像的叠加,完成最后呈现给用户的状态。这种模式已经很成熟了,而且操作难度不高,个人开发者也完全可以掌握其使用。
然后我们来看一下这种模式的AR的缺点。总体而言,这样的AR很难给用户一种类似于VR的沉浸式体验,尤其是应用在游戏中的时候。很多时候这个AR只是个会动的模型,很难在游戏的模式中有所创新。而且受限于技术的封装,没有办法完成很多底层的修改。其中,识别图定位以及无图定位,都是使用图像识别技术来完成的对图像的质量要求较高,并且容易出现“漂浮感”,让人感觉模型漂浮在空中,让人很难有沉浸式的体验。较为单一的互动模式,还有对背景地点无交互(背景只是单纯的背景,换成任何其它的背景或是纯黑最后的效果也是一样的),这些都是制约了AR开拓游戏市场的问题。
第二部分:
分析:
1、首先我们来分析一下理想中的AR需求,以《剧场版刀剑神域》为例,来看一下我们理想中的AR是一个什么样子:男主角参加了一次多人线下的BOSS战,然后玩家们戴上了AR设备,拿着体感控制器就一起上去打BOSS了。这一段中,我们可以看到,游戏的场景是在现实场景的基础上增强得到的,保留了场景中的可以移动的空间的设定,仅仅是在一些建筑的外形加以装饰。这是第一条,对原场景的保留和增强。在游戏中,我们有队员,并且可以实时看到他们在游戏中的样子,并且可以在旁边显示玩家信息。。这是第二条,多名玩家在同一场景中的实时交互。不同玩家可以在不同的位置看着同样的BOSS对他们发动攻击,这是第三条,公共AR环境的唯一性。
2、从上述几条中,我们就发现了目前AR系统中存在的问题。由于使用的是识别图或者是获取相机景深建立空间模型的方式,无法对多人的游戏环境进行实时的同步并且建立唯一的绝对空间。玩家设备间的互相定位和交互的实现也是较为困难的。
新的模式:
在前人的想法的基础上我构想出一种L-AR,通过游戏引擎内对现实世界的提前构筑并通过画面的叠加来完成一种增强现实的效果。
1、画面层次分析:
最后一层是相机捕获的现实场景,向前一层是引擎中的游戏场景,游戏场景中隐藏所有地形,只保留需要在L-AR中出现的游戏内容。再向前一层是游戏的UI和玩家的操作面板。将这些叠加在一起达到增强现实的效果。
2、系统结构分析
以unity为例,我们的整体思路是把玩家在现实中的实景和游戏中的场景结合起来,因此,我们需要:
① 一个第一人称的相机
② 一个按照真实场景的真实尺寸搭建的环境(在游戏中隐藏)
③ 游戏中应该有的模型(NPC,敌人,BOSS,道具,武器,宝箱)
④ 一个用来映像相机获得的图像的背景平面(跟随相机)
⑤ 玩家的输入控制
(1)相机的移动通过手机传感器获取的GPS坐标的差值进行移动,通过加速度传感对微小的移动进行矫正,并且对相机的旋转和俯仰进行控制。使得外部世界和游戏内世界始终保持同步。
(2)玩家可以通过手机屏幕上点击虚拟按键来使用物品,打开宝箱,发动技能,和目前的手机游戏相同(以RPG游戏为例)
⑥ 和正常的同类型游戏别无二致的游戏系统
⑦ 针对你想要进行游戏的场地进行实地的考察,并且将所有的游戏元素结合现场的实际情况进行安排和布置,打造一个独一无二的AR游戏世界。
3、以unity为例,在构建中的技术难点问题的解决方案
① 首先是玩家的移动,我们需要在unity中获取手机的GPS信息,由于目前的GPS定位的误差较大,无法直接用于我们的移动。所以我选择采用GPS位置的差值进行位置的定位。玩家需要在现实场景中一个固定的位置开始游戏,然后这时定位玩家的GPS,作为原点。之后不断刷新玩家GPS信息,并且更新相机的位置。
② 相机跟随手机角度的旋转:通过手机的加速度传感器获取手机当前的状态信息,通过四元数的方式传递给游戏中的相机。传感器获得的信息可能会因为手机的抖动产生扰动导致偏移,这时我们需要在代码中加入一个低通滤波器来除去高频的杂波。
③ 游戏中物体与现实世界的真实交互:我们需要整个场景的建模,然后对它们添加碰撞器,将对他们的渲染关掉,让其在相机中不显示。并且调整渲染顺序,使透明的场景可以遮挡游戏中的其他物体。达到一种“真实”的感觉。
④ 联机游戏的设计:通过P2P对等网络进行区域内玩家信息的传输。
⑤ 游戏性:单机游戏可以向Rougelike冒险发展,以随机物品和战斗为主。联机游戏可以向MMORPG发展,以线上线下的社交为主。
暂无关于此日志的评论。