iOS ARKit - 沿路径移动对象

时间:2018-02-06 23:18:21

标签: ios swift augmented-reality arkit

我正在尝试使用ARKit移动工具弹跳球。我希望球从屏幕的一端弹出并移出屏幕。

有人可以推荐最佳方法或指向示例代码来实现这个吗?

我可以使用UIBezierPath创建路径并沿路径移动SCNNode。如果是,我该如何沿路径移动节点。

2 个答案:

答案 0 :(得分:0)

创建一个场景和一个球节点。对球节点使用力方向,并使用Physics为球节点设置动画。这只是一个例子。

    // Create a new scene
    guard let scene = SCNScene(named: "BouncingBalls.scn", inDirectory: "art.scnassets") else { return }
    sceneView.scene = scene

    // Add physics bodies
    guard let ballsNode = scene.rootNode.childNode(withName: "balls", recursively: true) else { return }
    let forceDirection = SCNVector3Make(0, 3, 0)
    for ballNode in ballsNode.childNodes {
        let physicsBody = SCNPhysicsBody(type: .dynamic, shape: nil)
        physicsBody.applyForce(forceDirection, asImpulse: true)
        ballNode.physicsBody = physicsBody
    }

在View didLoad中尝试此操作。希望这有效。

答案 1 :(得分:0)

  

获得所需内容的最佳方法是使用在3D应用程序(如Autodesk Maya,Autodesk 3dsMax或Maxon Cinema4D)中制作的 predefined animation or dynamics

制作完球形动画(或动态效果,取决于您)后,您需要烘焙此动画( 烘焙 是每个关键帧生成过程帧,而不使用插值曲线),然后将此场景导出为.dae文件格式。 ARKit / SceneKit不仅支持.dae动画,而且还支持全新格式.usdz

SceneKit API(以及其他Apple框架的API)不适用于3D动画

相关问题