Java 是否可以修改OSCeleton发送丢失用户事件/消息的时间?

Java 是否可以修改OSCeleton发送丢失用户事件/消息的时间?,java,processing,osc,Java,Processing,Osc,我在玩,成功地追踪了骷髅并做了一些事情 我想知道的是,是否有任何方法可以更改“丢失用户”消息发送到处理的延迟时间。 这对于我想要实现的目标来说需要很长时间,因为我需要在一个用户离开屏幕时停止跟踪他,这样我才能接受另一个用户的交互。(想象一个有很多人想玩的装置) 任何帮助/提示都将不胜感激 Jon据我从OSCeleton的源代码以及我对kinect的最低经验(我从未使用过OSCeleton)所知,没有办法修改代码来实现这一点。这似乎是一件被司机或kinect自己处理得更低的事情(?) 然而,你不必

我在玩,成功地追踪了骷髅并做了一些事情

我想知道的是,是否有任何方法可以更改“丢失用户”消息发送到处理的延迟时间。 这对于我想要实现的目标来说需要很长时间,因为我需要在一个用户离开屏幕时停止跟踪他,这样我才能接受另一个用户的交互。(想象一个有很多人想玩的装置)

任何帮助/提示都将不胜感激


Jon

据我从OSCeleton的源代码以及我对kinect的最低经验(我从未使用过OSCeleton)所知,没有办法修改代码来实现这一点。这似乎是一件被司机或kinect自己处理得更低的事情(?)

然而,你不必拘泥于此,如果我理解得当,我会建议一些绕过这个问题的方法

首先,最新的驱动程序和示例应该具有多用户支持,这意味着您可以安排谁是您的主要用户。从我可以从源代码中看出,当检测到新用户时,您确实会在处理过程中收到osc消息以及ID号。您可以将到达的每个新用户放入arrayList中,并找出一种不依赖于最新用户的方法

但是,如果您仍然在一个接一个地寻找用户,或者我对多用户支持的认识有误(自述文件中没有提到),您可以检查自己是否有用户离开了该区域。虽然您无法得到这样的最终答案,但您可以检查,例如,用户的特定关节或所有关节是否在最近收到的10-20条osc消息中移动。这可能意味着将该关节的位置存储在一个10-20个项目的数组中,并不断更新,同时检查项目是否不同。如果数组中的所有项都相同,则表示用户没有移动一点,因此可能不应将其考虑在内

最后但并非最不重要的一点是,您可以切换到其他解决方案。大约一年前我用的那个是“”,现在看起来也过时了。您可以使用的最新处理库是一个名为的处理库,它具有多用户跟踪功能,您不需要运行任何中间程序来提供关节


我希望这有帮助

嗨,Petros,谢谢你的回复。我快速查看了源代码,但由于我是C语言的新手,找不到方法,可能这种行为是由OPENNI驱动程序处理的。关于你的建议:是的,我确实做了一些。我做了一个骨架对象,它接收OSC数据。我把它们放在arrayList中,据我所知,它运行得相当好。当OSC消息在一定时间内收到时,SKEL也会保持“活动”(绘制)。我还一次测试了4个用户。问题是:OSCeleton一次支持4个骨架(我读到可能是6个),因此如果屏幕上有4个骨架,其中一个(或更多)离开屏幕,有时发送“lost_user”(丢失用户)消息需要很长时间。当这种情况发生时,如果有另一个新用户尝试交互,它可能在该消息触发之前无法识别他。我想在一个可能有多个用户等待与之交互的安装中。我想我会想出办法的。。。已经发布在osceleton谷歌集团上,但还没有发布。干杯