SceneKit – DAE 文件格式的动画
SceneKit – Animation with DAE file format
我正在尝试在 SceneKit 场景中为我的模型制作动画:
- 创建一个简单的立方体模型并将其导出到
cube.dae
- 为立方体创建一个简单的骨架并使用骨骼制作一个简单的旋转动画并将其导出到animation.dae
- 使用 Apple 示例 Fox 演示 (WWDC 2015),我尝试将模型放在场景中并且它有效
- 动画框旋转——它正在工作,但在应用动画后,立方体将其位置更改为 (0,0,0)
也许有人使用其他 3d 工具(Maya、Blender、3D Max)成功制作了骨骼动画和 SceneKit?
将 .dae 转换为 .scn I select DAE 文件,然后在 Xcode "editor" --> "convert to scenekit scene format"
link to archive with models and animations.
代码:
初始化模型节点
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
这是我的错误,我需要在初始模型中保存装备。以前我只为动画保存装备。现在动画效果很好。
我正在尝试在 SceneKit 场景中为我的模型制作动画:
- 创建一个简单的立方体模型并将其导出到
cube.dae
- 为立方体创建一个简单的骨架并使用骨骼制作一个简单的旋转动画并将其导出到animation.dae
- 使用 Apple 示例 Fox 演示 (WWDC 2015),我尝试将模型放在场景中并且它有效
- 动画框旋转——它正在工作,但在应用动画后,立方体将其位置更改为 (0,0,0)
也许有人使用其他 3d 工具(Maya、Blender、3D Max)成功制作了骨骼动画和 SceneKit?
将 .dae 转换为 .scn I select DAE 文件,然后在 Xcode "editor" --> "convert to scenekit scene format"
link to archive with models and animations.
代码: 初始化模型节点
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
这是我的错误,我需要在初始模型中保存装备。以前我只为动画保存装备。现在动画效果很好。