我正在尝试相对于面部移动节点,因此如果用户面部向右移动,菱形应该向右移动完全相同的 x。我使用 ARFaceTrackingConfiguration 完美地完成了它。但是,如果 iPhone 与面部之间的距离很大,则渲染器委托(delegate)方法将不再触发。
所以我猜 ARFaceTrackingConfiguration 不适合远距离使用,因为它使用显然不支持的深度传感器。
所以我的问题是,ARKit 是否支持添加相对于物理对象的节点,当这个对象移动时,它会用这个对象的位置更新我,以便我可以更新节点?
最佳答案
你似乎已经回答了你自己的问题。
是的,使用 ARKit(以及您选择的场景图/渲染器 API,例如 SceneKit),您可以放置虚拟内容,使其随跟踪的面部一起移动。在 ARSCNView
中,您需要做的就是将该内容分配为您从 renderer(_:didAdd:for:)
获得的节点的子节点——SceneKit 会自动处理每当 ARKit 报告面部已移动时移动节点。
如果 ARKit 无法跟踪人脸,因为它超出了 TrueDepth 相机的可用范围……那么它就不会跟踪人脸。 (欢迎来到 tautology club。)这意味着它不知道脸部在哪里,无法告诉您脸部如何移动,因此无法自动移动虚拟内容以跟随脸部。
关于ios - ARKIT 根据物理对象改变节点位置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50043196/