在ARKit中为3D模型添加动画

时间:2018-02-03 12:01:28

标签: ios swift scenekit augmented-reality arkit

在此视频中,一个对象被赋予一个动画,在放置时将其悬停在房间周围,然后在点击时,它会被另一个动画放下。 如何在我的项目中添加这种动画? 添加已经动画的对象是唯一的方法吗?

谢谢

https://youtu.be/OS_kScr0XkQ

1 个答案:

答案 0 :(得分:7)

我认为上下盘旋很可能是一个动画序列。悬停效果的以下动画序列将在第一个下拉选择功能中起作用。

        let moveDown = SCNAction.move(by: SCNVector3(0, -0.1, 0), duration: 1)
        let moveUp = SCNAction.move(by: SCNVector3(0,0.1,0), duration: 1)
        let waitAction = SCNAction.wait(duration: 0.25)
        let hoverSequence = SCNAction.sequence([moveUp,waitAction,moveDown])
        let loopSequence = SCNAction.repeatForever(hoverSequence)
        node2Animate.runAction(loopSequence)

        self.sceneView.scene.rootNode.addChildNode(node2Animate)

点击节点时停止动画的第二部分,将其置于点击手势功能中。

node2animate.removeAllActions()

最后一部分掉到地上,node2animate可能是一个physicsBody,在点击重力属性之前

node2animate.physicsBody?.isAffectedByGravity = false
点按后

将其设置为true

node2animate.physicsBody?.isAffectedByGravity = true

还有其他事情正在发生,与地板的碰撞也已设定等。