0

嗨,我目前正在使用 Maya 学习 Python 脚本。我正在寻找一种将模型存储在代码中的方法,以便我可以使用代码访问我的独特模型。(我了解如何编写python氨基酸序列,只是不了解如何存储maya对象并在maya中使用python访问它们)

我已经学会了如何访问脚本编辑器以及如何添加特定的形状,例如 polySphere() 等。我想做的是制作一个特定的模型,然后选择模型并获取用于重新创建所有选定项目的代码,然后我可以在脚本中运行该代码以在另一个场景中重新创建该形状。

例如:我目前正在制作一些氨基酸,虽然对氨基酸进行建模并不难,但当我想制作它们的链时,编写一个重新创建这些特定氨基酸的脚本会非常有帮助(3d 模型) 顺序。

谢谢你的帮助!

4

1 回答 1

3

这是许多初级到中级 Maya 用户都会遇到的问题。它源于这样一个事实,即他们并没有真正掌握 Maya 的实际工作方式。这里的诀窍是你实际上以错误的方式看待它。在我们深入了解答案之前,最好是我定义脚本,这样您就不会感到困惑。Maya 中的脚本是maya.cmds模块,即 Maya 的脚本层。Python 还在maya.OpenMaya中公开了 Mayas 编程层,稍后会详细介绍。

现在 Mayas 脚本界面起初有点奇怪,因为它不是完成这项工作的工具。Maya 真正的编程环境是节点,脚本界面只是为您提供了一种编程方式来布局节点。因此,Mayas 脚本接口是一种元编程接口。您不会通过查看脚本参考来解决这个问题,而是查看超图节点参考。这意味着乍一看做你想做的事情有点不直观。

所以你的问题在这一点上发生了变化(假设你想像我上面定义的那样编写脚本,并且 Maya 手册定义了它)。我可以使用哪些类型的节点来构建这条氨基酸链?

好吧,基本上你剩下两个选项,使用粒子和粒子实例化或使用快照节点(快照节点是唯一可以在运行时进行复制和更改dg形状的工厂节点)。一旦你掌握了粒子实例化的原理,它就可以超级快速和直观地工作,而且几乎可以肯定,它可以通过这种方式处理数十万个分子。使用快照节点有点复杂,你不能很容易地为它制作动画。您用来绑定所有这些的节点是一个表达式节点,它是 Mayas 自定义数据处理程序(没有表达式不是 MEL)。

现在,如果您真的想做代码,我建议您不要这样做,那么您需要使用 Mayas API 创建一个节点,并结合脚本。脚本构建节点记住,因此构建连接和用户界面是一个脚本,而 API 只构建节点内部。这是更直接的编码,难以有效地利用您的时间。

也可以使用事件并按需重建该死的东西。这样做的问题是,你会有玛雅在你身上呕吐,并一路与你战斗,让你的生活变得悲惨。

于 2012-05-21T09:51:28.457 回答