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

python - Autodesk Maya API 自定义节点

我想知道是否有人对如何创建一个脚本有建议,该脚本可以轻松编辑以创建自定义 Maya 节点,只需添加一些任意类型的任意值。

基本上,我希望能够指定属性类型(字符串类型、浮点类型等),并能够填写这些类型的值并让脚本轻松生成自定义节点。

很高兴听到任何建议。

0 投票
1 回答
267 浏览

python - 使用python在maya中选择非线性变形器输入节点并设置关键帧?

我想使用 python 脚本在 Maya 的非线性变形器中选择和设置关键帧。

我所尝试和失败的显然是基于我对这些命令的了解。

但是对于弯曲变形器这样的非线性变形器,似乎如果要在曲率值中设置一个键,则需要指定变形器的输入节点的名称。

在我的大纲中,我使用 cmds.setKeyframe() 将变形器命名为“bend2_handle”,如果使用对象名称为“bend2_handle”,它将不起作用,所以我必须获取输入节点的名称:“bend2” .

在脚本编辑器中,当我手动选择“bend2_handle”时,它显示在 mel 命令中:

当我手动选择弯曲bend2(曲率值所在的位置)时,它显示在mel命令中:

到底是什么-addFirst。但即使尝试将其用作对象名称,attribute=bend2.curvature,它仍然不起作用,而且我知道 attribute=bend2.curvature 是正确的,因为“bend2.curvature”是我在 cmds.setAttr 中使用的()

我尝试实现的另一种方法是打开自动关键帧,并在第一帧手动设置关键帧,使用 cmds.currentTiem() 指定时间,并使用 cmds.setAttr() 更改值,因此添加关键帧。

但我需要cmds.setKeyframe()独占使用,没有任何手动操作!

有人可以帮忙吗!?

0 投票
1 回答
1636 浏览

maya - 构建后重命名 bazel 输出(扩展)

我看到有一个线程已经讨论过这个问题,但有点含糊:

我可以指示 bazel 向可执行文件发出“.elf”后缀吗?

不幸的是,这对我没有帮助。我正在尝试使用 Bazel 在 Windows 上为 Autodesk Maya 编译插件,因此我的输出需要是.dll具有自定义扩展名的文件.mll。这是我的 BUILD 文件设置方式的示例代码:

一切都可以编译,但我似乎找不到将扩展名重命名为的方法.mll,我尝试记录genrules但无法使其工作。

有人能指出我正确的方向吗?

0 投票
0 回答
50 浏览

maya - 在撤消中从 MObjectArray 中删除对象

根据下面的代码,我首先尝试将对象附加到 MObjectArray ,我想在撤消功能中删除它。

撤消,重做工作正常..但撤消只删除数组/对象的第一个元素,而不是全部。想知道出了什么问题以及在撤消功能中删除对象的最佳方法是什么。

。H

.cpp

0 投票
1 回答
679 浏览

python - 如何导入 Maya Python API?

我正在使用 ipython,并将 maya Python API 包从我的 maya 安装目录复制到 site-packages 文件夹,但是当我尝试导入 maya.api.OpenMaya 时,我得到了这样的回溯:

那么如何在 ipython 而不是 Maya 导入 API?

0 投票
1 回答
466 浏览

c++ - Maya API C++:从多边形获取材料

我正在使用 Maya API C++ 为 Maya 2018 编写插件。我已经成功获得了一个网格,并创建了一个迭代器来遍历所有多边形:

我成功获得了顶点、法线、纹理坐标。但是如何获取叠加在当前多边形上的材质呢?并且伴随着材质的质感。

0 投票
1 回答
912 浏览

python-2.7 - Maya Python - 添加多个字符串以渲染设置层集合

我正在尝试将多个字符串添加到我的渲染设置层集合的包含列表中。

在此处查看图片

在这里我可以使用 setPattern 添加“test1”

如果我尝试:

我收到一个错误,因为它只接受 2 个参数而不是给定的 3 个参数。

如果我尝试:

它只是用 test2 替换字符串 test1

有谁知道如何附加到列表中以使其不被替换?另一种方法来做到这一点?我有一种明确列出项目的方法,但我想将其保留为表达式,以防以后需要添加内容。

0 投票
0 回答
100 浏览

api - 用于获取/读取节点属性表达式的 Maya API

我正在编写自定义 Maya 导出插件,我需要读取节点属性的表达式。但是当我尝试使用 Maya api“MFnExpression”来读取表达式时,我总是得到

(kInvalidParameter):对象与此方法不兼容

下面是代码:

任何参考代码都会有所帮助。

0 投票
1 回答
530 浏览

python - 尝试通过节点编辑器删除 RenderSetupLayer 节点时出现渲染设置错误

我在 StackOverflow 上的第一篇文章!

我目前正在尝试编写一个简单的渲染设置工具来快速允许删除 RenderSetup 图层。

但是,我注意到,当我按名称选择 RenderSetupLayer 节点时,它会导致渲染设置 GUI 内的“已删除”渲染层在“活动层”按钮所在的区域部分变灰。如果我然后关闭窗口,它会报告窗口存在 C++ 错误,并给出以下错误:

“maya 错误 510:内部 C++ 对象 (RenderSetupWindow) 已删除。”

在此之后,我做了一个简单的非基于代码的测试,我只是打开了渲染设置对话框,创建了一个新的渲染层,并通过节点编辑器窗口删除了 RenderLayer 和 RenderSetupLayer 节点,结果相同“漏洞”。关闭窗口后,我无法重新打开,这暗示了 Maya 的 RenderSetup 界面中存在一个非常基本的错误。非常令人沮丧!这是 Maya 的已知问题吗?谁能推荐一个可行的工作流程来有效地从 RenderSetup 系统中删除图层?

此外,是否有人对从渲染设置系统中选择预先存在的集合有任何建议?网上有很多资源,但我找不到任何细节。我想选择集合并分配给一个变量,但我不能在创建集合时这样做,只有在之后。

任何帮助将不胜感激

谢谢

克雷格

0 投票
1 回答
250 浏览

python - Maya Python 如何访问 polyCube

我找不到任何答案,所以我在这里问。

我正在开发一个多边形生成器工具,我想在其中设置立方体的高度和宽度值。

我的问题是我不知道如何获取构建历史的名称,例如“polyCube1”。这就是我卡住的地方:

感谢任何研究它的人。