问题标签 [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.
python - 有没有更快的方法来填充 MSelectionList?
在maya中,我想制作一个OpenMaya
MSelectionList
包含多个项目的(api版本2.0)......我只能用如下add
方法填充它:
只用几个项目填充它是可以的,但是如果你有更多的东西会很乏味......我想知道是否有办法做更多这样的事情:
我可以编写自己的函数来创建一个空的 MSelectionList,遍历一个列表,添加它们然后返回它;我只是想知道我已经完全看过一些明显的东西了吗?从我在文档中可以看出,您只能创建一个空的 MSelectionList,或者通过传入另一个 MSelectionList(基本上复制它)来创建一个。
如果这真的不能在课堂上固有地完成,有没有人知道为什么它是这样实现的?
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 ...
python - Maya 2017 中的透明窗口
我找到了一个 SAFRONOV 3D 的脚本(在 youtube 上),它允许他使图形编辑器在 Maya 中透明......问题是它适用于 Maya 2014,我正在尝试将其更新到 2017。
我对 opne maya 知之甚少,我是 pymel 的初学者,一些帮助会很棒。怎么了?:
select - 脚本正在编辑器控制台中打印“选择”和“取消选择”:
在 Maya 中,当运行 Python 脚本时,脚本编辑器会在每次脚本选择和取消选择某些内容时进行报告。这很混乱,我宁愿在幕后发生这种情况。脚本编辑器有没有办法不报告这些命令,我可以让我的脚本在运行之前在编辑器中关闭该选项吗?
c++ - 每个局部多边形三角形的 Maya UV
我想知道是否有人在 Maya C++ Api 中有很好的方法来为多边形找到每个局部相对三角形的 UV 坐标。似乎很容易找到每个多边形面的 UV,但我怎样才能将它们映射回多边形三角形?
谢谢
progress-bar - 在 MPxNode::compute 中使用 MProgressWindow
我可以使用MProgressWindow
内部MPxNode::compute
方法吗?MProgressWindow
即使没有被另一个进程使用,我的插件实现也不会保留。
注意:当节点被删除时,MProgressWindow
会显示(奇怪的行为)。
我很感激任何帮助。
python - 在 Python 或 C++ 中打开 Maya 回调查询内存中的所有回调
您好,我想知道是否有一种方法可以查询所有 callbacks
在Maya中创建的 **User Created ?同样,我是否可以查询连接到它们的对象或节点。我希望每次都更好地管理内存中的清洁度,并且不让任何回调在内存中丢失。**
在这里,我创建了一个示例,在该示例中,我将一个对象标记为回调,并在某些情况发生时打印一些内容。将每个回调 ID 添加到数组中以稍后将其删除。
我只需要一盏灯,即使是在C++中,我也可以在这里查看有关建议的文档。
python - 使用 Python API 在 Maya 中获取参考节点列表
我只想使用 python API(仅)列出当前 Autodesk Maya 场景文件中的所有参考节点,MFileIO
在 C++ API 中调用了这个类,但是返回引用的文件名而不是参考节点,但没有这样的类Python API。
请对此提出任何建议。
注意:我不想仅通过 API 使用 MEL 或 Python 命令。