python - 编写用于更改比例值的 MEL/Python 脚本

标签 python maya mel

动态图形领域的人很难编写 MEL 脚本(因为他们都不是程序员)。所以我试了一下,但我遇到了很大的困难,因为我不知道很多变量和语法等是什么。

基本上是想选择scale值在0.001或更小的dagObjects的关键帧,然后将scale值改为0。

我尝试将所有 dagObjects 分配到一个数组中,然后尝试遍历该数组,但之后就迷路了。

另外,如果这可以用 Python 来完成,那也没关系。

最佳答案

你好,很高兴知道你的 dagObjects 是什么形式。这是一个简单的 python 脚本。

from maya import cmds
import math

dags = ['obj']
attrs = ['sx', 'sy', 'sz']
tol = 0.001

for dag in dags:
    frames = [frame for frame in cmds.keyframe(dag, q=1)]
    for frame in frames:
        attrib_vals = [cmds.getAttr(dag+'.'+attr, time=frame) for attr in attrs]
        length = math.sqrt(sum(attr_val * attr_val for attr_val in attrib_vals))
        if length < tol:
            cmds.setKeyframe(dag, at=attrs, t=[frame], v=0)

关于python - 编写用于更改比例值的 MEL/Python 脚本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11474048/

相关文章:

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

python - 如何使用textScrollList选择 Material ?

python - 查找特定轴上网格上最近的点(maya)

menu - 如何安全地将 menuItems 添加到 Maya MEL 中的现有菜单

user-interface - 如何将 MEL UI 连接到 Maya 的 UV 纹理编辑器?

python - 如果变量不存在,如何检查实例是否存在?

Python,从另一个类调用类函数

python - 我的 csv 文件中的文本被作为原始字符串读取。它包含 "it\' s”而不是它的。我该如何清理它?

python - 为什么即使使用代理,我的真实 IP 地址仍然可见?

python - GAE Python webapp2图片上传错误