Swift 在AR对象上检测手指?
我正在尝试创建一个移动AR应用程序,在平面上创建一个虚拟钢琴键盘,并能够用手指弹奏键盘 1) 实现这一点最简单的方法是什么?(如Vuforia、ARKit) 2) 能不能让我的手指在钢琴键盘前而不是键盘后 非常感谢您事先的帮助 使用遮挡时要选择什么框架: ARKit和Vuforia两个框架都支持Swift 在AR对象上检测手指?,swift,unity3d,augmented-reality,arkit,vuforia,Swift,Unity3d,Augmented Reality,Arkit,Vuforia,我正在尝试创建一个移动AR应用程序,在平面上创建一个虚拟钢琴键盘,并能够用手指弹奏键盘 1) 实现这一点最简单的方法是什么?(如Vuforia、ARKit) 2) 能不能让我的手指在钢琴键盘前而不是键盘后 非常感谢您事先的帮助 使用遮挡时要选择什么框架: ARKit和Vuforia两个框架都支持遮挡功能,但目前还不支持。对我来说,在AR应用程序中实现遮挡的最简单方法是在Xcode中使用ARKit。如果您喜欢Unity中的Vuforia及其UI设置,也欢迎您 如何在ARKit和Vuforia中使用
遮挡
功能,但目前还不支持。对我来说,在AR应用程序中实现遮挡的最简单方法是在Xcode中使用ARKit。如果您喜欢Unity中的Vuforia及其UI设置,也欢迎您
如何在ARKit和Vuforia中使用遮挡:
要在真实对象上合成手部/手指
,必须在ARKit中使用功能,或在Vuforia中使用
使用frameSemantics
实例属性在ARKit中激活深度通道合成非常容易(但请记住,它仅在iOS 13中A12/A13 CPU上工作):
如果您想了解如何在演示圆柱形对象用法以及遮挡效果的Unity
/Vuforia
中启用遮挡管理
如何实现触控:
要进行触摸(当真实手指触摸AR钢琴键时),必须执行碰撞。你必须激活图像检测
AI功能来检测指甲的位置,然后在那里放置一个锚,并在锚上拴一个小的不可见球体。你需要以每秒60帧的速度不断更新锚点的位置。然后为钢琴键创建一个碰撞形状,并为该球体创建第二个碰撞形状。然后让它们碰撞。如果您使用ARKit进行开发,请使用SceneKit框架来实现冲突事件。如果您正在使用Vuforia进行开发,请使用官方文档了解如何进行开发
let session = ARSession()
if let config = session.configuration as? ARWorldTrackingConfiguration {
config.frameSemantics.insert(.personSegmentationWithDepth)
session.run(config)
}