SceneKit动画问题

时间:2015-12-27 12:22:25

标签: animation scenekit collada

我无法在SceneKit中获得正确的动画效果。我想在3D中构建一个漂亮的游戏,但我遇到了一个非常简单和基本的东西,比如动画: - (

我看到了WWDC 2015会话606并且给我留下了深刻印象,并开始使用Fox项目(https://developer.apple.com/library/ios/samplecode/Fox/Introduction/Intro.html)中的示例代码构建我的游戏。

我做过的步骤:

  1. 在3d工具(Cheetah 3d)中创建了一个立方体,并将其导出为cube.dae
  2. 为立方体创建骨架动画(只是一个简单的旋转),只导出cubeAnimation.dae中没有网格的骨架
  3. 将cube.dae和cubeAnimation.dae复制到Xcode项目中并将其转换为cube.scn和cubeAnimation.scn
  4. 使用Apple示例代码(来自WWDC 2015会话606的Fox项目)在场景上添加cube.scn 5.使用Apple示例代码(来自WWDC 2015会话606的Fox项目)将cubeAnimation.scn动画添加到cube.scn
  5. 构建并运行项目 - > cube.scn正在旋转但是cube.scn将它的初始位置重置为cubeAnimation.scn中的一个
  6. 认为我的3D工具(Cheetah 3d)在Collada中导出了一些问题,我试图使用其他开发人员创建的模型,但结果是一样的。我试图使用Autodesk Maya导出动画,但结果是一样的。我甚至尝试使用虚幻引擎示例中的模型(https://wiki.unrealengine.com/File:ThirdPerson_FBX.zip),但结果是一样的。

    我把Xcode项目源放在https://www.dropbox.com/s/8vtmem4jqnetmwd/XcodeProject.zip?dl=0 我在这里放置模型和动画来源https://www.dropbox.com/s/qkkbfhk7wrz4r4z/ModelsAndAnimations.zip?dl=0

    也许有一些特殊的Collada导出设置可以使动画正常工作?

2 个答案:

答案 0 :(得分:2)

如果cubeAnimation.scn中的动画为矩阵设置动画,那么预计此动画将控制位置,旋转和缩放。如果关键帧包含旋转(欧拉角,轴角或四元数),那么它将旋转忙而不重置其位置。

所以这取决于导出器导出动画的方式。 (例如,我知道3dsmax可以导出单个动画进行平移/旋转/缩放,直到您明确要求“烘焙变换”)。

解决方法是让您的骨架在cubeAnimation.scn中以0,0,0为中心,并使用中间节点在cube.scn中移动您的多维数据集

答案 1 :(得分:1)

这似乎是我的错误,在导出到.dae时,我没有在初始模型中包含装备。我只在动画模型中包含装备。