【问题标题】:Rendering Maya animation on Android?在 Android 上渲染 Maya 动画?
【发布时间】:2011-10-07 17:14:11
【问题描述】:

我已经能够将 3D 模型从 Maya 导入到 OBJ 文件中,而这些文件又可以被我的 Android 应用读取。现在可以显示这个模型,我也可以对它们应用变换,即使是在高多边形数的对象上,这很好。

下一步是确定是否有任何合理的方式来显示 Maya 中定义的动画。我真的不知道如何处理这个问题,我最初对此的研究基本上是空的。

以前有人尝试过吗?如果是这样,这将如何工作?

【问题讨论】:

  • 与问题无关,但我很想了解有关在 Android 中导入和显示 OBJ 文件的更多信息。干杯!
  • 我有一个朋友在 Maya 中做东西,我正在推动他为我制作一些东西.. 这样我将来就可以学习在 android 中使用它们。希望制作一些漂亮的动态壁纸。
  • @MichellBak 在 youtube 上查找“TheCodingUniverse”。他有一个关于通过 OpenGL 将 OBJ 模型加载到 Java 中的教程。他还有一个网站 www.thecodinguniverse.com

标签: android animation maya


【解决方案1】:

我认为值得注意的是,这个问题与 Maya 几乎没有关系。 Maya 的文件格式是专有且不透明的;您将找不到直接在 Android 上显示它们的方法(或其他任何地方,来吧)。但是您可以将数据从 Maya 导出为(基本上)任何格式,这正是您真正想要做的。

那么,流程如下:

  1. 弄清楚您将如何在 Android 上显示 3D 模型和动画
  2. 弄清楚如何将 Maya 中的内容转换为步骤 1 中的答案所需的格式。

有很多方法可以完成第 1 步。为了纯粹的易用性,我自己可能会选择Unity。基本上它是一个游戏开发工具,可以创建在 Android(和 iOS、OSX、Windows 等)上运行的 3D 应用程序和游戏。它不是免费的——Android 插件售价 400 美元——但如果你真的打算用 Android 做任何严肃的事情,你会发现它是值得的。有了它,在 Unity 中制作一个显示动画模型的小 Android 应用程序实际上非常简单(并且很多 3D Android 和 iOS 游戏都是在 Unity 中制作的)。 Unity 还需要 FBX 格式的模型和动画,这是一种广泛支持的交换格式 - 将 Maya 中的内容导入 FBX 不会有任何问题。

如果您在第 1 步中使用了 Unity,那么第 2 步很简单:将您的模型从 Maya 导出为 FBX,然后您就完成了。如果您决定推出自己的 Android 渲染应用程序,那么祝您好运。 :)

无论如何,关键是您要做的是找到一个通用解决方案,用于在 Android 上渲染动画模型,然后才弄清楚如何从 Maya 中获取您的内容。

【讨论】:

    【解决方案2】:

    与其将每个单独的帧输出到单独的 obj 文件(如辣味维尼建议的那样),为什么不只将关键帧导出到 obj 文件。在代码中实现插值以填充缺失的帧。如果您的模型很复杂,您可能希望将插值模型缓存在内存中,但至少您不必也从文件中加载它们。

    【讨论】:

      【解决方案3】:

      与 Cody Hatch 的回答不同,我对此也很感兴趣。这是我关于动画模型的理论:

      假设您的模型有 30 帧。一种方法是将每一帧导出为单独的 OBJ 模型。从那里,您可以为这 30 个 OBJ 创建一个文件夹。所以现在你总共有 31 个文件。如果这个人点击了一个按钮,诀窍是根据按钮(或任何动作)有效的时间长度来加载每个 OBJ。如果持续超过 1 秒(30 帧),则循环回到开头。

      这个理论的唯一问题是,如果你试图在一个场景中加载很多东西,它很可能会占用大量资源和电力,更不用说占用空间了。

      【讨论】: