【问题标题】:Defining forward-position for Kinect Rig定义 Kinect Rig 的前向位置
【发布时间】:2020-09-07 16:14:16
【问题描述】:

我需要弄清楚我的 Kinect 装备在 Worldspace 中所面对的方向。 装备本身只是放置在世界空间中的一些游戏对象。它们彼此不相关。钻机的元素总是同名的,所以应该可以通过这个来确定方向。

我看到了如何解决问题的逻辑,但我看不到如何在世界空间中正确调整 x 和 z。

【问题讨论】:

  • Plum3r,请注意,您的图表存在巨大问题(“解决逻辑”)。那是一个二维图 :) 所以没有手性。你必须添加一个“向上”的方向,否则它是没有意义的。仔细想想,“向上”很简单——从spineBase到head!享受
  • 是的,向上的方向没有问题。我尝试了另一种方法:我在左髋和右髋之间创建游戏对象。我让新对象看左臀部,所以我知道我的对象的右侧必须是向前的方向。它工作正常,除了 kinect 并没有真正正确地检测到我的真实方向......

标签: c# .net unity3d


【解决方案1】:

您可能只需要 A 从左臀部到右臀部的一条线和 B 从左臀部到头部的一条线的叉积。

您的代码将如下所示:

Vector3 A = hipRight - hipLeft
Vector3 B = head - helpLeft (or, ideally, head - spineBase)

Vector3 solution = Vector3.Cross(A, B).normalized

显然,如果您为这样的事情执行 AXB,并且它指向后,只需更改为 BXA。


• 不要忘记 Unity 是左撇子。

• 提示。没有人能记住“哪条路”的交叉点!示意图如下:

https://docs.unity3d.com/ScriptReference/Vector3.Cross.html

【讨论】:

  • 这会给我“向上”的方向。我需要“向前”方向,以便让玩家朝那个方向旋转。
  • 我绝对可以向你保证,它给出了前进的方向 :)
  • 我会想办法把结果贴在这里。
  • 嗨@Plum3r - 嘿,没必要弄清楚。我已经给了你上面的代码。这是游戏物理中一个非常标准的问题。享受吧!
  • 感谢您的帮助,它对我帮助很大。如上所述,我首先需要修复其他东西,所以这个线程为我解决了:)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-08-29
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-05-22
  • 1970-01-01
相关资源
最近更新 更多