- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
【龙渲经验】pythonInMaya节点的选择
【龙渲经验】pythonInMaya_节点的选择(2) 【connectionInfo函数的运用】 除了特殊的功能,脚本的最大好处就是同时对大量元素执行作用,降低操作量,提高工作效率,还能向外行人炫耀……(这个就免了!)。 前面介绍了场景物体变形节点(transform)和形节点(shape)的选择方法,接下来将是对其他节点内容的选择。 以paintEffect笔刷特效为例,当从visor中选取笔刷,在场景中绘制线条时,每完成一笔,maya会创建一条用于控制笔刷形态的Nurbs曲线,一个笔触节点(stroke)和一个笔刷节点(brush)。假如我们需要将每个笔刷进行动画设置(共享笔刷节点并不能实现丰富的动画设置),那么对于笔刷节点的操作将是十分繁琐的,因为前面所用的函数并不能选择到所选物体的其他相连节点。 接下来,我以较为复杂的辉光生长特效的制作为例进行说明。 【例子:笔刷特效批量动画设置插件】 【操作过程】 1.创建Nurbs曲线。场景中的这个球体NURBS曲线,是我从一个多边形球体上的边转换而得。 2.将笔刷特效附加到曲线上。保持Nurbs曲线的选择,然后在Visor中选择笔刷预设,执行:PaintEffects-CurveUtilities-Attach Brush to Curves。 3.找出相应的节点类别。使用maya2013新增加的NodeEditor节点编辑器,我们可以很直观的看到每个节点所属的类别。例如glowGreen1名称的节点属于brush类型,time1节点属于time的类型。 制作笔刷生长动画的属性位于stroke节点的EndBounds栏,而brush节点则与PF特效的渲染效果有关,包括笔刷大小,颜色,分支,自身动画的设置。 4.制作内容。通过对stroke节点的MaxClip属性设置动画,控制笔刷的生长;控制brush节点的BrushWidth属性,改变笔刷的大小;使用颜色编辑器改变brush节点的Incandescence1属性的颜色值,并设置动画关键帧。 【脚本的编写】 【特殊节点的选择--connectionInfo函数的使用】 通过listRelatives函数,我们可以获取并编辑stroke形节点的属性,但是brush节点并不会那么轻易就让我们选择。假如使用ls(type=brush)语句,所获取的是场景中所有的笔刷节点,并不是我们所选择的笔触所连接的笔刷节点。 *如果你尝试加入sl=True参数(该参数表示载入所选元素),你会发现无法获取有用的信息。 maya中要获取与所选节点相关的其他节点,所使用的方法是:获取所选节点与相关节点连接的属性,然后通过connectionInfo函数,取得相连的上游节点的属性,最后通过函数去掉属性名称,保留上游节点名称,完成节点选择。就好像一个叫“李大头”名字的人,中国人习惯叫他“大头”,美国人会叫他“李”,日本人会叫他“大头桑”……所以,从完整的名称中改变称谓来描述个体并不是那么难理解的事。 1.属性查看。在NodeEditor节点编辑器内,将鼠标指针放于属性之间的连线上,查看与stroke节点属性相连的brush节点的属性。 *如果是maya2013之前的版本,可以在Hypergraph:Connections窗口中查看。 2.编写语句列出属性。如上图可以知道,stroke节点的brush属性被brush节点的outBrush属性所连接。接下来的思路是:获取stroke形节点,利用它的brush属性“顺藤摸瓜”找到相连的brush节点名称。 *节点的名称是随机可变的,只有属性是唯一不变,因此通过查找相连的属性来获取节点的名称,是最常用的获取特殊节点名称的有用方式。 通过print函数来打印出结果,检查语句的执行结果: import maya.cmds as py sel=py.listRelatives() for sel in sel: print py.connectionInfo(sel+.brush,sfd=True) connectionInfo函数内的sfd参数表示返回属性连接的来源(上游节点的属性),其他参数可以参考maya官方文档的解释。 3.更名。通过以上的语句,我们获得了上游的brush节点的属性。因为我们最终需要的只是brush节点的名称,所以要将“.[属性]”的字符去掉。在MEL语句中,通常是使用tokenize函数去掉相应字符。如下图所示,通过tokenize将字符“aaa.bbb”进行切分(切分规则是去掉“.bbb”),结果得到“aaa”并保存于$buffer变量中。 不过,python有强大的切片功能进行列表的管理,因此在更名这个步骤,不需要使用maya的函数(tokenize函数仅限于MEL中
原创力文档


文档评论(0)