【Maya开发基础随手记】获取曲线控制顶点的位置并记录为list

如何修改控制顶点

除了手动拖动控制点,我们还可以在属性编辑器里修改
在这里插入图片描述
曲线shape节点有数组型属性"cv[*]"
在这里插入图片描述
在这里插入图片描述

问题引出

如果控制顶点不在删格上的话,数字会很复杂

for cv in cmds.ls("curve1.cv[*]", flatten=True):
    p = cmds.xform(cv,query=True,worldSpace=True,translation=True)
    print p;

在这里插入图片描述
同时,我们还想要以list结构储存,方便再次利用

修改遍历方式

p = []
for cv in cmds.ls("curve1.cv[*]", flatten=True):
    c = cmds.xform(cv,query=True,worldSpace=True,translation=True)
    p.append([round(c[i],3) for i in range(len(c))])

print p

在这里插入图片描述

利用list型数据构建新的曲线

创建曲线的同时,得把shape节点的名称也更改了

def curve_ctrl(point_list, name, degree=1):
    crv = cmds.curve(degree=degree, editPoint=point_list, name=name)
    shp = cmds.listRelatives(crv, shapes=True)[0]
    print(shp)
    # rename shape node
    cmds.rename(shp, crv + 'Shape')
    return crv

猜你喜欢

转载自blog.csdn.net/qq_43544518/article/details/129999383
今日推荐