首页 文章

SceneKit - 具有 DAE 文件格式的动画

提问于
浏览
3

我正在尝试在 SceneKit 场景上为我的模型制作动画:

  • 创建一个简单的立方体模型并将其导出到cube.dae

  • 为立方体创建一个简单的骨架,并使用骨骼制作一个简单的旋转动画并将其导出到 animation.dae

  • 使用 Apple 样本 Fox 演示(WWDC 2015),我试图将模型放在场景上并且它有效

  • 动画框旋转 - 它正在工作但在应用动画后,立方体将其位置更改为(0,0,0)

也许有人使用另一个 3D 工具(Maya,Blender,3D Max)成功实现了骨骼动画和 SceneKit?

将.dae 转换为.scn 我选择 DAE 文件,然后在 Xcode“编辑器” - >“转换为 scenekit 场景格式”

链接到存档模型和动画.

代码:init 模型节点

let characterScene = SCNScene(named: "game.scnassets/cube.scn")!
let characterTopLevelNode = characterScene.rootNode.childNodes[0]
characterNode.addChildNode(characterTopLevelNode)
let idleAnimation = CAAnimation.animationWithSceneNamed("game.scnassets/cubeWithMeshSkeletonAnimation.scn")!
idleAnimation.usesSceneTimeBase = false
idleAnimation.repeatCount = Float.infinity
characterNode.addAnimation(idleAnimation, forKey: "idle")

在场景上添加模型

let scene = SCNScene(named: "game.scnassets/Level1.scn")!
gameView.scene = scene
gameView.playing = true
gameView.loops = true
scene.rootNode.addChildNode(unrealCharacter.characterNode)
let startPosition = scene.rootNode.childNodeWithName("startingPoint", recursively: true)!
unrealCharacter.characterNode.transform = startPosition.transform

1 回答

  • 1

    这是我的错,我需要在初始模型中保存装备。以前我只为动画保存装备。现在动画效果很好。

相关问题