无法从.scn文件加载ARKit中的动画

时间:2017-10-17 08:59:49

标签: ios animation scenekit arkit caanimation

我使用以下代码加载.scn文件中包含的模型(包括一个动画):

// Recursively load all scene's nodes
let scene =  try! SCNScene(url: sceneFileURL, options: nil)
self.modelNode = SCNNode()
let nodeArray = scene.rootNode.childNodes
for childNode in nodeArray {
    self.modelNode?.addChildNode(childNode as SCNNode)
}

我试图在应用的其他部分加载动画。我首先创建sceneSource对象

self.sceneSource = SCNSceneSource(url: sceneFileURL, options: [SCNSceneSource.LoadingOption.animationImportPolicy : SCNSceneSource.AnimationImportPolicy.playRepeatedly])

然后我寻找动画

for child in modelNode.childNodes {
   for key in child.animationKeys {
       print("add animation:\(key)")
       let animation = self.sceneSource?.entryWithIdentifier(key, withClass: CAAnimation.self)
       //child.addAnimation(animation!, forKey: key)
       animation?.repeatCount = 10
       sceneView.scene.rootNode.addAnimation(animation!, forKey: key)
                }
} 

一些调试信息:

1)循环可以正确找到动画键(它被打印)

2)SceneSource已正确初始化

问题entryWithIdentifier返回nil,因此无法加载动画

注意:如果我使用addAnimation:ForKey(目前已弃用,我会避免使用它)我得到一个动画对象,但一旦添加到子注释中,它对渲染的模型没有影响ARKit。

可在此处使用的模型https://files.fm/u/n7khpy58

0 个答案:

没有答案