我正在使用Xbox-Unity并尝试制作Kinect游戏。我需要能够知道一个球员的脚何时在空中以及它何时落在地上。我认为这就像追踪关节位置一样简单,但脚的Y根据与Kinect相机的接近程度而改变(从Kinect获取脚关节位置)。如果我把我的左脚抬起远离相机,它的Y会很高(让我们说10)。如果它靠近相机,Y会很低(让我们说-20)。我所希望的是,我只能说0是地板,并且很容易知道脚在空中何时在地上。当脚被接地时,是否有任何想法可以正确判断?(到目前为止,我能想到的一切至少有一个会导致游戏玩法被破坏的例外)
编辑:使用点到平面方程,但无论我做什么,基于我与相机的接近程度,到地板的距离总是不同的。
答案 0 :(得分:0)
一种可能性是将它与另一只脚进行比较......如果一只高于另一只脚,很可能它们站在另一只脚上。如果你想要探测跳跃,你应该能够找到双脚y位置的突然变化。
还有地板剪切平面,但这涉及到我所看到的更复杂的数学。查看Kinect programming guide,这是超级旧的,但我认为这仍然是相关的。 “地板测定”部分就是你所追求的。