本篇文章主要讲述如何链接(获取链接)Maya内的节点。
这种东西以前我就说过好几遍了哈,最后一次说了哈,别管中间操作是什么样,别想着某个操作的命令怎么写,直接手动操作一遍看最终的节点链接效果,结果生成了多少相关节点就用多少个createNode,打上了哪些链接就给哪些链接上connectAttr,各自节点的属性是什么就setAttr,需要什么父子关系就parent,需要重命名就rename,需要获取关系就listRelatives,需要获取链接就listConnections,查询transform信息就xform,列出场景节点就ls。节点(createNode)-链接(connectAttr)-属性(setAttr)永远围绕着3个东西来转。最终呈现给你的并不是中间怎么操作,而是最终的结果,使用到的命令来回就这几个,就是这些命令最终能组成可以生效的节点网络,完毕。————劲爆羊厂长
在使用Maya的时候我们经常可以某些节点通过线链接到了一起,例如Maya的材质、约束等,节点的链接关系我们可以通过Node Edit来观察到。本篇文章将讲述如何去获取和链接节点
链接节点
链接属性我们要用到connectAttr
,这个命令很简单,官方文档也有给出样例。
cmds.connectAttr( 'firstGuy.t', 'secondGuy.translate' )
取消链接
cmds.disconnectAttr( 'firstGuy.t', 'secondGuy.translate' )
获取正确属性
我们在链接节点的时候,有时候并不知道一些复杂属性的名字,这时候我们可以通过以下几种方法来获取到需要的属性
-
我们可以在节点编辑器中看到具体的属性,打开节点编辑器,展开节点,将鼠标放到曲线上,停留一会后就会看到属性链接信息的tip
-
尝试自己去链接(取消链接)一遍,然后查看Script Editor里的反馈,可以获取到属性信息
获取上下游链接的节点
在开发过程中,会用到获取上下游节点的命令listConnections
,例如获取某个模型的材质啊,获取材质上链接的贴图,等等
- source(s) 上游节点,一般与destination一起使用
- destination(d) 下游节点,一般与source一起使用
- connections(c) 则返回连接中涉及的指定节点的属性
- type(t) 类型
这里只列举常用的几个,详细的请到官方文档自行查看
例
-
获取节点的所有链接
cmds.listConnections( 'aiStandardSurface1') #Result:[u'materialInfo1', u'defaultShaderList1', u'materialInfo1', u'aiStandardSurface1SG', u'file1']
-
获取上游节点
cmds.listConnections( 'aiStandardSurface1',s=1,d=0) #Result:[u'file1']
-
获取下游节点
cmds.listConnections( 'aiStandardSurface1',s=0,d=1) #Result:[u'materialInfo1', u'defaultShaderList1', u'materialInfo1', u'aiStandardSurface1SG']
-
获取链接的节点类型为file的节点
cmds.listConnections( 'aiStandardSurface1',type="file") #Result:[u'file1']