下载安卓APP箭头
箭头给我发消息

客服QQ:3315713922
论坛 >移动开发 >移动端VR游戏设计与开发

移动端VR游戏设计与开发

起个名字你猜我叫啥发布于 2015-12-30 11:47查看:720回复:3

2014年6月,Google在I/O大会上发布了一款简易虚拟现实设备Card Board。谷歌公司用最简单的纸壳结构和透镜,向人们诠释了VR的核心本质,而且该设备的价格仅仅几美元,从此移动VR市场大幕拉开。

谷歌发布Cardboard后,国内外引起了一阵跟风狂潮。由于能够跟移动互联网概念结合,国内涌现了上百家“长相各异的Card board”,行业内俗称“VR眼镜盒”。大多数的眼镜盒产品都想做全兼容手机方案,但是由于这类产品无法控制手机硬件底层和系统层面,效果非常一般。目前在市场上能买到的VR产品,大多是这种类型。

但是,有一款独特的产品异军突起。该产品只能适配一种手机,甚至做到了超过PC端HMD Oculus DK2的体验,这就是由三星公司和Oculus公司合作完成的Gear VR。Gear VR是目前公认的移动VR设备的标杆产品,是Oculus公司对移动端VR设备可能性的一种尝试。

独具特色的Gear VR

目前市面上的Gear VR版本是创新者版,有支持三星Note4和S6的两个版本。在输入设备上,可以使用Gear VR自带的Touchpad或者Gamepad手柄。Touchpad是类似笔记本触摸板的二维输入设备,可以进行点击、双击、长按、滑动等操作。

为什么Oculus和三星合作的Gear VR有如此好的体验?同样是手机,是基于安卓平台的HMD,为什么其他眼镜盒的体验差这么多?原因有三:首先,Gear VR是为Note4定制的,在软硬件上为VR做了很多优化,尤其是外置高精度、高刷新速率陀螺仪和OLED 2K屏幕,相比起LCD屏延迟得到大幅降低、短余晖的特性又解决了画面的拖尾现象;再者,Gear VR store有非常严格的内容审核与分级机制,良好的利益分配机制,让优质开发者在这里聚集,内容自然优秀;最后定制开源SDK简化了游戏适配的过程,开源SDK使我们可以定制需求。开发者可以植入后台,抓取自己所需要的玩家数据,分析数据并使内容优化更新得更加出色。

“Finding”精彩的移动VR游戏

Finding是一款偏重解谜的动作冒险VR游戏,是TVR时光机在移动VR领域的初次尝试。在遗迹废墟的大环境下,你可以像“蜘蛛侠”一样,在空中飞跃冒险,探索未知世界的终极秘密。该游戏目前还在制作中,目标是登陆Gear VRStore平台。该游戏在制作上的最大特点是,利用GearVR自带的Touchpad完成第一人称角色的控制。

首先,我们必须知道VR游戏的整个流程,才会知道VR游戏与传统游戏的区别。VR游戏在运行时,输出和输入环节都有巨大的变化。从VR游戏制作过程看,三维游戏的制作流程已经非常成熟。区别主要在策划,在于如何利用VR输出和输入环节的特点,制作三维世界中有趣的游戏体验。

重要的沉浸感

VR技术最大的特点就是能够带来沉浸感,玩家可以沉浸在游戏的环境中,这是其他媒体上的游戏无法做到的。比如:一款足球游戏,VR中的第一人称能很好地模拟球队中每位球员的视角,再加上足够真实的环境、气氛、声音、规章等,玩家很容易沉浸在比赛中。所以,当我们在设计VR游戏时,这个特点最值得被重视。在制作《Finding》时,我们非常重视沉浸感的设计,主要是通过营造真实环境气氛来实现。然而,在移动端想要营造真实环境是非常难的事情,我们只能通过环境气氛、特效、光影(烘培)和声音等方面进行强化。当然,也有通过风格化艺术形式来强化沉浸感的,给人新奇的感受,如Drift等游戏。

全景环境的运用

这点主要是基于传统游戏与VR游戏的输出显示不同而做出的强化。VR游戏是整个360°环境,你可以想象下坐在由多个屏幕组成的球型环境中的感受。一般比较适合射击、探索、体育等类型游戏。在制作《Finding》时,我们设计了许多可钩点在空间中的不同位置,玩家会在钩住第一个点后,通过头动迅速寻找下一点,带来飞跃的快感。当然,在运用VR全环境特点时,尽量避免让玩家快速地、大幅度地转动头部,会增加眩晕感;尽量利用玩家前方140°的视野,防止玩家转身背后,引起不适。

基于Touchpad的交互

Touchpad是Gear VR自带的触摸板输入方式,外界对此的评价褒贬不一。因为VR是三维媒体,用二维输入方式去操作不够直接和准确。但我们认为,Touchpad在进行简单交互时还是足够简单和舒适的,不太适合激烈的复杂交互。大型游戏还是用游戏手柄进行控制,比较符合玩家习惯。在制作《Finding》时,我们用Touchpad控制角色的各种简单操作:向前后滑动—角色移动、单击—伸出“爪子”、长按—移动物体等。

Touchpad是一种配合头部瞄准的全新操作方式,对于新玩家有一定学习成本,需要制作教程进行引导。

移动VR游戏的优化

移动设备的运算能力十分有限,即使是晓龙805这样顶级的CPU,在处理VR双目渲染时也是捉襟见肘的。所以,制作出来的每一个场景都需要细致的优化,优化的工作至关重要。来自Oculus Gear VR官方的“Best practice”中建议:每个场景中的绘制调用(Drawcalls)控制在50~100个、顶点数(vertices)控制在5万~10万个、模型三角面(triangles)控制在5万~10万个、灯光必须进行烘培、总贴图大小控制在64MB~128MB、以保守的态度制作场景。

静态批处理

在一个场景里,可能有一堆静态几何图形,比如墙、椅子、灯光和各种静止网格(Mesh)。你可以在编辑器里把它们标成静态,确保将他们标记成静态光源映射来得到烘焙好的光照贴图纹理。被标记成静态的物品会被组成一个网格,而非每绘制一次物品就产生调用。

尽可能控制材质种类,细节主要靠手绘。静态批处理有一个关键的要求:所有物品必须都有同样的材质。如果你有木头材质的静态墙壁和一个钢铁材质的静态椅子,所有墙壁会被组合成一个网格,消耗一个绘制调用,而椅子则也会有一个网格,占用另一个绘制调用。

纹理合集

每个不同材质都会至少导致一个新的绘制调用。但是,如果它们能使用同样的着色器,你可以使用纹理集合来创建一个材质,同时兼容这两个物体。一个纹理集合其实就是一个大纹理贴图,里面包含了各种各样的小纹理。你可以让某个材质加载几个纹理而非让一堆材质加载一堆纹理。每个物体都能通过不同的纹理映射来加载这个纹理集合上不同坐标位置的一小片纹理。

动态批处理

移动的非静态物品也能被动态批处理为单一绘制调用。这对于CPU来说开销较大,每帧都经过计算,但就优化最终结果来说还是不错的。不过要注意的是这只对低于900个顶点并有着同样材质的物体才有用。使用纹理集合来为你的动态物体创建一个单一材质,然后你就能得到简单的动态批处理了。

多细节层次

多细节层次组也是一个提升表现的简单方式。Unity能自动在摄像头和物体之间的距离发生改变时过渡到不同的细节层次。

重复绘制、遮挡剔除

降低重复绘制,不要让远处物体的像素被绘制之后,近处覆盖在这个像素的物体上面时又绘制了一次。大量的重复绘制和高分辨率影响填充率,而纹理填充率也是GPU的限制之一。

目前,解决方式包括遮挡剔除和层次视锥剔除。层次视锥剔除能将摄像机视野锥体外的东西都剔除掉,毕竟渲染那些你根本没有看着的东西毫无意义。而遮挡剔除则是不渲染那些被挡住的物体,比如门后的房间,沙发后的桌子。

异步加载

当玩家快要接近到加载下一关的门时,加载下一关。

烘培

在制作游戏时,所有的实时阴影必须被关闭,还有带透明通道的材质,都会占用大量绘制调用。在PC上,你能仅通过单一的即时方向光来得到不错的动态阴影,但在移动端,请用烘焙好的光照,不要用实时阴影。

光照探针

当使用烘焙好的光线后,那些动态物品看起来违和感很高,而静态物品非常好。解决的办法之一就是通过光照探针来模拟动态光源。

光照探针是烘焙好的立方体贴图,在场景中的各个点上存储直接、间接乃至发散的光线。当动态物体移动时,它会提取最近的几个光照探针的样品来模拟在那个部位的光线。这是模拟真实光线而无需依赖昂贵的实时光线的方式。

总体来看,移动VR游戏目前还在初期发展阶段。Oculus CTO卡马克认为一个好的移动VR游戏应该有以下几个特征:能在Gear VR上以60FPS稳定运行;尽可能减弱游戏的眩晕感;拥有酷炫的美术画面;有趣。这也是TVR时光机不断奋斗的目标。


收藏(0)0
查看评分情况

全部评分

此主贴暂时没有点赞评分

总计:0

回复分享

共有3条评论

  • 慧星的那一夜
  • MK
  • 药师
  • IT宅男
  • mr jack
  • YUI
  • Mr ken
  • cappuccino
  • 课课家技术团队1
  • 选择版块:

  • 标题:

  • 内容

  • 验证码:

  • 标题:

  • 内容

  • 选择版块:

移动帖子x

移动到: