跑跑车游戏网
您的位置:首页VR资讯中心VR游戏攻略 → Htc Vive瞬移技术实现教程

Htc Vive瞬移技术实现教程

2016/10/11 10:06:02来源:本站整理作者:不详我要评论(0)

开发Htc Vive游戏应用的用户肯定都系那个了解瞬移技术的实现方法,这里跟大家分享下教程吧。

如何实现

一般的瞬移程序:

玩家定位的位置是camera.localPosition,现在想要移动到targetPositon,在不考虑转向的情况下只要这么做:

CameraRig.position = targetPosition - camera.localPosition;

原因是 camera的本地位置+父物体(CameraRig)的位置 = camera的绝对位置。

所以要让camera的绝对位置=targetPosition,就需要能满足等式camera.localPosition + CameraRig.position = targetPosition。

这个等式通过移项可以获得上面那行代码。

考虑旋转的瞬移:

有些程序像本文提到的例程一样,需要考虑旋转。

也就是说camera在游戏中的朝向未必和HMD定位的朝向保持一致。

那需要对上面代码做如下改变:

1. 对父物体CameraRig的旋转也做出类似改变

2. 设置旋转后再设置位置

3. 改变相对位置到绝对位置的转换式

最终的代码是:

cameraRig.rotation = targetRotation * Quaternion .Inverse(camera.localRotation);

var relativePos = cameraRig.TransformPoint(camera.localPosition) - cameraRig.position;

cameraRig.position = targetPos - relativePos;

总结

最简单的实现瞬移的方式是,改变camera父物体的位置和朝向。另外为了减少眩晕感,可以加上镜头的淡入淡出。

网友评论

发表评论

(您的评论需要经过审核才能显示)

查看所有0条评论>>