Unity美洲区技术总监:开发VR游戏的建议以及需要注意的问题

本文中图片由Unity官方提供,版权所有,禁止用于任何商业用途。

2月18日,Unity VR大师课程在广州举行,现场座无虚席,开发者们反应非常热烈。在本次课程中,Unity美洲区技术总监Carl Callewaert分享了VR游戏的发展趋势、开发VR游戏的建议以及需要注意的地方。

Carl Callewaert拥有超过10年的游戏开发经验,在3D动画、游戏开发、动作捕捉、虚拟现实开发等方面拥有丰富的经验。

数据:VR硬件销售预计达3890万,71%为基础型移动VR硬件

首先,Carl发布了一组数据来阐述了VR的发展情况。预测2016年市场上VR硬件销量将会达到3890万,其中71%用的类似Cardboard式的便携设备,数日前Google Cardboard发布销量达到500万台。类似Gear VR的高级移动式VR硬件的占比大概为7%;连接电脑VR户占比17%;主机VR占比5%。现阶段,VR设备主要是以轻度基础型为主,这类设备廉价,可以给用户带来基本的虚拟现实入门体验,对于市场的普及可以起到很好的作用。

VR将以指数型增长,而非直线增长

对于VR的增长趋势,很多机构都发布了预测数据,根据某机构预测,2016年VR市场将达到50亿美元,2020年,VR+AR市场将达到1200亿美元,而早期增长主要来自VR,但是后期AR将成为主要增长点,因为AR相比VR应用范围更广。

对于这个呈直线形增长的预测,Carl提到,Unity的CEO认为这个增长趋势是错误的,VR的发展应该是指数型的,开始可能会比较慢,早期市场比较混乱,经过一段摸索期之后才会逐渐进入稳定期,到后期呈现爆发式的增长。

使用Unity在各个平台开发VR游戏需要准备哪些?

现在的VR游戏分为好几种形式,移动端、PC端、主机端,每一种形式的游戏需要用到的基本开发工具各不相同,此处将列举Oculus平台和Gear VR平台所需要的开发工具。相对来说,移动端所需要的工具更多更复杂。

Oculus平台:

1.Oculus SDK

2.Oculus Runtime

3.Unity4.5及以上版本,建议使用5.0以上版本

Gear VR平台:

1.Oculus Mobile SDK

2.Oculus Runtime

3.Java Developers Kit

4.Android Development Tools(ADT)

5.Galaxy USB drivers

6.Unity4.5及以上版本,建议使用5.0以上版本

注意:5.1以上版本开启VR支持非常简单,菜单PlayerSetting/Virtual Reality Supported就可以打开。

VR游戏必须死守的重中之重:帧数


现阶段,帧数低是产生眩晕主要的原因之一,而VR游戏无论如何必须达到各个硬件指定的帧数。因为如果帧数不够,头部在转动的时候帧数会跟不上而导致眩晕。

Carl提到,VR游戏最主要的一点是保持稳定的帧率,Oculus平台的游戏至少达到75帧,HTC vive至少90帧,Gear VR要求相对较低,不过也需要保持60帧的帧率。即便画面效果做的再好,帧数如果跟不上会大大降低用户体验。相对来说,简单的卡通风格画面效果要比逼真的写实风格更好。

此外,游戏设计时每局的时间需要控制好,最好以每局时间控制在5~20分钟左右,这样可以防止用户长时间玩游戏产生眩晕。

Unity开发游戏设置注意事项:

使用Unity开发游戏时软件设置需要注意的地方:

1、纹理压缩ETC2 GLES3.0

2、方向设置为横向左

3、垂直同步设置为不同步

4、启用多线程

5、设置固定的时间步长更新

6、抗锯齿最大2倍

7、需要Oculus Gear VR签名文件

使用Unity自带的Profiler测试游戏性能时:

1、可以通过USB或WiFi查看实时应用程序的性能数据

2、直接构建到Gear VR硬件

3、很容易看出性能瓶颈

4、在移动VR中,无论多小的优化都是有用的

移动VR游戏开发的建议:


1.尽量减少游戏里面的面片模型。这是为了让GPU的负担更少,提高帧率。在VR里面建模和一般的游戏建模有些不同,一般游戏里可能会用到凹凸贴图效果,但是凹凸贴图能达到近似效果,并不是真正凹凸的,当用户非常靠近这个模型的时候,是看不到凹凸效果的,所以在VR游戏里面不应该用凹凸贴图这样的一个技术。

2.其他在做移动VR游戏的时候,尽量用对象池,这样的话可以减少游戏加载的时间,并且让帧率保持稳定。

3.避免一些高CPU集中的运算导致的帧率突然下降。

4、这是很多开发者经常犯错的地方。在看游戏运行的时候,在editor的数据里面,大部分的开发者会非常留意Batches以及Saved by batching,来考虑GPU的性能好不好。但是其实SetPass这个数据在也是需要关注的点。因为GPU在渲染东西的时候,每更换一次材质的时候,就是它更换上下文的时刻,Batches数量增加没有Setpass增加消耗的快,Batches虽然很多,但是他们是共享同一个材质的,这个时候GPU的上下文其实没有改变,可以的话尽量让游戏里面的材质少一些,SetPass出来少一点。

5、在VR里面景深和镜头的光晕是不能用的,因为它其实只是模拟出来的一个效果,并且是单眼的,而景深是需要双眼看才能产生的,所以不能单眼画面来做。

6、游戏里面的摄像机,当开启VR模式的时候,是无法控制摄像机位置的,因为摄像机的位置已经完全被VR的设备接管了,这个时候脚本是没用的。所以如果要调摄像机的位置的话,需要给摄像机一个父节点,然后就像图上面一样,把它放在一个父节点的里面,在脚本里面去控制这个父节点的位置。

VR游戏开发插件推荐

开发VR游戏,选择工具非常重要,而一切便捷的插件可以带来很大的帮助。在ASSET STORE上,可以下载到很多配合VR游戏开发的插件,比如用于游戏中的准星、UI等插件。Carl向开发者推荐了两个插件,一个是Mesh Baker,可以把工程里面的材质合并成一个单独的材质,用这样的方式来减少SetPass的数量。另外一个是免费的插件Simpleygon,这个插件制作模型的简化版本。

游戏交互

现在VR游戏的交互设备种类繁多,并且越来越高级,早期可能以手柄这样的硬件操控为主,不过到后期加入了体感动作捕捉等高级交互方式,对于游戏的交互,Carl提到,在开发游戏之前需要先想清楚游戏适合怎样的交互方式,是否需要使用交互设备。

而他比较推荐的方式是用UI来显示现在用户的视觉焦点在哪个位置,可以让用户的眼镜聚焦他自己现在在看的那个点,使用头部转动的自然方式去进行游戏的主要交互。

例如下图,这是游戏中的选择菜单,用户在前方可以看到一条提示,下面有一个UI,一般的方式是选择点击,不过在VR游戏中可以将用户视线聚焦到选项条上,经过数秒读条后表示选择确认,不需要按键,只需要转动头部就能选择,这种方式能给用户更好的体验。另外Oculus Touch也是比较自然的交互方式。

———  游戏陀螺  ———

(0)

相关推荐