欢迎来到天天文库
浏览记录
ID:8806798
大小:1.12 MB
页数:18页
时间:2018-04-08
《【龙渲经验】pythoninmaya节点的选择》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库。
1、【龙渲经验】pythonInMaya_节点的选择(2) 【connectionInfo函数的运用】 除了特殊的功能,脚本的最大好处就是同时对大量元素执行作用,降低操作量,提高工作效率,还能向外行人炫耀……(这个就免了!)。 前面介绍了场景物体变形节点(transform)和形节点(shape)的选择方法,接下来将是对其他节点内容的选择。 以paintEffect笔刷特效为例,当从visor中选取笔刷,在场景中绘制线条时,每完成一笔,maya会创建一条用于控制笔刷形态的Nurbs曲线,一个笔触节点(stroke)和一个笔刷节点(brush)。假如我
2、们需要将每个笔刷进行动画设置(共享笔刷节点并不能实现丰富的动画设置),那么对于笔刷节点的操作将是十分繁琐的,因为前面所用的函数并不能选择到所选物体的其他相连节点。 接下来,我以较为复杂的辉光生长特效的制作为例进行说明。 【例子:笔刷特效批量动画设置插件】 【操作过程】 1.创建Nurbs曲线。场景中的这个球体NURBS曲线,是我从一个多边形球体上的边转换而得。 2.将笔刷特效附加到曲线上。保持Nurbs曲线的选择,然后在Visor中选择笔刷预设,执行:PaintEffects->CurveUtilities->AttachBrushtoCur
3、ves。 3.找出相应的节点类别。使用maya2013新增加的NodeEditor节点编辑器,我们可以很直观的看到每个节点所属的类别。例如glowGreen1名称的节点属于brush类型,time1节点属于time的类型。 制作笔刷生长动画的属性位于stroke节点的EndBounds栏,而brush节点则与PF特效的渲染效果有关,包括笔刷大小,颜色,分支,自身动画的设置。 4.制作内容。通过对stroke节点的MaxClip属性设置动画,控制笔刷的生长;控制brush节点的BrushWidth属性,改变笔刷的大小;使用颜色编辑器改变brush节点
4、的Incandescence1属性的颜色值,并设置动画关键帧。 【脚本的编写】 【特殊节点的选择--connectionInfo函数的使用】 通过listRelatives函数,我们可以获取并编辑stroke形节点的属性,但是brush节点并不会那么轻易就让我们选择。假如使用ls(type='brush')语句,所获取的是场景中所有的笔刷节点,并不是我们所选择的笔触所连接的笔刷节点。 *如果你尝试加入sl=True参数(该参数表示载入所选元素),你会发现无法获取有用的信息。 maya中要获取与所选节点相关的其他节点,所使用的方法是:获取所选节点
5、与相关节点连接的属性,然后通过connectionInfo函数,取得相连的上游节点的属性,最后通过函数去掉属性名称,保留上游节点名称,完成节点选择。就好像一个叫“李大头”名字的人,中国人习惯叫他“大头”,美国人会叫他“李”,日本人会叫他“大头桑”……所以,从完整的名称中改变称谓来描述个体并不是那么难理解的事。 1.属性查看。在NodeEditor节点编辑器内,将鼠标指针放于属性之间的连线上,查看与stroke节点属性相连的brush节点的属性。 *如果是maya2013之前的版本,可以在Hypergraph:Connections窗口中查看。 2.编写
6、语句列出属性。如上图可以知道,stroke节点的brush属性被brush节点的outBrush属性所连接。接下来的思路是:获取stroke形节点,利用它的brush属性“顺藤摸瓜”找到相连的brush节点名称。 *节点的名称是随机可变的,只有属性是唯一不变,因此通过查找相连的属性来获取节点的名称,是最常用的获取特殊节点名称的有用方式。 通过print函数来打印出结果,检查语句的执行结果: importmaya.cmdsaspy sel=py.listRelatives() forselinsel: printpy.connectionInfo(
7、sel+'.brush',sfd=True) connectionInfo函数内的sfd参数表示返回属性连接的来源(上游节点的属性),其他参数可以参考maya官方文档的解释。 3.更名。通过以上的语句,我们获得了上游的brush节点的属性。因为我们最终需要的只是brush节点的名称,所以要将“.[属性]”的字符去掉。在MEL语句中,通常是使用tokenize函数去掉相应字符。如下图所示,通过tokenize将字符“aaa.bbb”进行切分(切分规则是去掉“.bbb”),结果得到“aaa”并保存于$buffer变量中。 不过,python有强大的切片
8、功能进行列表的管理,因此在更名这个步骤,不需要使用m
此文档下载收益归作者所有