0
我試圖加載骨骼動畫與下面的代碼錯誤發生:SceneKit:在渲染2個SCNNodes與骨骼動畫
let file = Bundle.main.url(forResource: name, withExtension: "dae")
let source = SCNSceneSource(url: file!, options: nil)
let node = SCNNode()
for n in try! (source?.scene(options: nil).rootNode.childNodes)! as [SCNNode] {
node.addChildNode(n)
}
let animationIDs = source?.identifiersOfEntries(withClass: CAAnimation.self)
var animationArray:[CAAnimation] = []
for id in animationIDs!{
let animation = source?.entryWithIdentifier(id, withClass: CAAnimation.self)
animationArray.append(animation!)
}
let animationGroup = CAAnimationGroup()
animationGroup.animations = animationArray
animationGroup.duration = 1000
animationGroup.repeatCount = 1000
animationGroup.beginTime = 0
node.addAnimation(animationGroup, forKey: "Animation")
scene.rootNode.addChildNode(node)
起初,它與主英雄節點成功的作品。骨骼動畫看起來很好。但是,當我創建的敵人的節點,我收到遊戲場景加載後立即出現以下錯誤:
validateFunctionArguments:2665: failed assertion `(length - offset)(10992) must be >= 12304 at buffer binding at index 1 for scn_node[0].'
那麼,有什麼錯呢?看起來我仍然可以加載其他模型而沒有骨架動畫,而且這些動畫仍然可以完美運行。但是這是否意味着SceneKit只允許我們在一個特定的SCNNode上加載骨架動畫?
如果你知道一些事錯誤,請幫我解決這個... 如果您有關於如何從DAE文件加載骨骼動畫更好的解決方案,請分享... 非常感謝你...