ARKit动画不锚定

时间:2018-01-25 19:41:34

标签: swift animation arkit

我有一个简单的跳跃动画,我试图用ARKit在AR中显示。

它通常有效,但我有一些翻译和锚定问题。

This video演示了这个问题。角色随着相机移动,而不是在相机移动时保持锚定。

我对AR,ARKit和动画(我是开发人员)的经验很少,我想知道是否有人可以找出一些可能导致此问题的明显问题。

2 个答案:

答案 0 :(得分:1)

原来我的模型相对于世界空间来说是巨大的 - 就像一公里高,但距离相机还有一公里。所以你可以正常平移,但当然向前和向后移动几米似乎没有效果。

将我的模型缩小到0.1%,一切正常。

答案 1 :(得分:0)

这看起来像是跟踪问题 - 只有在初始化跟踪后才添加模型吗?

func session(_ session: ARSession, didUpdate frame: ARFrame) {

    if let state = self.sceneView.session.currentFrame?.camera.trackingState {
        switch(state) {
        case .normal:

        // tracking is ready - add your model now.

        case .notAvailable:
            break
        case .limited(let _):
            break
        }
    }
}

尝试使用

self.sceneView.debugOptions = [ARSCNDebugOptions.showFeaturePoints, ARSCNDebugOptions.showWorldOrigin]

在您的viewWillAppear()方法中。如果你没有看到任何特征点(或者看起来它们看起来不是很好),那么你就知道这就是问题所在。

此外,如果世界起源(多色线)似乎也会移动,那么它肯定是跟踪。

纠正这种情况的唯一方法是使用光线更好且功能更多的光点。并且在放置模型之前还要等待一段时间,以便跟踪更有可能变得稳定。