伴随iPhone播放器摄像头移动飞跃运动手坐标系

时间:2018-06-30 19:12:07

标签: unity3d leap-motion

两年前,我正在修复一个旧项目。它使用Windows Unity主机来利用Leap Motion设备捕获手势,并使用iPhone Player(带有Cardboard耳机)来控制视口在“游戏世界”中的相对移动方式。

现在,我发现只有当我的Leap Motion设备保持静止(例如,固定在我的胸部上)并且只有iPhone播放器随我的头部移动时,我才能发现一切正常。否则,当我同时戴着Leap Motion设备和iPhone时,手部模型会随着头部的移动而摇摆。

我得出的结论是,Leap Motion设备捕获的手的位置已被解释为相对于“世界协调系统”的位置,但实际上,它应该是相对于我的耳机(即iPhone播放器摄像头)的本地位置在我的Windows主机中作为游戏对象生成。

我做了一个简化的场景来说明我的情况。未连接网络时的层次结构如下:

Windows End With Nothing Connected

Windows程序作为主机连接到其自身时的层次结构:

Windows Host With Itself Connected

还连接了iPhone End:

Windows Host With Both iPhone And Itself Connected

我正在尝试将命令传递给“手”,以使其随“相机(克隆)/头”一起旋转,但是它不起作用。 (在下面的图片中,“ RotateWith”和“ CameraFacing”是不同的试验,以使其与“ Camera(Clone)/ Head”一起移动。)

Inspector View Of "Hands"

1 个答案:

答案 0 :(得分:0)

听起来问题可能是由相机和Leap Motion具有不同的延迟并以不同的帧速率运行引起的,可以通过temporal warping解决。 Leap Motion已经实现了该功能,如果您使用Leap XR Service Provider,该功能会自动完成。

LeapXRServiceProvider组件连接到主摄像机,并确保“时间变形”模式设置为“自动”。这将告诉Leap Motion代码补偿手部跟踪框架和Unity框架之间的差异。