所以我正在与ARKit合作,尝试学习一些基础知识,我想知道是否有可能使ARKit中的3d对象跟随用户。因此,例如,如果我站在物体的前面,并且在一定距离后我开始从物体上走开,物体就会向用户行走/滑行。我还希望能够在太空中移动该物体,所以如果它在我面前,我可以绕着该物体做一个完整的圆圈,然后从所有天使的角度来看它。
任何对文章或示例ARKit项目的引用将不胜感激!
答案 0 :(得分:2)
ARKit当前基于将对象粘贴到平面(水平和垂直)上。当物体中的物体像大多数真实物体一样固定在空间中时,“真实”组件就会启动。
尽管如此,我还是看到了您要达到的目标-很酷。
在幕后,ARKit可能将所有东西都放置在3轴平面(x,y,z)上,并根据这3轴跟踪用户到物体的距离。如果您可以点击该按钮并更改对象的z值,则可以模拟出追随用户的感觉。
虽然我也不是超级职业选手!
更新:
我对此进行了更多研究。实现您要寻找的结果的一种可能方法是将ARSession配置设置为AROrientationTrackingConfiguration而不是默认的ARWorldTrackingConfiguration。这将使对象能够在x,y,z轴上自由旋转,从而使您可以绕着它行走,照明等,但不能移动,给人一种跟随用户的错觉,因为它在手机中的大小保持不变。这可能会更容易。
答案 1 :(得分:1)
用户的位置对应于相机的位置。可以使用ARSCNView
的{{3}}属性来检索。
要使某个对象始终跟随用户,您可以将该对象添加为该视图的子对象。
如果在这种情况下将对象作为父对象确实没有意义,并且您希望使用不同的节点层次结构,则仍然可以使用pointOfView
之类的转换工具在委托回调中更新对象的转换