ARKit和Unity - 如何通过摄像机中的真实世界对象检测到击中AR对象的行为?

时间:2017-09-18 01:02:04

标签: ios iphone xcode unity3d arkit

想想现实生活中有人挥手并击中AR中的3D物体,我该如何检测?我基本上想知道什么东西越过AR对象,所以我可以知道某些东西" hit"它并做出反应。

另一个例子是将一个虚拟瓶子放在桌子上,然后在空气中挥动你的手,然后将它撞倒。

可以这样做吗?如果是这样的话?我更喜欢团结帮助,但如果这只能通过Xcode和ARKit本身完成,我也会对此持开放态度。

2 个答案:

答案 0 :(得分:1)

ARKit 确实解决了AR的大量问题,并使它们变得轻而易举。你的问题不是其中之一。

正如@Draco18s所指出的那样(并且强调了xkcd链接),您可能无意中进入了毛茸茸的计算机视觉问题领域。但是,您可以使用一些构建块:ARKit为每个视频帧提供像素缓冲区,以及您需要的投影矩阵,以便计算出虚拟水瓶覆盖2D图像的哪个部分。

决定何时敲打水瓶是分析图像区域中随时间的帧到帧差异的问题。 (并跟踪该区域相对于整个摄像机图像的移动,因为用户可能不会完全按住设备。)所需的分析量取决于您想要的效果的复杂程度。一个简单的像素差异可能起作用(对于某些值" work"),或者可能有现有的机器学习模型,你可以将它们与Vision和Core ML放在一起......

答案 1 :(得分:0)

你应该看看ManoMotion:https://www.manomotion.com/ 他们正在研究这个问题,并希望尽快以库的形式发布解决方案。