3.7.2 xr 插件摄像机坐标角度

image
和相机同级,用本地坐标,Y和相机同步,xz不变。
可以理解成xr agent是人,相机是眼睛,移动的方向是就是眼睛的正前方,所以需要屏蔽XZ的旋转,只保留Y的旋转。

你打印一下UI的坐标,看看有变化吗?你说的现象像是UI的坐标没有变化,我有试案例的,是正常的啊。
在相机加节点ref,是在相机子节点还是?

嗯嗯,是相机的子节点。
现在设备不在旁边,设备到了我打印一下坐标看看。

哦哦。我之前好像误解了。。
我以为xz不变是世界坐标不变。。
多谢了,我试一下。

看着这些坐标也是有变化的,可能两个变化的程度不同,所以两个距离始终在变化。

这个只要我戴着设备走动走动转一转,那个ui会偏得特别厉害,走的多一些,可能ui都要看不到。

这个走动转应该也会导致其他问题。
我之前提过一个通过摄像机最终的坐标旋转来设置agent的坐标和角度的内容,本来我设置完效果都是正确的,但是设备一旦移动转动,设置出来的效果都错了 :joy:

这么设置了,角度对了,但是往前走的时候,好像一直往天上飘,这是为啥呢?

应该是你的xragent有x,z的旋转,导致节点的方向向上了。如果这样的话,那就把这个节点的世界坐标的x,z设置为0。


这段不变,再加一个世界坐标的xz设置为0。通常的话,xr agent的x,z应该是没有旋转的

你这个节点里,是不是有一些scale设置,可能会影响ui的位置,案例的你试试看,你看看案例是不是你需要的那种。如果你看案例也是会变的,那可能我的理解不太对,我这边看案例是正常的,就是ui-eye那个

这里的xragent可以看作是一个人,正常站立状态下,只有在上下坡的时候,x,z才会有旋转,这个时候移动方向向上是有可能的,正常平路下,xragent的xz是不会有旋转的

您说的这个xz,应该是世界旋转吧,而不是世界坐标?
我试一下设置世界旋转xz为0 。
绕的是有点晕了 :joy:

这样设置的,看着应该是对的,总感觉有点倾斜。。不过也可能是初始地面不平的问题?猜的。。

嗯,世界旋转,你先看看你的xr agent的xz是不是有旋转的

应该是地面不平,其实你只要管理好xragent的xz的旋转,相对于地面是一致的,这样就没问题了。
也可以理解成,我们以xragent为人的位置和旋转,然后加上相机的本地Y轴旋转(可以理解为头的旋转),按相机的面向(眼睛的正前方(屏蔽头部向上下和左右的旋转,保留头部前后的旋转))行走


是有设置这个角度的。
之前会把相机吸附到某个角度某个位置,而就是通过设置agent来控制的。
但是如果摄像机的角度只在y上变化,那么agent的角度,按理来说,也只会在y轴上偏移才对的。

实际上相机的角度不仅仅是在y轴上旋转的,xz也会有旋转的,所以你这样设置以后,xragent也会有旋转的。在你低头的时候,相机的x轴会有旋转的

但是我用右边手柄的时候,遥感左右摆动会左右转,但是前后摆动就不会上下转。
所以xz也会旋转是在遥感的时候吗?

手柄的摇杆只会旋转Y轴,模仿人的旋转的, 你可以看下代码。
但是你现在的流程是把相机的位置设置给了人(xragent),相机是会有xyz三种旋转的

嗯嗯,明白了。
估计最初设置角度的时候,xz上的角度就已经不是0了。

话说,这些设置坐标角度的,为毛没有直接封装到插件里捏,这些内容估计每个做ar的都会遇到,用的应该会比较频繁吧。

主要就是一个移动时的方向,这个是因为提供了绑定,不同用户可能会有不同的需求,就没有做独立的封装,用户根据自己需求进行绑定就好,可能后面会有一些预制提供哈。

这个在做逆变换到xragent的时候,可以屏蔽xz的旋转,不然会把相机的xz旋转带上