12

我在将骨骼和骨骼动画从 Maya 导入到 Blender 到 iPhone 时遇到问题。这是我所做的:

  1. 安装ColladaMaya插件以导出 DAE 供 Blender 导出
  2. 使用Jeff LeMarche 的脚本能够导出模型的单个关键帧并将这个 .h 文件导入 iPhone 游戏
  3. 使用更多 Jeff LeMarche 的步骤设置 GLView 并渲染到我们的游戏中,因此该模型显示在实际游戏旁边(不是 3D 格式)。
  4. 研究了 oolongnginesio2(已申请但尚未收到他们的电子邮件),其他SO q 的解决方案,包括我的来自游戏开发
  5. 使用FBX SDK内容管道为动画动态生成类文件进行了审查。

我可以导入模型并显示它。很多这样的过程都会响应这个问题,让开发人员以编程方式操作游戏对象。我的主要问题是在现有游戏旁边找到将动画导入 iphone 的最佳、明确的过程?我不需要整个游戏或整个场景,只需要一个动画模型和一些步骤即可。

此动画旨在循环播放。还有 3 个动画将在不同的游戏状态下播放(好棋、坏棋等)。所以我担心 LeMarche 的关键帧解决方案(基本上意味着将每个关键帧导出为 .h 文件)将非常耗时且占用大量内存。我绝对愿意这样做,但是在我完成所有研究之后(不包括其他链接),除了手动导出每个关键帧并导入它们之外,我不知道下一步该去哪里。

编辑:

对于任何可以给我一个明确定义的将动画从 3D 应用程序导入 iPhone 的过程的人,我已经为此添加了一个赏金。不是整个应用程序本身(即 Unity、Sio2 等),而只是在应用程序中显示 3D 叠加层(例如在宝石类游戏旁边的动画模型,不与世界交互。)

人们一直在说,“创建自己的模型加载器”。是否有脚本、示例、教程,以及从 3D 应用程序(最好是 Maya 或 Blender)导出并导入此动画并在 Objective-C 中渲染它的“模型加载器”过程的任何内容?

4

3 回答 3

3

这确实是动画导出的一个大问题。我最近遇到了这个问题,最后得到了Assimp

但是,从 Maya 和 Blender 导出的骨骼动画也存在问题。至于我,我更喜欢 3Ds Max(不要忘记在绑定之前重置 Xform),它在 Collada 和动画方面没有问题。

不过,如果您想在游戏中使用这些模型,我建议您为 Maya 或 Blender 编写自定义导出器。还可以尝试网格(变形)动画。如果您不使用逆运动学或类似的东西,这就是您所需要的。

于 2011-04-16T22:00:11.353 回答
1

我编写了读取 Blender 文件并解析网格、骨骼和动画数据的代码。然后它将骨骼动画应用于网格世界变换等。这是很多工作,但肯定是可行的。如果您对 Blender 特性有任何疑问,请问我。

另一种选择是使用像 OgreKit 这样的库,它可以读取混合文件并为您制作开箱即用的骨骼动画。

于 2011-04-18T21:52:00.923 回答
1

AnimKit 是一个小型动画库,可以读取 .blend 文件并使用 Glut 播放动画。它从 Blender 2.5 .blend 文件中提取骨骼动画等的所有数据,包括骨骼、网格和动画通道等。

AnimKit 是开源的(使用许可的 zlib 许可证),您可以使用 Subversion 来查看它:

svn co http://code.google.com/p/gamekit/source/browse/#svn%2Fbranches%2FAnimKit AnimKit

AnimKit 还没有在 iPhone 上运行,但我会尽快移植它,使用 Oolong 引擎。

另一个有趣的资源是 Proton SDK (protonsdk.com),它有一个定制的 Irrlicht SDK,可以在 iPhone/Android 等设备上运行。RT3DApp 示例可以播放动画。

于 2011-07-12T05:31:59.070 回答