在iPhone中显示OpenGL动画的最佳流程

时间:2011-04-14 18:58:42

标签: iphone opengl-es blender maya oolong-engine

我遇到的问题是能够将Maya中的骨骼和骨骼动画导入到Blender中。这就是我所做的:

  1. 安装ColladaMaya插件以导出DAE以便Blender导出
  2. 使用J eff LeMarche's script能够导出模型的单个关键帧并将此.h文件导入iPhone游戏
  3. 使用Jeff LeMarche的更多步骤设置GLView并将其渲染到我们的游戏中,因此该模型显示在实际游戏旁边(不是3D)。
  4. 已研究oolongnginesio2(已申请但尚未收到电子邮件),其他SO q's已提供解决方案,包括我的game dev
  5. 使用FBX SDK内容管道审核动态生成动画的类文件。
  6. 我可以导入模型并显示它。许多这些进程都会响应该问题,并让开发人员以编程方式操作游戏对象。 我的主要问题是找到在现有游戏旁边将动画导入iphone的最佳定义过程?我不需要整个游戏或整个场景,只需要一个动画模型和一些步骤。

    此动画用于循环播放。还有3种动画可以在不同的游戏状态下运行(好动,坏动等)。所以我担心LeMarche的关键帧解决方案(基本上意味着将每个关键帧导出为.h文件)将是非常耗费时间和内存密集的。我绝对愿意这样做,但经过我所做的所有研究(不包括其他链接)之后,除了手动导出每个关键帧并导入它们之外,我很遗憾下一步该去哪里。

    修改

    我为这些人添加了一笔赏金,可以为我提供一个明确定义的流程,用于将动画从3D应用程序导入到iPhone中。不是整个应用程序本身(即Unity,Sio2等),而只是在应用程序中显示3D叠加层(就像宝石迷阵游戏旁边的动画模型,不与世界互动。)

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

5 个答案:

答案 0 :(得分:3)

这对动画导出来说确实是个大问题。我最近遇到了这个问题,结果是Assimp

但是,从Maya和Blender导出的骨架动画也存在问题。至于我,我更喜欢3Ds Max(不要忘记在装配前重置Xform),它对Collada和动画没有任何问题。

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

答案 1 :(得分:2)

我真的不是openGL的专家,但我知道有关Cocos3D的持续倡议(支持与Cocos2D框架集成的OpenGL)也许你会在这里找到一些有用的信息: http://brenwill.com/2011/cocos3d-importing-converting-collada-to-pod/

主页: http://brenwill.com/cocos3d/

答案 2 :(得分:1)

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

另一个选项是使用像OgreKit这样的库,它可以读取混合文件并为您开箱即用。

答案 3 :(得分:1)

查看Molecules源代码。

更新: This link may seem unrelated,但它包含图书iPhone 3D Programming的源代码,本文中引用的示例包含动画可能对您有用的3D内容的动画和技术。此处包含AaLines的来源。

答案 4 :(得分: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上运行,但我会很快使用乌龙引擎移植它。

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