python编辑器 in out_【图片】【Maya】pythonInMaya_基本篇【妄想的咸鱼吧】_百度贴吧...

这篇博客介绍了在Maya中如何通过Python脚本来控制和断开动画关键帧,涉及笔刷大小调整和生长动画的关键帧设置。通过`py.listRelatives`和`py.connectionInfo`等函数,实现对物体属性的选中和关键帧的设置与断开,以防止因多次设置导致的新节点不断生成。此外,还提供了断开关键帧连接的`breakGrow`函数,确保属性间的链接能够正确解除。
摘要由CSDN通过智能技术生成

该楼层疑似违规已被系统折叠 隐藏此楼查看此楼

【动画关键帧的设置和断开】

解决了节点的选择,接下来就是对所需属性的控制。

进行常规的软件操作测试,通过脚本编辑器中得到的反馈信息来完成语句编写,这在第一篇中已经说过,这里就不再重复演示。以下是控制笔刷大小和生长关键帧设置的函数语句。

def brushSize(arg):

sizeInput=float(py.textField('size',q=True,tx=True))

sels=py.listRelatives()

for sel in sels:

attr=py.connectionInfo(sel+'.brush',sfd=True)

brushName=attr[0:len(attr)-len(".outBrush")]

py.setAttr(brushName+'.brushWidth',sizeInput)

def grow(arg):

minInput=float(py.textFieldGrp('min',q=True,tx=True))

maxInput=float(py.textFieldGrp('max',q=True,tx=True))

sels=py.listRelatives()

for sel in sels:

py.setKeyframe(sel,at='mnc',v=minInput)

py.setKeyframe(sel,at='mxc',v=maxInput)

*语句中预先输入的几个未知变量(sizeInput,minInput,maxInput),是用于存储稍后编写的文本框中的数值。

为了还原设置,这里继续加入一个“断开动画关键帧”的函数语句。断开物体属性之间的链接,需要输入两个具体属性的完整名称。此处我继续使用connectionInfo函数获取上游节点属性,是为了预防多个属性连入的情况。例如本例中,如果你对属性设置关键帧,断开连接后再设置关键帧,你会发现maya将不断的生成新的节点,动画节点的名称是在变化的。所以利用唯一的输入属性来寻找输出属性是最安全的方法。

def breakGrow(arg):

sels=py.listRelatives()

for sel in sels:

attrConn=py.connectionInfo(sel+'.minClip',sfd=True)

py.disconnectAttr(attrConn,sel+'.minClip')

attrConn=py.connectionInfo(sel+'.maxClip',sfd=True)

py.disconnectAttr(attrConn,sel+'.maxClip')

出于python允许的规则,以及个人的偷懒,我重复使用了相同名称的变量。毕竟作为临时存储数据的变量而言,我不打算花心思去给它漂亮的命名。这个习惯在下一个步骤中再接再厉。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值