HTC Vive小场所与大场景空间的处理方案

关于Vive,咱们能够正常运用,运动追寻功用是 HTC Vive 的一大亮点,这也让许多适配 HTC Vive 的游戏能够让用户动起来,听起来很帅,体会起来也很帅。在小规模移动1:·1的规模内活动或固定方位的游戏中,定位准确, ...
魅族汇
2016-11-16 22:08
5626 0

关于Vive,咱们能够正常运用,运动追寻功用是 HTC Vive 的一大亮点,这也让许多适配 HTC Vive 的游戏能够让用户动起来,听起来很帅,体会起来也很帅。在小规模移动1:·1的规模内活动或固定方位的游戏中,定位准确,而且推迟很低,各种长处不胜枚举。

可是空间问题,让想在小空间大场景的游戏中的玩家排在了门外,HTC官方主张:HTC 主张顾客在至少 20 平米空间运用全套配备,这也意味着你的游戏房要足够大。土豪就不必往下看了!

可是关于想要开疆扩土的用户,在实践中场所巨细就成为了限制,用户没有刚好游戏场景巨细的场所,游戏场所过大,而玩家场所太小,怎样处理呢? 还有便是要是1:1的场所,会有一种游戏场景十分短促,感觉没有走多远就到了边沿,让玩家十分不爽。

所以这儿给出了变比空间的HTC头盔的移动问题的处理方案。 当然,若你有更好的办法,也欢迎谈论。

咱们要点来说,游戏场景过大,而实践场所台较小,需求对位移进行份额加快问题。

咱们要处理问题有三个:

1. 鸿沟扩大

2. 起点方位平移

3. 游戏空间与场所非等比空间速度缩放

一、鸿沟扩大

首要,来看看官方SteamVR给出的预制体的顶视图:

58082ec015644.jpg

发现没有,在HTC 头盔的游戏中,玩家总在蓝色框的中心方位。而关于需求从(0,0)作为起点的游戏,需求在房间内处处移动,而且依据游戏剧情,需求空间移动的游戏,这个就只能够用原有场所的1/4的场所了,更形成了场所的糟蹋。

咱们首要处理的便是方位需求偏移问题。

其次,看到蓝色边框的巨细了没有。其实蓝色框规模很小

58082eca4201d.jpg

看代码:

58082ed2e1033.jpg

这个面积小,不满意需求,怎样办呢? 自己来增加啊,搞大场所!

我就自己做了一个区域标识。

58082edc3fe8b.jpg

小的蓝色框为它本来的400*300的,大的为我自己缩放的区域。

挑选Size为Calibrated这个选项,缩放即可。特别增加了一个父节点,以避免在直接节点上缩放出问题,xz均缩放为4,Y依旧为1。

这个标识就根本满意游戏中场所巨细为9*9米的一个大场所了。

二、起点方位平移

好了。现在回来说,起点的平移问题。

分两部:

一个是视觉上,便是在游戏修正器形式下,让玩家在蓝色区域的起点角点方位。这个简略,便是仍是平移。平移谁呢,平移蓝色区域,把方才缩放的那个预制体的父节点做了平移,项目中的平移方位为(4.2,0,4.2)即可。这部分就搞定了。

第二部分,便是比较繁琐一点了。

说这个问题之前,需求略微说下SteamVR插件的运转时和修正状况的相机不同。

58082ee696f66.jpg

这个是修正器形式下的相机状况。

可是在运转时分,相机的层级结构会发作较大的改变。

58082eef7c85f.jpg

能够看到eye作为父节点,ears作为子节点,而head则被躲藏了。

详细代码处理是在SteamVR_Camera.cs中的OnEnable中处理。

部分代码:

58082eff8e829.jpg

还有ears的处理代码,设置ears的相机参数:

58082f051ada3.jpg

为什么讲了这么多结构呢?因为它影响到了玩家起点平移的算法和处理。怎样处理呢?

其实是蛮简略。给相机的父节点在初始化时分,重置一个与相机初始化一个相反的参数。 为什么呢?这正是为了抵消相机在场景中从(0,0)点作为起点的改变啊.

详细代码:

58082f101da48.jpg

这个依据自己需求来处理的按键和时刻主动开端。能够不这样用按键啥的。

58082f1898561.jpg

这儿趁便说一句: 便是要增加手柄,只需求把手柄脚本放这节点下,然后设置左右手柄即可。 手柄在随后中,并不会因为位移的加快对其形成影响。

三、游戏空间与场所非等比空间速度缩放

好了,说完了平移。 终究,那便是场景为9*9米,而我场所只要三米或5米,怎样办呢? 其实成果现已比较显着了。便是方才FPSController还有个缩放的父节点。

那有人或许会有贰言?直接来操控HTCvive相机的脚本来给得出的相机方位进行修正缩放不就能够了吗? 哎呀,这个办法的确很好啊。可是无法完成。为什么呢?

因为相机无法在脚本层操控。 在修正器下运转模型下,把一切脚本代码勾选掉,相机的方位旋转均还能够正常运用。 这根本阐明,相机的操控在脚本层的时机很少。 可是,我并不死心。下面就开端了各种测验。

当然是在脚本中,看代码吧。

58082f20ad486.jpg

要说的是:以上代码对与HTC头盔的相机设置下工均没有任何的效果。看清楚是对实践效果有任何效果。

要说有效果,在修正器形式下,修正器里边现实为零,可是相机数据仍能够改变,这是因为修正器的数据显现要先于实在的相机坐标,仅仅个假象,都是错觉。

终究的处理方案,给FPSController增加一个父节点,这样就根本搞定了。

58082f280a909.jpg

为了便于依据场所的巨细和游戏场景的巨细调理匹配,缩放参数做了一个配置文件。这儿就不过多的胪陈了。

至此,咱们完成了,鸿沟扩大,起点方位平移,游戏空间与场所非等比空间速度缩放。

趁便说下,咱们游戏场景为9*9而实践测验场所为2.5米左右的时分,缩放系数为0.5,这时分因为场所过小,速度过快有少于不适。而在5*5左右时分,调理参数,全体感觉仍是十分舒畅的,也没有因为空间的巨细而在游戏中感到短促。

魅族原装EP21-HD耳机
此篇文章已有0人参加谈论

请宣布谈论

悉数谈论

重视咱们

扫描魅族汇二维码或查找
魅族汇微信大众号:Meizuhuitech

联络咱们

18601279940