跑跑车游戏网
游戏
网游单机小游戏专题排行榜攻略资讯评测
软件
11应用专题排行榜教程
关于
广告合作网站地图意见反馈

Htc Vive瞬移技术实现教程

不详2016/10/11评论 (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父物体的位置和朝向。另外为了减少眩晕感,可以加上镜头的淡入淡出。

上一篇Htc Vive瞬移技术实现的难点

下一篇Htc Vive瞬移是什么 Htc Vive为什么要做瞬移

网友评论
取消

累计评论0

展开其余评论

相关阅读

上滑或点击查看更多...