Katana-使用Python赋值Node属性
在Katana的Pipeline的开发中,节点的操作是很常见的,Katana的API中支持Python,所以可以用Python操作节点的属性,以下是具体的写法。
使用Python API创建一个Katana节点:
1 standardNode = NodegraphAPI.CreateNode('ArnoldShadingNode', NodegraphAPI.GetRootNode()) 2 standardNode.getParameter('name').setValue("NewNode", 0) 3 NodegraphAPI.SetNodePosition(standardNode, (0, 0)) 4 standardNode.getParameter('nodeType').setValue("MayaPlace2DTexture", 0) 5 standardNode.checkDynamicParameters()
这段代码官方的开发文档就有,但是文档中没有的是怎么对不同类型的属性赋值,如下图:

上图中的参数coverage是一个list格式的值而参数rotateFrame是float格式。
list格式的参数赋值:
1 standardNode.getParameter('parameters.attribute.enable').setValue(1, 0) 2 standardNode.getParameter('parameters.attribute.value.i1').setValue(value,0) 3 standardNode.getParameter('parameters.attribute.value.i2').setValue(value,0)
float参数的赋值:
1 standardNode.getParameter('parameters.attribute.enable').setValue(1, 0) 2 standardNode.getParameter('parameters.attribute.value').setValue(value,0)
string参数的赋值:
1 standardNode.getParameter('parameters.attribute.enable').setValue(1, 0) 2 standardNode.getParameter('parameters.attribute.value').setValue(str(value),0)
开发环境:Python 2.7
应用软件:the Foundry Katana v2.5