Scenekit分组动画

时间:2014-12-31 21:25:28

标签: ios animation scenekit

我正在尝试从包含一些动画的一个DAE文件中提取动画。我想分组动画,这样我就可以在时间轴上播放特定的动画。

我正在使用来自WWDC的“皮肤”幻灯片作为参考,但它完全是客观的 - 我认为在尝试快速执行此操作时,翻译中已丢失了一些内容。

我在场景中加载了我的角色但是当我运行此代码时,动画不会运行。怎么回事?

 for animationID in animationsIDs {
            if let animation = sceneSource.entryWithIdentifier(animationID, withClass: CAAnimation.self) as? CAAnimation {
                var maxDuration = max(maxDuration, animation.duration);
                longAnimations.append(animation)
            }

        let longAnimationsGroup = CAAnimationGroup()
        longAnimationsGroup.animations = longAnimations
        longAnimationsGroup.duration = maxDuration


        let idleAnimationGroup :CAAnimationGroup = longAnimationsGroup.copy() as CAAnimationGroup
        idleAnimationGroup.timeOffset = 0.0
      _idleAnimationGroup.animations = [idleAnimationGroup]
        _idleAnimationGroup.duration = 1.0
        _idleAnimationGroup.repeatCount = FLT_MAX
        _idleAnimationGroup.autoreverses = true


        SCNTransaction.begin()

        self._character.addAnimation(_idleAnimationGroup, forKey: "animation")

        SCNTransaction.commit()

1 个答案:

答案 0 :(得分:0)

  1. 您的for循环似乎缺少结束括号。目前,您正在为每个"animation"

  2. 添加(并因此覆盖)包含密钥animationID的动画
  3. _idleAnimationGroup创建的方式和位置?