Htc Vive的瞬移技术还可以用抛物线来实现,这里跟大家讲一讲实现的一些方法吧。
这个是针对HTC Vive和引擎简单易用的瞬移系统。
这个系统是模仿Valve的Vive游戏“The Lab”而作,即玩家可以穿过比游戏区域大的VR环境。
下图可以看到对于系统的演示:
提供的这个系统解决了以下问题:
1 计算可导航空间:
我们显然不希望玩家可以传送出边界,或者在不透明物体内部。
为了解决这个问题,这个系统使用了Unity生成的导航网格作为玩家可以传送的边界。
因为这个过程包括了Unity的工作,所以它很稳定并且可以放心的应用到大多数工程中。
为了预加载这个数据,只需要在场景的任何位置添加一个"Vive Nav Mesh"组件,并且在检视面板点击"UpdateNavmesh Data"按钮。
这样无论什么时候更新场景都可以用新的NavMesh烘焙来更新Vive Nav Mesh。
上边的过程说明如下图:
2 选择瞬移目的地:
这个系统通过简单的运动学方程使用了直观的抛物线选择机制。
再次说明,这是受到了Valve的“The Lab”启发。
用户将控制器举到更高的角度时,选择点会生成的更远一些。
如果用户将控制器举过45度(抛物线的最大距离),角度将会锁定在那个距离。
3 表现游戏区域:很有必要知道传送后防护边界在哪里。
因此系统围绕防护边界划定了一个盒子。
4 减少不适感:瞬移(显示为“眨眼”)时屏幕的淡入淡出可降低用户的疲劳和眩晕感。
这个Unity工程(版本5.3.4p6)提供了两个简单场景:一个直接集成了SteamVR,另一个适用于没有HTC Vive的小伙伴来演示系统功能。
资源代码已经做了文档和注释,或者可以跟随MIT Licence(参照LICENSE.txt)使用.
网友评论