问题标签 [maya-api]

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 回答
476 浏览

python - 有没有更快的方法来填充 MSelectionList?

在maya中,我想制作一个OpenMaya MSelectionList包含多个项目的(api版本2.0)......我只能用如下add方法填充它:

只用几个项目填充它是可以的,但是如果你有更多的东西会很乏味......我想知道是否有办法做更多这样的事情:

我可以编写自己的函数来创建一个空的 MSelectionList,遍历一个列表,添加它们然后返回它;我只是想知道我已经完全看过一些明显的东西了吗?从我在文档中可以看出,您只能创建一个空的 MSelectionList,或者通过传入另一个 MSelectionList(基本上复制它)来创建一个。

如果这真的不能在课堂上固有地完成,有没有人知道为什么它是这样实现的?

0 投票
2 回答
426 浏览

python - OpenMaya api 2.0 中 MFnNurbsSurface.closestPoint 的问题

我最近开始了解 python OpenMaya api v2.0,所以我一直在检查我的代码并尝试更新它以使用 2.0 版本。在大多数情况下,它对我来说比旧版本的 OpenMaya 更有意义......

我在尝试使用该OpenMaya.MFnNurbsSurface.closestPoint方法时遇到了障碍。我似乎无法弄清楚如何实际使用 kwargs 的方法。Maya 的文档是这样说的:

所以对我来说,这看起来像是我应该能够使用的 kwargs……但我几乎每次尝试使用它们时都会出错 - 当它没有出错时,我真的不明白为什么它没有t(以下示例)。如果我不放入 kwargs,它会“起作用”,但不会给我正确的结果,因为我确实需要更改其中的一些 kwargs。

这是执行此操作的旧方法和新方法的一些代码(新方法就是我到目前为止所拥有的……):

我通过创建一个 nurbsPlane (使用默认值)然后将它在 y 中向上移动 0.5 个单位并将这两个函数的输出与这些行进行比较来测试它:

我尝试在函数中使用“closestPoint”行做的其他事情:

输出中的一些差异对我来说很奇怪,而且错误似乎没有意义(比如调整“公差”arg 值时的差异)......而且,事实证明 0.5 的 uv 值是正确只是巧合——如果我移动和/或旋转平面,旧函数会返回不同的 uv 值,而新函数总是返回 0.5,因为它是从平面的对象空间而不是使用世界空间来评估测试点。

我还查看了相应的旧 OpenMaya 命令的文档,其中有两个条目 - 如果您要提供一些启动 uv 值,则其中一个具有“paramAsStart”布尔参数。考虑到 2.0 文档可能错过了这一点,我也尝试将其添加到我的 api 2.0 尝试中......它也没有工作(给了我一个错误,我传递了太多的参数)。

至少,我需要弄清楚如何让它从世界空间评估测试点;但是,当我继续使用 OpenMaya api 2.0 时,我相信我会再次遇到这种类型的事情(kwargs 似乎不起作用......) - 任何有关如何实际使用这些 kwargs 的帮助表示赞赏!

编辑:

更多测试 - 在 theodox 的回答之后,我猜想文档的 arg 顺序可能不正确......所以,我决定测试排列。假设uStart并且vStart将始终彼此相邻给出“kwargs”的 24 种排列,但我决定也尝试 None、0.0 和 0 作为它们的值(72 个测试!)。 全部出错。

这是我的测试线:

这些是会出现的常见错误:

如果有人感兴趣,我可以发布线路/错误...

所以,我想这是一个玛雅错误 - bleh ...

0 投票
1 回答
474 浏览

python - Maya 2017 中的透明窗口

我找到了一个 SAFRONOV 3D 的脚本(在 youtube 上),它允许他使图形编辑器在 Maya 中透明......问题是它适用于 Maya 2014,我正在尝试将其更新到 2017。

我对 opne maya 知之甚少,我是 pymel 的初学者,一些帮助会很棒。怎么了?:

0 投票
1 回答
1110 浏览

maya - 在 Maya 的时间滑块中设置突出显示的范围

使用以下方法很容易获得时间滑块中的高亮范围:

同样,可以使用 Qt 小部件访问

但是,以编程方式设置时间滑块的突出显示范围似乎几乎是不可能的。真的没有办法了吗?

我在想可能有一种方法可以修改 Qt 小部件,但我迷失了这个。

编辑:

这是我试图以编程方式设置的突出显示范围。 Maya 时间滑块高亮显示范围

0 投票
1 回答
1694 浏览

python - 如何更改 Maya UI 文本字体颜色?

我想更改 UI 中文本的字体颜色,但似乎文本命令文档中没有任何内容可以执行此操作。可以更改背景颜色,但不能更改字体本身。

我在互联网上搜索,发现这段代码使用 PyQt (源代码)更改按钮文本颜色。

所以,我有两个问题:

首先,我应该使用什么,而不是QPushButton,来编辑文本控件的颜色,二,这里的按钮颜色更改为'yellow',我想将其更改为自定义颜色值,有没有办法也可以这个?

提前致谢!

0 投票
2 回答
50 浏览

select - 脚本正在编辑器控制台中打印“选择”和“取消选择”:

在 Maya 中,当运行 Python 脚本时,脚本编辑器会在每次脚本选择和取消选择某些内容时进行报告。这很混乱,我宁愿在幕后发生这种情况。脚本编辑器有没有办法不报告这些命令,我​​可以让我的脚本在运行之前在编辑器中关闭该选项吗?

0 投票
0 回答
126 浏览

c++ - 每个局部多边形三角形的 Maya UV

我想知道是否有人在 Maya C++ Api 中有很好的方法来为多边形找到每个局部相对三角形的 UV 坐标。似乎很容易找到每个多边形面的 UV,但我怎样才能将它们映射回多边形三角形?

谢谢

0 投票
1 回答
114 浏览

progress-bar - 在 MPxNode::compute 中使用 MProgressWindow

我可以使用MProgressWindow内部MPxNode::compute方法吗?MProgressWindow即使没有被另一个进程使用,我的插件实现也不会保留。

注意:当节点被删除时,MProgressWindow会显示(奇怪的行为)。

我很感激任何帮助。

0 投票
1 回答
1697 浏览

python - 在 Python 或 C++ 中打开 Maya 回调查询内存中的所有回调

您好,我想知道是否有一种方法可以查询所有 callbacksMaya中创建的 **User Created ?同样,我是否可以查询连接到它们的对象或节点。我希望每次都更好地管理内存中的清洁度,并且不让任何回调在内存中丢失。**

在这里,我创建了一个示例,在该示例中,我将一个对象标记为回调,并在某些情况发生时打印一些内容。将每个回调 ID 添加到数组中以稍后将其删除。

我只需要一盏灯,即使是在C++中,我也可以在这里查看有关建议的文档。

0 投票
1 回答
5117 浏览

python - 使用 Python API 在 Maya 中获取参考节点列表

我只想使用 python API(仅)列出当前 Autodesk Maya 场景文件中的所有参考节点,MFileIO在 C++ API 中调用了这个类,但是返回引用的文件名而不是参考节点,但没有这样的类Python API。

请对此提出任何建议。

注意:我不想仅通过 API 使用 MEL 或 Python 命令。