首页 > 解决方案 > 如何根据头部位置、旋转、注视原点和方向找到用户在 Unity 场景中的位置?

问题描述

我有一个播放 360 度视频的 Unity 场景。用户使用带有集成 Tobii 眼动追踪器的 HTC Vive HMD 观看 360 度视频。我正在使用 Tobii 预制件将原始数据和 Unity 数据保存到 XML 文件中。XML 文件具有头部位置、旋转、注视位置、方向等参数和值。我如何使用这些来找到佩戴 HMD 的用户正在查看场景的位置?

我使用了左右眼的注视方向值,并使用 matplotlib 绘制了这些值。但是,我无法解释特定条件下的情节,例如当佩戴 HMD 的用户转身观看 360 度视频的一部分时。

<GazeData TimeStamp="401195894372">
    <Pose Position="(-0.23225010, 0.92871360, 0.13882240)" Rotation="(0.01330298, 0.09787695, -0.00775034, 0.99507950)" Valid="True" />
    <Left>
      <GazeDirection Value="(-0.05865479, -0.19734190, 0.97857670)" Valid="True" />
      <GazeOrigin Value="(-0.03072109, 0.00550990, -0.03687405)" Valid="True" />
      <PupilDiameter Value="0.00202419" Valid="True" />
      <GazeRayWorld Origin="(-0.26945470, 0.93564700, 0.10879590)" Direction="(0.12933440, -0.22388930, 0.96599500)" Valid="True" />
    </Left>
    <Right>
      <GazeDirection Value="(0.16032410, -0.24493410, 0.95617680)" Valid="True" />
      <GazeOrigin Value="(0.03148644, 0.00550067, -0.03543135)" Valid="True" />
      <PupilDiameter Value="0.00184862" Valid="True" />
      <GazeRayWorld Origin="(-0.20816600, 0.93479980, 0.09807995)" Direction="(0.33887940, -0.27364290, 0.90015570)" Valid="True" />
    </Right>
    <CombinedGazeRayWorld Origin="(-0.23881030, 0.93522340, 0.10343790)" Direction="(0.23560470, -0.25035830, 0.93904810)" Valid="True" />
  </GazeData>

标签: unity3deye-tracking

解决方案


推荐阅读