这是许多初级到中级 Maya 用户都会遇到的问题。它源于这样一个事实,即他们并没有真正掌握 Maya 的实际工作方式。这里的诀窍是你实际上以错误的方式看待它。在我们深入了解答案之前,最好是我定义脚本,这样您就不会感到困惑。Maya 中的脚本是maya.cmds模块,即 Maya 的脚本层。Python 还在maya.OpenMaya中公开了 Mayas 编程层,稍后会详细介绍。
现在 Mayas 脚本界面起初有点奇怪,因为它不是完成这项工作的工具。Maya 真正的编程环境是节点,脚本界面只是为您提供了一种编程方式来布局节点。因此,Mayas 脚本接口是一种元编程接口。您不会通过查看脚本参考来解决这个问题,而是查看超图或节点参考。这意味着乍一看做你想做的事情有点不直观。
所以你的问题在这一点上发生了变化(假设你想像我上面定义的那样编写脚本,并且 Maya 手册定义了它)。我可以使用哪些类型的节点来构建这条氨基酸链?
好吧,基本上你剩下两个选项,使用粒子和粒子实例化或使用快照节点(快照节点是唯一可以在运行时进行复制和更改dg形状的工厂节点)。一旦你掌握了粒子实例化的原理,它就可以超级快速和直观地工作,而且几乎可以肯定,它可以通过这种方式处理数十万个分子。使用快照节点有点复杂,你不能很容易地为它制作动画。您用来绑定所有这些的节点是一个表达式节点,它是 Mayas 自定义数据处理程序(没有表达式不是 MEL)。
现在,如果您真的想做代码,我建议您不要这样做,那么您需要使用 Mayas API 创建一个节点,并结合脚本。脚本构建节点记住,因此构建连接和用户界面是一个脚本,而 API 只构建节点内部。这是更直接的编码,难以有效地利用您的时间。
也可以使用事件并按需重建该死的东西。这样做的问题是,你会有玛雅在你身上呕吐,并一路与你战斗,让你的生活变得悲惨。