如何创建Maya Nurbs曲线以匹配关节链?

时间:2015-10-27 03:58:35

标签: python maya

我有一个曲折的联合链 - 使用所有旋转轴。我试图创建一个与关节路径匹配的Nurbs曲线。理想情况下,我也可以指定CV的密度和曲线的程度。曲线创建选项没有太多运气。

任何帮助将不胜感激!我主要在Python工作。

1 个答案:

答案 0 :(得分:2)

廉价的解决方案是循环骨骼,获得位置,然后从它们创建1度(线性)曲线。

def joint_positions(j):
    pos = [cmds.xform(j,q=True, t=True, ws=True)]
    children = cmds.listRelatives(j, c=True) or []
    for child in children:
        pos.extend(joint_positions(child))
    return pos
joints = joint_positions('joint1') 
cmds.curve(d = 1, p=joints)

这会给你一条曲线,每个关节都有一个结。然后,您可以使用fitBSpline命令的某种组合将其重新采样为更平滑的形式,和/或rebuild命令以更频繁地对其进行采样。您可以使用UI以交互方式进行实验,以便为应用程序找到合适的值,然后在知道要查找的内容时将它们烘焙到脚本中。在高于1的度数中,没有一个完美的,数学上纯粹的答案,所以你基本上看到了最适合你应用的东西。