问题标签 [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 回答
561 浏览

c++ - MPxNode 中的非 Maya c++ 对象属性

我正在开发一个 C++ 插件,我想知道一种通过场景处理非 Maya 类对象的方法。我的意思是,我想要一个 Maya API 外部类的实例作为 Node 类的属性。该类相当复杂,由多个类组成。

我所看到的是节点可以为我提供结构化数据存储,但据我所知,它仅适用于 Maya 类型,这不足以满足我的目的。

现在我正在使用 MPxCommand 来执行该对象的计算,但是一旦完成,它就会被销毁。我想让它在场景中保持活力,所以我需要以某种方式使用节点。目前没有必要存储数据。

那么,您知道在 Maya 中执行与典型 OOP 类等效的方法吗?我在 devkit 或文档中没有找到任何示例。

非常感谢

0 投票
1 回答
960 浏览

python - 在maya python 2.0 API中指定自定义节点上属性数组的大小

我对节点编写和 Maya 的 Python 2.0 API 比较陌生,并且正在创建一个自定义节点来使用预定数量的输入点进行一些计算。出于我们的目的,我们会说 7 分。

我已经在我的节点类的初始化方法中使用以下代码成功地将复合数组属性添加到我的节点:

现在我有了这个,如何指定我希望 node.test (cAttr) 数组有 7 个元素?

非常感谢!

0 投票
1 回答
468 浏览

python - 在 postConstructor (Maya Python API) 中获取创建节点的 MDagPath

使用 maya python API 创建新的节点类型时,我需要在创建节点后立即对属性运行“maya.cmds.getAttr”。

获取您刚刚在 postConstructor 方法中创建的节点的 dagPath 的正确方法是什么?

0 投票
1 回答
157 浏览

python - 通过 Python 在 Maya 中导入动画会产生奇怪的结果

我正在尝试为游戏引擎构建和重建一种格式,当尝试将其放回 Maya 时,它会产生奇怪的结果。

这不是真正的错误或类似的错误,但动画的结果很奇怪。

出于引擎的目的,我确实需要将其以Quaternion格式保存,因为它比Euler axis.

这就是我所做的,因为我真的找不到直接的申请方式Quaternion

结果如下:

行走的动画

您可以看到很容易分辨出动画在做什么,但是您可以看到手臂或腿之间的那些奇怪的帧飞了一会儿,并且总体上搞砸了整个动画。

我相信这是因为我对代码所做的转换的数据丢失。我基本上标准化了Quaternion(实际上什么也没做,因为它给出了相同的结果,但很多人建议这样做),然后我将它转换为EulerMaya API 中的角度,然后我只是用良好的旧数学将弧度传递到度数,但这确实似乎不是要走的路,可能是文件丢失了一些数据的结果。

我想知道是否有比这更好的方法在关键帧中应用旋转,我将不胜感激。

提前致谢。

0 投票
1 回答
941 浏览

maya-api - Maya API 帧速率

有没有办法在播放过程中查询帧率?

我正在编写一个简单的 HUD 节点,我想包括帧速率,类似于在 >> 中找到的默认 MayaDisplay/Heads Up Display/Frame Rate.

0 投票
1 回答
105 浏览

export - Maya 将 uvset 从一个模型导出到另一个模型

基本上,我想要一种将 uvs 从一个模型导出到另一个模型的方法,作为我们管道的一部分,其中需要合并绑定和纹理/外观开发模型(同时创建)我想要一个解决方案,而不是将模型导入场景并复制紫外线集。类似于 xml 导出的东西。有没有什么办法。

提前致谢

0 投票
1 回答
1310 浏览

python - 如何修复“找不到独立的 Maya”错误?

我正在尝试maya.standalone在 Python(IDLE)中导入。我声明了环境变量,但仍然出现以下错误。

import maya.standalone ImportError: DLL load failed: The specified module could not be found.

这是我的代码:

从 PyQt4 导入 o​​s,sys 导入 QtCore,QtGui,uic

如何修复此错误?

0 投票
1 回答
729 浏览

python - Maya API 从现有网格中添加/删除顶点/边

有没有办法使用 Python API 从现有网格中添加/删除顶点、边和面?我在网上发现了一些关于此的问题,但都没有答案。

0 投票
1 回答
1133 浏览

python - 在 Maya API 中将多边形壳分离为单独的网格

有没有办法在 Maya API (OpenMaya) 中分离两个多边形壳?就像cmds.polySeparate函数(我不能使用它,因为它以随机顺序返回单独的节点,所以我不知道要删除哪个节点以及要在我的脚本中保留哪个节点。此外,我只想依赖 API 和不要将它与 cmds 混合使用)。

阅读文档时,我认为 OpenMaya.MFnMesh.extractFaces我正在寻找什么,但是(与文档似乎所说的不同)它只是剪切选定的块,但将其留在同一节点中。

0 投票
1 回答
1333 浏览

python - 在maya中重新排序多边形面索引

我一直在努力解决 Maya 中的一个问题,但无论是在这个站点上还是在这个站点之外,我都找不到解决方案。我创建了帐户,以便向社区提出直接问题并希望得到答案。

因此问题是:在建模过程中,人脸索引(例如 obj.f[0])理所当然地被弄乱了。我需要从用户指定的起点按顺序重新排序该面部索引。这是将面放入选择列表中。(Maya 会根据 face_index 编号放列表,这不是我们想要的) 澄清一下,人脸索引本身不需要更改。它只需要正确进入列表即可。

到目前为止我所做的:我能够编写一些代码来选择一条多边形。选定的面将转换为边列表,然后 Maya 搜索共享相同边的面并将其按顺序附加到新列表中。这在条带中很容易实现,因为相邻面只共享一条边。伪代码是:

类似的东西。当然,在处理像平面这样的完整表面时,代码会完全中断,因为至少有两条边与其他面共享。

它的用途:我编写了一个脚本,基本上可以在表面上种植草(或任何其他类型的几何图形)。原始脚本寻找面部中心并在面部中心种植草,或者你有什么。它还将限制方向为法线。但是,索引是混乱的,并且无法进行需要适当索引的额外工作。如果列表是人类可读的而不是机器可读的,这将对数据管理有很大帮助,这就是为什么我正在寻找一种方法来做到这一点。

最后:我试图寻找一个解决方案,但似乎没有找到一个完整的表面。也许我需要从另一个角度考虑这个问题,并且非常感谢社区的任何帮助或启发。

感谢您的时间!