我已经能够将Maya中的3D模型导入到OBJ文件中,而OBJ文件又由我的Android应用程序读取。现在可以显示这个模型,我也可以对它们应用变换,即使在高多边形计数对象上也是如此。
下一步是弄清楚是否有任何合理的方式来显示Maya中定义的动画。我真的不知道如何处理这个问题,我对此的初步研究基本上是空洞的。
以前有人试过这个吗?如果是这样,这将如何运作?
答案 0 :(得分:2)
我认为值得注意的是,这个问题与Maya几乎没有任何关系。 Maya的文件格式是专有的和不透明的;你不会找到一种方法直接在Android上显示它们(或其他任何地方,来到那里)。但是您可以将数据从Maya导出到(基本上)任何格式,这就是您实际想要做的事情。
所以,这是过程:
有很多方法可以做第1步。为了便于使用,我可能会自己选择Unity。基本上它的游戏开发工具可以创建在Android(以及iOS,OSX,Windows等)上运行的3D应用程序和游戏。它不是免费的 - Android插件需要400美元 - 但是如果你&#39实际上我正计划用Android做任何严肃的事情,你会发现它值得。有了它,在Unity中制作一个显示动画模型的小型Android应用程序(以及在Unity中制作了大量3D Android和iOS游戏)实际上非常简单。 Unity还需要FBX格式的模型和动画,这是一种广泛支持的交换格式 - 您可以毫不费力地将Maya中的内容转换为FBX。
如果您在步骤1中使用Unity,那么第2步很简单:将Maya中的模型导出为FBX,然后您就完成了。如果你决定推出自己的Android渲染应用程序,祝你好运。 :)
无论如何,重点是你想要做的是找到一个泛型解决方案,用于在Android上渲染动画模型,然后才弄清楚如何从Maya中获取你的内容。
答案 1 :(得分:1)
为什么不将关键帧导出到obj文件,而不是将每个单独的帧输出到单独的obj文件,如magicweenie。在代码中实现插值以填充丢失的帧。如果您的模型很复杂,您可能希望将插值模型缓存在内存中,但至少您不必从文件中加载它们。
答案 2 :(得分:0)
与Cody Hatch的回答不同,我对此也很感兴趣。这是我关于模型动画的理论:
让我们说你的模型有30帧。一种方法是将每个帧导出为单个OBJ模型。从那里,您可以为这30个OBJ创建一个文件夹。所以现在总共有31个文件。如果该人按下按钮,则诀窍是根据按钮(或任何动作)有效的时间长度按顺序加载每个OBJ。如果它持续超过1秒(30帧),则循环回到开头。
这个理论的唯一问题是,如果你试图将很多东西加载到一个场景中,它最有可能是资源和能源密集型,更不用说太空了。