SceneKit 动画问题
SceneKit animation issue
我无法让 SceneKit 中的动画正常工作。我想在 3D 中构建一个漂亮的游戏,但我被一个非常简单和基本的东西困住了,比如动画:-(
我看过 WWDC 2015 session 606,印象非常深刻,并开始使用 Fox 项目 (https://developer.apple.com/library/ios/samplecode/Fox/Introduction/Intro.html) 中的示例代码构建我的游戏。
我完成的步骤:
- 在 3d 工具 (Cheetah 3d) 中创建了一个立方体并将其导出到 cube.dae
- 为立方体创建骨骼动画(只是一个简单的旋转)并在 cubeAnimation.dae
中仅导出没有网格的骨骼
- 将cube.dae和cubeAnimation.dae复制到Xcode项目中并在cube.scn和cubeAnimation.scn
中转换它们
- 使用 Apple 示例代码(来自 WWDC 2015 session 606 的 Fox 项目)在场景中添加 cube.scn
5.使用 Apple 示例代码(来自 WWDC 2015 session 606 的 Fox 项目)将 cubeAnimation.scn 动画添加到 cube.scn
- build 和 运行 项目 ––> cube.scn 正在旋转但 cube.scn 将其初始位置重置为 cubeAnimation.scn
中的位置
考虑到我的 3d 工具 (Cheetah 3d) 在 Collada 中导出存在一些问题,我尝试使用其他开发人员创建的模型,但结果是一样的。我曾尝试使用 Autodesk Maya 导出动画,但结果是一样的。我什至尝试使用 Unreal Engine 示例 (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 导出设置可以使动画正常工作?
如果cubeAnimation.scn中的动画是矩阵动画,那么预计这个动画控制位置、旋转和缩放。如果关键帧包含旋转(欧拉角、轴角或四元数),那么它将旋转 busy 而不重置其位置。
所以这取决于导出器如何导出动画。 (例如,我知道 3dsmax 可以导出单个动画以进行平移/旋转/缩放,直到您明确要求 "bake transforms")。
解决方法是让骨架在 cubeAnimation.scn 中以 0,0,0 为中心,并使用中间节点在 cube.scn
中移动立方体
这似乎是我的错误,我在导出到 .dae 时没有在初始模型中包含钻机。我只在动画模型中包含绑定。
我无法让 SceneKit 中的动画正常工作。我想在 3D 中构建一个漂亮的游戏,但我被一个非常简单和基本的东西困住了,比如动画:-(
我看过 WWDC 2015 session 606,印象非常深刻,并开始使用 Fox 项目 (https://developer.apple.com/library/ios/samplecode/Fox/Introduction/Intro.html) 中的示例代码构建我的游戏。
我完成的步骤:
- 在 3d 工具 (Cheetah 3d) 中创建了一个立方体并将其导出到 cube.dae
- 为立方体创建骨骼动画(只是一个简单的旋转)并在 cubeAnimation.dae 中仅导出没有网格的骨骼
- 将cube.dae和cubeAnimation.dae复制到Xcode项目中并在cube.scn和cubeAnimation.scn 中转换它们
- 使用 Apple 示例代码(来自 WWDC 2015 session 606 的 Fox 项目)在场景中添加 cube.scn 5.使用 Apple 示例代码(来自 WWDC 2015 session 606 的 Fox 项目)将 cubeAnimation.scn 动画添加到 cube.scn
- build 和 运行 项目 ––> cube.scn 正在旋转但 cube.scn 将其初始位置重置为 cubeAnimation.scn 中的位置
考虑到我的 3d 工具 (Cheetah 3d) 在 Collada 中导出存在一些问题,我尝试使用其他开发人员创建的模型,但结果是一样的。我曾尝试使用 Autodesk Maya 导出动画,但结果是一样的。我什至尝试使用 Unreal Engine 示例 (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 导出设置可以使动画正常工作?
如果cubeAnimation.scn中的动画是矩阵动画,那么预计这个动画控制位置、旋转和缩放。如果关键帧包含旋转(欧拉角、轴角或四元数),那么它将旋转 busy 而不重置其位置。
所以这取决于导出器如何导出动画。 (例如,我知道 3dsmax 可以导出单个动画以进行平移/旋转/缩放,直到您明确要求 "bake transforms")。
解决方法是让骨架在 cubeAnimation.scn 中以 0,0,0 为中心,并使用中间节点在 cube.scn
中移动立方体这似乎是我的错误,我在导出到 .dae 时没有在初始模型中包含钻机。我只在动画模型中包含绑定。