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


创建一个简单的多维数据集模型并将其导出到cube.dae

创建一个简单的多维数据集骨架使用骨骼制作一个简单的旋转动画并将其导出到animation.dae
使用Apple示例Fox演示(WWDC 2015),我试图将模型放到场景中并且可以运行
动画盒旋转–可以,但是应用动画后,多维数据集将其位置更改为(0,0,0)

也许有人使用其他3d工具(Maya,Blender,3D Max)成功完成了骨骼动画和SceneKit吗?

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

链接到包含模型和动画的存档。 br />
代码:
初始化模型节点

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


评论

您可以将Cheetah3D文件放置并导出结果到我们可以看到的位置,然后发布您用于加载/播放的代码吗?

当然,我可以编辑我的文章,并添加链接到包含模型和动画的存档,并放置一些代码

我不确定您的问题。您能否详细说明您想做什么(预期的行为)以及出了什么问题?还有什么是unrealCharacter,它与多维数据集有什么关系?

好吧,我会尽力解释。我想要和期望的是.dae动画的预期效果。我想要一个简单的东西–使用.dae文件制作动画模型,就像苹果示例代码中那样。 unrealCharacter.characterNode是一个SCNNode。存档包含模型(多维数据集和人体模型)以及要测试的动画。唯一出乎意料的是,在将动画应用于SCNNode之后,它会更改其位置。

您能否看一下我的问题,我正在尝试模仿您在这里所做的事情stackoverflow.com/questions/46209555 / ...

#1 楼

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