官方Kinect SDK和Unity3d

6

有没有人知道如何使用官方SDK在Unity3D中使用Kinect输入?我被分配了一个项目,尝试将这两个集成在一起,但我的上级不想让我使用开放的Kinect工具。最新消息是Kinect SDK需要4.0 .Net,而Unity3D只支持3.5。

有什么解决方法吗?如果您知道相关资源,请指引我。

2个回答

7
OpenNI与Unity的绑定可能是最好的选择。NITE骨架比Microsoft Kinect SDK更稳定,但仍需要校准(PrimeSense提到他们很快就会有无需校准的骨架)。
有从Kinect SDK到OpenNI的绑定,使得Kinect SDK像SensorKinect一样工作,该模块还将KinectSDK无需校准的骨架作为OpenNI模块公开:

https://www.assembla.com/code/kinect-mssdk-openni-bridge/git/nodes/

因为KinectSDK也提供了脚踝和手腕的支持,而OpenNI已经支持了它(尽管NITE不支持),所有包含脚踝和手腕的Unity角色架构都能够正常工作且无需校准。KinectSDK对OpenNI的绑定还支持使用NITE的骨骼和手追踪器,但有一个注意事项,似乎NITE手势检测与Kinect SDK还不兼容。当使用KinectSDK和NITE的handGenerator时,解决方法是使用无骨骼跟踪来提供手指位置。不幸的是,当您的身体对传感器不可见时,您会失去跟踪手的能力。

尽管如此,NITE的骨骼似乎比KinectSDK更稳定和响应更快。


Amir!谢谢。我们已经使用OpenNI-Nite进行了设置,我正在跟随Tomoto Washio的实验模块和Google Groups的邮件列表。很高兴在这里见到你,我们所有的实习生都是你工作的忠实粉丝,假设你就是Unity包装器名声赫赫的Amir。这是一个关于自MS SDK发布以来发展情况的很好的概述。 - Ele Munjeli

4
你需要多少原始Kinect数据?对于一个受限制的问题,比如仅获取肢体关节信息,您是否考虑使用一种类似TcpClient的通用通信模式。只需在.NET 4.0中创建一个简单的TCP服务器,连接到Kinect SDK并每30ms或其他频率输出所需信息的数据包。然后在Unity中编写接收客户端即可。我之前使用不同的SDK也遇到了类似的问题,但我没有尝试过Kinect,所以我的建议可能有点过度设计。
如果您需要实时深度/颜色数据,则可能需要更快的东西,例如使用Pipes

谢谢。这是一个值得研究的好东西。我相信此时我已经说服了我的老板让我们使用OpenNI进行一些开发,但目前我们不需要太多来自Kinect的东西,所以很感谢你的想法。 - Ele Munjeli

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接