Kinect 关节秤

Kinect Joint Scale

我正在尝试找到一种方法 link 使用最终 IK 将 Kinect 关节连接到 Unity 中角色的 body 部分。

现在,所有关节都正确地 link 编辑了 body 部分(我可以移动并且移动被复制到角色),但似乎关节之间的比例(由 Kinect 发送)比 body 部分的比例小得多。例如,当 Kinect 检测到我的 body 时,角色似乎自己倒塌了。当我移动时,会检测到移动,但与角色的 body.

相比,它确实很小

有没有办法同步这两个比例?

非常感谢!

我终于找到了一种方法,而且效果很好。我会尽量保持简单。

我遇到的主要问题是从 Kinect 关节获取适用于我角色大小的比例值。

为了解决这个问题,我添加了一个执行以下操作的校准方法:

  1. 要求用户保持T字姿势。
  2. 读取用户左臂的长度(kinect)
  3. 读取游戏中角色左臂的长度。
  4. 比较两者的长度并找到相对比例(例如:如果 kinect 返回的左臂长度为 4,而角色的左臂为 2,则比例为 4/2 = 2)

起初我遇到了一个小问题,但最终解决了它。 Unity 中 Kinect 返回的 Vector3 的值是相对于 Kinect 的原点(相机)的。为此,我不得不使用一些线性代数来解决这个问题。由于 Vector3(左手和左肩)都与 Kinect 的原点相关,因此我必须减去它们才能找到左臂长度。

感谢线性代数,我们知道 A + C = B,因此,我们可以说 B - A = C。在我们的例子中,LeftHand - LeftShoulder = Left Arm。通过将此原理应用于 kinect 接收到的 Vector3,我们现在拥有代表左臂的向量。我们需要做的就是获取 "magnitude" 属性 并且我们现在有了它的长度。

总结得差不多了。