问题标签 [pymel]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
133 浏览

python - 从 PyMel 调用 MEL 脚本时,我可以报告更详细的结果吗?

考虑以下简单的 PyMEL 脚本。它基本上调用了现有的 MEL 函数。

“结果”包含从场景中删除的节点数,而不是删除了哪些节点。但是,在脚本编辑器中,当我调用脚本时会看到以下输出:

我可以访问此输出,以便将其显示给用户(无需他们自己查看脚本编辑器)吗?

0 投票
1 回答
1797 浏览

python - 如何以编程方式清除 Maya 脚本编辑器?

在创建和调试脚本时,我会为自己生成大量反馈,但如果我不清除脚本编辑器,我可能会对我正在查看的反馈来自哪个尝试感到困惑。

有没有办法(最好使用 PyMEL,但 MEL 可以)清除脚本编辑器历史记录?

0 投票
1 回答
764 浏览

python - 为什么 exportSelected 会导出未选中的节点?

我的目标是导出根节点、所有子节点以及重新创建资产所需的所有内容(例如,材质),但不包括任何无关的内容(例如,用于演示资产的照明设备,但这在逻辑上不属于资产,并且也不是资产根节点的子节点)。

举个简单的例子,假设场景包含一个球体和一个立方体。DAG 中两者都不是另一个的孩子。如果我传入球体的根节点,则只有球体应该出现在导出中。如果我选择多维数据集的根节点,则应该只出现多维数据集。

我认为我的选择逻辑不正确,但我可以在脚本编辑器中看到正在选择正确的节点(而不是其他节点)。

但是,无论我传入哪个根节点,都会导出整个场景(球体和立方体)。是否有我必须从中删除的条件exportSelected,或者我必须添加其他条件?

0 投票
1 回答
398 浏览

maya - Maya Python 库的名称是什么?

我想区分Maya 中可用的 Python 库

  1. MEL(嵌入式 Maya 语言)
  2. Maya Python 库( maya.cmds, 但也maya.standalonemaya.mel.eval)
  3. PyMEL [*]pymel.core和其他)
  4. 玛雅 Python API 1.0 ( maya.OpenMaya)
  5. 玛雅 Python API 2.0 ( maya.api.OpenMaya)

Maya Python 库(第 2 项)有名称吗?一个涵盖 2、4 和 5 的名称就足够了。

0 投票
0 回答
294 浏览

animation - 为什么 pm.blendShape 失败并显示“对象不允许设置别名”?

当迭代 Maya 场景中的节点(多个资产上的多个几何体)时,我将 blendShape 目标设置如下:

有时它有效,有时我收到以下错误:

对象不允许设置别名“corrective_name”。可能是因为该名称的属性已经存在。

...其中Corrective_name 是nt.Transform的名称corrective。我在节点上找不到具有该名称的属性blendshape,所以这不是原因。将 的值强制corrective为随机废话(以确保不存在冲突)会导致相同的错误。

此失败的其他原因是什么?


注意:一个可见的副作用(或原因?)是在调用工作的 blendShapes 上,我可以看到名称与更正名称匹配的权重。在调用失败的 blendShapes 上,权重称为weight[0]weight[1]weight[2]依此类推。

注意 2:在保存 .ma 文件然后第一次加载后,似乎(某些)属性别名失败。某些对象的重量属性在加载后显示为weight[0]而不是显示。actualName同一个对象始终失败(该对象上的属性的别名总是失败,其他对象上的别名永远不会失败)。这意味着pm.blendShape在第一个会话中该对象成功,但每次加载场景后都失败。然后也调用新创建的属性weight[X](在完全不同的上下文中别名失败的示例。)

如果将资产(包含多个对象)导入到场景中,则不会发生这种情况,只有当它被引用时。

资产别名工作(在第一次创建和导入资产时):

导入资产时工作

资产别名失败(第一次加载引用和保存的资产场景时):

引用资产和加载场景时失败

0 投票
1 回答
116 浏览

performance-testing - 我可以记录 Maya 启动时间的客观测量值吗?

一些用户抱怨 Autodesk Maya 需要很长时间才能启动 - 这是在加载场景之前。我想客观测量一下挂钟的启动时间,并记录下来,以便我们分析情况。

执行挂钟测量的逻辑是微不足道的。我的问题是,我在哪里可以将逻辑挂钩?我想尽快启动时钟,并且只有userSetup.py在加载所有插件和工具架并且 GUI 可见时才停止它。

如果可能的话,我还想注意一下 Maya 是从空白场景开始的,还是用场景文件打开的。

0 投票
2 回答
3029 浏览

python - 我可以从 mayabatch 中 pm.playblast 吗?

我正在尝试在一个文件夹中播放多个 Maya 场景,而不打开 Maya GUI。

  • 我已经成功调用了一个无头 Maya 实例mayabatch.exe
  • 该实例调用爬取文件夹的脚本
  • 每个场景都打开
  • 但我无法播放场景文件

1.紫噪声

如果我简单地打电话pm.playblast(format='movie', filename=some_filepathname, viewer=False, forceOverwrite=True, offScreen=True),我会得到一个带有紫色噪音的 AVI 文件。如果我切换到,format='image'我会得到一系列带有紫色噪声的图像。

2. 看不透

基于一些示例播放预览代码,我尝试pm.lookThru("persp")先调用,但这会触发以下回溯:

...大概是因为无头实例没有视图。

3.强制单个可渲染相机没有效果

一个相对较新的(2015 年)帖子 TO [Maya-Python],“Playblasting in Standalone”表明只需要一个可渲染的相机。

...但这仍然会产生紫色噪音。

从 Maya 脚本编辑器/GUI 调用 playblast 命令有效。是否可以从无头/mayabatch 实例播放预览?如果是这样,还需要为成功的播放预览设置哪些其他值?

0 投票
1 回答
483 浏览

python - 检测何时在 Maya 中的属性上设置关键帧?

我正在尝试在 Maya 中设置关键帧时触发脚本运行。我目前正在使用scriptJob's 来触发timeChanged事件和某些属性更改时的脚本,但我没有找到设置关键帧时的事件。

有没有办法检测何时在 Maya 中设置了关键帧并在发生这种情况时触发脚本运行?

0 投票
1 回答
5934 浏览

python - Maya Python 在渲染设置中更改当前渲染器

如何通过 python 命令更改 Maya 中的当前渲染器。例如:“maya 软件”到“mental ray”,反之亦然任何 python 或 pymel 命令。?

0 投票
1 回答
630 浏览

maya - 玛雅下拉菜单

对于任何 Maya 编码人员,我都有一个非常复杂的问题......

我想使用类似于 cmdScrollFieldExecuter 的 [脚本编辑器]“显示工具提示帮助”的下拉菜单。它看起来像一个窗口,已附加到输入文本的底部,其中包含所有相关命令或字符串的反馈。

有没有人有将类似的文本框/窗口/菜单附加到键入的输入的经验,如果是这样,你能把我扔到正确的方向吗?

注意:我不是在谈论“optionMenu”。

或者,有没有办法让 cmdScrollFieldExecuter 引用不同的数组或字符串集?