Python在Maya中 - 仅从代码重新创建现有形状

时间:2012-05-19 04:58:06

标签: python maya

您好我正在学习玛雅的python脚本。我正在寻找一种在代码中存储模型的方法,以便我可以使用代码访问我的独特模型。 (我理解如何编写python氨基酸序列,而不是如何存储maya对象并在maya中使用python访问它们)

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

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

感谢您的帮助!

1 个答案:

答案 0 :(得分:3)

这是许多初学者到中级Maya用户的问题。它源于这样一个事实,即他们并没有真正掌握玛雅的实际运作方式。这里的诀窍是你实际上以错误的方式看待它。在我们深入研究答案之前,如果我定义脚本,那么你就不要混淆了。 Maya中的脚本是 maya.cmds 模块,它是Maya的脚本层。 Python还会在 maya.OpenMaya 中公开Mayas编程层,稍后会详细介绍。

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

所以你的问题在这一点上有所改变(假设你想按照我上面的定义编写脚本,Maya手册定义它)。我可以使用哪种节点来构建这个氨基酸链?

基本上你的左边有两个选项,使用粒子和粒子实例化或使用快照节点(快照节点是唯一的工厂节点,它可以进行复制并改变 dg的形状,在运行时)。一旦你掌握它,粒子实例就会发挥其超快速和直观的作用,并且它几乎可以肯定地以这种方式进行数十万个分子。使用快照节点有点复杂,您无法轻易地为其设置动画。用于绑定所有这些的节点是一个有用的东西,它是一个表达式节点,它是Mayas自定义数据处理程序(并且没有表达式不是MEL)。

现在,如果您真的想要执行我建议的代码,那么您需要使用Mayas API创建一个节点,并将其与脚本结合使用。记住脚本构建节点,以便构建连接和用户界面是一个脚本,API只构建节点内部。这是更直接的编码,使用时间的效率低下。

也可以根据需要使用事件并重建该死的东西。问题在于,你会让玛雅人在你身边呕吐,并一路打击你,让你的生活变得悲惨。