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

Sac*_*hin 1 augmented-reality ios scenekit swift arkit

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

谢谢

https://youtu.be/OS_kScr0XkQ

Cla*_*lay 9

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

        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)
Run Code Online (Sandbox Code Playgroud)

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

node2animate.removeAllActions()
Run Code Online (Sandbox Code Playgroud)

最后一部分掉到地板上,node2animate可能是一个physicsBody,然后点击了gravity属性

node2animate.physicsBody?.isAffectedByGravity = false
Run Code Online (Sandbox Code Playgroud)

点击后,您将其设置为true

node2animate.physicsBody?.isAffectedByGravity = true
Run Code Online (Sandbox Code Playgroud)

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