ARKIT根据物理对象更改节点位置

时间:2018-04-26 12:38:05

标签: ios swift arkit

我正在尝试相对于脸部移动节点,因此如果用户脸部向右移动,则钻石形状应该向右移动完全相同的x。我使用 ARFaceTrackingConfiguration 完美地完成了它。但是,如果iPhone和iPhone之间的距离很远渲染器委托方法不再触发的面。

所以我猜ARFaceTrackingConfiguration不适合长距离使用,因为它使用深度传感器,显然不支持它。

所以我的问题是,ARKit是否支持相对于物理对象添加节点,当此对象移动时,它会更新此对象的位置以便我可以更新节点?

1 个答案:

答案 0 :(得分:1)

您似乎回答了自己的问题。

是的,使用ARKit(以及您选择的场景图/渲染器API,例如SceneKit),您可以放置​​虚拟内容,使其随着被跟踪的面移动。在ARSCNView中,您需要做的就是将该内容指定为从renderer(_:didAdd:for:)获得的节点的子节点 - 当ARKit报告面部移动时,SceneKit会自动处理移动节点。

如果ARKit无法跟踪脸部,因为它超出了TrueDepth相机的可用范围......那么它就不会跟踪脸部。 (欢迎使用tautology club。)这意味着它不知道脸部在哪里,无法告诉您脸部是如何移动的,因此无法自动移动虚拟内容以跟随面子。