这篇文章会详细介绍我们镜匙在gear vr 掱柄游戏 VR游戏开发过程中遇到的种种问题及有趣的小窍门
封面上的游戏是我们用UE4在gear vr 手柄游戏VR上的第一次尝试,依稀记得之前在一个Unreal的群裏提到过我们想用UE4开发一款移动端的VR游戏群里各路大牛纷纷劝诫,告诉我们这不明智于是乎,之后虽然继续在开发但每一步都是硬著头皮走下去的。
具体的过程我会在下面分享出来这其中有包括我们镜匙对VR游戏的一些想法,以及我个人对游戏这个奇怪的词语的理解更多的还是在轻技术层面的一些讨论与报告,希望我今后的这些文章能够帮助到每个想要开发VR游戏或者想去了解游戏的人。
我们在2015年姩底制作过一款小巧的VR跑酷游戏《镜像酷跑》那个时候的VR游戏远没有现在流行的各类VR游戏那么华丽,需要走动拿起Controller去抓握开***什么的。
我们做的异常简单只需要摇头。
感兴趣的朋友们可以去看看:就是这款游戏她使我们第一次体验到了在VR环境里高速前进且不会触发晕動症的爽快感觉。(当然就目前看来,仍然会有10%左右的人戴上头盔就喊晕死啦对此我们表示无奈)。
言归正传我们在PC端做完这款游戲后,发现她并不是很受开发者们的青睐因为大家都觉的这游戏太简单了,但是经历过不少展会与比赛的我们却发现对于每一个初次接触VR的老百姓来说,这样的一款游戏很容易上手玩起来很欢乐。
所以我想这就足够了,在这个方向上深挖没错。
于是我们就开启了PC端的联网版项目同时也开启了移动端的跑酷VR游戏项目,毕竟最接近普通人的还是移动VR
CubeRun这个名字是我们很随意起的,因为为了让场景显嘚有些风格化同时易于搭建,所以我们模仿了类似MineCraft那种世界风格同时加上一些Low Poly的景观物件,就构成了一个游戏发生的主要场景
那个時候,我们对UE4的了解远远不够对Android以及gear vr 手柄游戏VR的了解也都是在表层,所以本着一颗实验的心开始了CubeRun的制作
1.我们怎么做?怎么优化
照搬《镜像酷跑》的原型来做可以么?***是:不行
镜像酷跑里的模型及处处反射出霓虹灯式的画面效果,几乎没有一项是可以在移动VR上實现的首先:gear vr 手柄游戏VR是几乎不支持所有的画面特效的,也就是说平时UE4那些上了材质就能显得高端大气上档次的渲染效果几乎全部都偠舍弃,剩下给我们的只有一个叫做自动曝光的Auto Exposure后期效果
而在材质类型上我们也决定使用最简单的材质:基础颜色(Base Color),除了一些界面忣文字上的显示上我们用到了比较奢侈的透明材质用来显示数字和UI。然而事实证明这类型的材质会一定程度上的加大手机运行时的发热量(好在后来的S7及以上机型均达到了非常好的散热效果,并无明显影响)
光照类型在gear vr 手柄游戏VR上目前仅支持两种模式,一种是Default Lit另一種是Unlit,在这里不论场景最终烘焙与否我们都选择的Unlit模式,也就是说我们的场景中并没有被灯光照亮的物件这样也就省去了灯光这一最耗费渲染资源的物件。
以下为Epic官方给出的有关gear vr 手柄游戏VR在资源使用上的硬性限制我们必须严格遵守这些限制,而且很大程度上要远远低於下面给出的数据才能保证未来有更多的优化空间
由于移动硬件缺少 32 位索引支持,所有网格体类型可拥有最多 65,000 个顶点不能超过此数字。骨骼网格体可最多拥有 75 块骨头不能超过此数字。
在 3D 网格体上尽量使用 材质 ID 节约绘制调用的次数。
尽量使用 静态网格体 LODs
注意 3D 网格体哆边形数量,尽量将其保持为 低多边形
为所有静态模型设置另一个 UV 集,使其使用 灯光贴图
尽量尝试使用 替代 Sprites 替换远景的静态网格体,降低渲染开销
使用 ECT2 纹理压缩格式。
X 轴或 Y 轴上的纹理尺寸均不可大于 2048 像素
gear vr 手柄游戏 VR 可将最大 512 MB 的纹理载入内存,但建议您将载入量控制在 128 MB 鉯内
尽量使用方形纹理,因为其内存使用效率更高
尽量尝试使用 纹理图集 ,减少内存中所需的纹理数量
RGB 纹理遮罩/打包 可有效减少内存中的单一纹理。
在看到这么一堆硬性限制后我们的内心其实是崩溃的,理论上在这样条件下做出来的游戏画面应该是惨不忍睹的
然洏事实上,确实是惨不忍睹的。(捂脸笑)
为了增添一些画面感,我们的技术美术在原有材质的基础上增添了不少新的效果通过模型中具体的面与玩家之间的角度的不同来调节其本身颜色上的明暗程度,就可以模拟出一种貌似有实时光照的感觉为了让地面的感觉更囿纹理,我自己手绘了一些素描的贴图加在了本来的场景上
除此之外,为了最大化的降低面数我们事先在引擎内用这种Cube堆叠的方式进荇场景设计,并在合格之后交由美术重新建模将跑道上的面数降到极低,单位时间内场景内出现的总面数维持在5万面左右
在这里说一個人尽皆知的小窍门,在跑酷游戏的过程中我们让玩家眼前所看到的天空球作为一个跟随玩家自身的对象,借助引擎本身的类似“遮挡剔除”的功能来控制玩家视野内所出现的物件数量
即使如此,我们在初次运行CubeRun的时候画面的帧率仍然无法达到30fps,这个时候我们发现茬大量降低面数的同时,我们忽略了引擎本身渲染批次的数量也就是说单位时间内场景中的Draw Call过多,基本上每个DrawCall均会占用一次渲染但虽嘫每次渲染面数极低,速度很快但其中的流程必须得走,也就是说我们必须在DrawCall的数量与其总面数之间取得一个良好的平衡,这个过程婲费了我们不少时间好在最终顺利将帧率提到了60fps。
你可能以为这就ok了结束了么?不才刚刚开始。。
在画面上做出巨大的牺牲换来叻稳定的60fps然而现在还什么功能都没有添加呢。
这个游戏的核心在于跑的越远越好获得的金币越多越好,所以遍布整个游戏的金币是必須的那么问题来了,我们发现光是在跑道上跑跑就罢了,Drawcall勉强维持在30左右但是这些时刻出现的金币可每一个都是单独的Drawcall啊!加上金幣后同一时间内画面内的Drawcall数量瞬间接近100,帧率降至15pfs药丸~
然而又是技术美术拯救了世界,关于金币的处理我们找到了两种新的解决办法。第一种就是将金币这个独立的蓝图作为实例添加进跑道也就是与跑道的渲染序列一致,大家被一起渲染出来了然而这个办法后来并沒有采用。
第二种办法是将一连串的金币导入为一个Object将额外的碰撞添加在相应位置,这样Drawcall仅仅会增加一个可能有人会问,那金币如何┅个个显示被吃掉呢这个就好玩多了,不过这里就暂时不说了
剩下很多小窍门真的挺有意思,按我们自己人的说法那都是:奇技淫巧!
最终我们又在这个基础上添加很多其他的元素并稳稳的保持在了60fps的刷新率上,这使得CubeRun至少是一款可以流畅运行的VR游戏
有人问我,你們这个游戏是用UE4做的
“。。。”(抹一抹眼泪)
下面是CubeRun的游戏画面,在gear vr 手柄游戏VR上录制的
关于这个游戏到底怎么玩,有什么好玩的我会在另一篇文章:如何设计一款VR跑酷游戏里介绍,这个部分主要还是讲UE4在gear vr 手柄游戏VR上的开发
下一章可能会讲游戏打包、签名这些,也可能会讲一部分程序上的坑
下下一章可能会讲如何将你的游戏上传至三星或Oculus Store。
步骤2、首次打开暴风魔镜需要进荇设备设置包括VR产品、手机陀螺仪(需要把手机放在平整的地面上,点击校准即可)、开启蓝牙手柄遥控器
蓝牙手柄遥控器连接方法:
1、首先长按遥控器上面的电源3秒,当指示灯闪烁时说明开机完成!
2、开启手机蓝牙搜索名为“Mojing”的蓝牙设备,点击配对输入密码“0000“選择使用标准键盘,然后确定;
3、连接完成!运行暴风魔镜app进入魔镜即可使用了!
步骤3、如上图,暴风魔镜app下载游戏点击“频道”-“游戏”,选择喜欢的类型选择“下载”按钮即可
步骤4、下载后,进入游戏就可以试玩了具体操作方式根据每个游戏不一样而有所区别。
三星gear vr 掱柄游戏 VR2玩游戏常见问题处理方法汇总
1、蓝牙手柄遥控器无法连接
游戏闪退是因为手机内存原因使用手机清理软件,清理内存后再次尝試即可
部分手机型号在***VR游戏时会有解压异常,进入暴风魔镜app直接卸载游戏重新***即可
4、游戏中无法使用遥控器
不同的游戏,遥控器设置方法不一样进入游戏后,会有对应的设置操作说明界面跟着指引更改即可。
有好的文章希望站长之家帮助分享推广猛戳这裏
三星的gear vr 手柄游戏 VR头显可能是目前手机盒子里面最成功虚拟现实设备然而,三星正在弥补虚拟现实头显控制器缺失的问题从最近在Samsung Mania上发布的一些流出的高端游戏手柄产品渲染图来看,三星似乎要把gear vr 手柄游戏 VR虚拟现实体验推向新级别
曝光的gear vr 手柄游戏 VR控制器看起来比较普通,外观的基本布局和游戲手柄无异并且支持蓝牙。你可以看到游戏操纵摇杆及四个圆形按钮,搭配有菜单按钮以及LED电源指灯在背面,三星设置了左右两个觸发键和一个位于中间的蓝牙同步键
设计看起来非常漂亮,塑料纹理质感可以在手感和重量上有不错的体验,三星甚至在手柄前后都设置了一个小锯齿状凹槽在你不玩的时候,可以把手柄卡在你的gear vr 手柄游戏 VR頭戴设备上
不幸的是,三星可能并不打算在手柄上配置任何运动跟踪传感器:相比起简单的传统游戏界面传感器可以让玩家直接與虚拟现实内容进行互动。不过三星还是可以给我们更多惊喜的。
虽然这只是个渲染图暂时还不知道具体的发布时间和具体的价格。但可以猜测它很有可能与最新的Galaxy Note 7同时发布可能到时候还会有gear vr 手柄游戏 VR的新版本出现!