HTC Vive小场地与大场景空间的解决方案

对于Vive,我们可以正常使用,运动追踪功能是 HTC Vive 的一大亮点,这也让很多适配 HTC Vive 的游戏能够让用户动起来,听起来很酷,体验起来也很酷。在小范围移动1:·1的范围内活动或固定位置的游戏中,定位精确, ...
魅族汇
2016-11-16 22:08
2718 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
  • 北京市 · 东城区 · 魅族汇
  • QQ22495321
  • 微信meiphone
  • 邮箱im@meizuhui.com
新疆时时彩豹子预测 pc蛋蛋单双公式算法 天津时时彩 时间 天津时时彩共多少期 天津时时彩华彩 新疆时时彩个位杀号
pc蛋蛋玩法技巧 pc蛋蛋玩法规则 pc蛋蛋玩法规则 天津时时彩走势图网址 pc蛋蛋外围必赢的方法 pc蛋蛋28app源码
pc蛋蛋大神预测 pc蛋蛋玩法介绍 pc蛋蛋大神预测 pc蛋蛋玩法规则 pc蛋蛋玩法简单介绍 pc蛋蛋的玩法
天津时时彩开奖纪录 重庆时时彩走势 重庆时时彩什么叫跨度 pc蛋蛋坐庄软件 幸运农场走势图官网 天津时时彩网页计划
娘家早点车怎么加盟 品牌早餐加盟 娘家早点车怎么加盟 早点店加盟 江西早点加盟
早餐 北京早点摊加盟 知名早餐加盟 早点夜宵加盟 早点加盟店排行榜
早点连锁加盟 早餐馅饼加盟 上海早点加盟店 灯饰加盟 书店加盟
早餐加盟排行榜 早餐免费加盟 美式早餐加盟 娘家早点车怎么加盟 特色早点小吃加盟店
nba比分网 海南飞鱼 广西快乐十分选号软件 河北11选5任5最大遗漏 广东十一选五走势图
天津十一选五单双 时时彩技巧 个人经验 分分彩口诀见怪号就打1 平码绝密公式规律 江苏7位数最新开奖80期
山东十一选五计划 重庆时时彩预测软件 广东快乐十分现场 11选5分析软件 安徽新快3开奖结果
香港赛马会的官方网站 一肖中特 安徽快三走势图 今日3d开奖结果 浙江快乐彩开奖走势图