我正试图找到一种方法,使用Final IK将Kinect关节链接到Unity中角色的身体部位。
现在,所有的关节都与身体部位正确连接(我可以移动并且移动重复到角色),但似乎关节之间的比例(由Kinect发送)比身体部位的比例。例如,当Kinect检测到我的身体时,角色似乎会自行崩溃。当我移动时,会检测到移动,但与角色的身体相比,它确实很小。
有没有办法同步这两个尺度?
非常感谢!
答案 0 :(得分:1)
我终于找到了这样做的方法并且效果很好。我会尽量保持这个简单。
我遇到的主要问题是从Kinect Joints获得一个适用于我的角色大小的比例值。
为了解决这个问题,我添加了一种执行以下操作的校准方法:
起初我遇到了一个小问题,但最终解决了这个问题。由Kinect在Unity中返回的Vector3的值与Kinect的原点(相机)相关。在那里,我不得不使用一些线性代数来解决这个问题。由于Vector3(左手和左肩)都是相对于Kinect的原点,我不得不减去它们以找到左臂长度。
由于线性代数,我们知道A + C = B,因此,我们可以说B - A = C.在我们的例子中,LeftHand - LeftShoulder =左臂。通过将此原理应用于kinect接收的Vector3,我们现在具有代表左臂的向量。我们需要做的就是获得“幅度”属性,我们现在有它的长度。
这几乎总结了它。