2017-06-21 67 views
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文件加載骨骼動畫更好的解決方案,請分享... 非常感謝你...

回答