若要使用 Python 全局名称空间创建属性控件,请完成以下步骤:
在下面的示例中,将使用 Python 全局名称空间方法创建一个滑块控件。回调名为 AEFloatSliderGlobal。此程序会创建 floatSlider 控件,然后该控件使用更改命令 AEaddFloatSliderGlobalCB。
def AEaddFloatSliderGlobalCB( plug, slider ): val = cmds.floatSlider( slider, q=1, v=1 ) cmds.setAttr( plug, val ) def AEaddFloatSliderGlobal( plug, sliderLabel, annot ): cmds.rowLayout( nc=2 ) val = cmds.getAttr( plug ) cmds.text( label=sliderLabel ) slider = cmds.floatSlider( annotation=annot, v=val ) cmds.floatSlider( slider, e=1, cc=('AEaddFloatSliderGlobalCB( \"' + plug + '\", \"' + slider + '\" )' ) ) cmds.setParent( u=1 )
该程序中使用下列参数:
您必须定义 Python 程序,以便 Maya 可以使用它们。在“脚本编辑器”(Script Editor)的 Python 选项卡中执行上述示例的代码可以完成此操作。
当您创建自定义模板文件时,请将 <description language="cb"> 标志添加至属性声明部分以指定对 Python 程序的回调。默认情况下,回调在模板中采用 MEL 进行指定。
若要在全局名称空间中指定名为 AEaddFloatSliderGlobal 的 Python 回调,声明应为 py.AEaddFloatSliderGlobal。声明采用以下格式: py.<ProcedureName>。
若要将在以上 Python 模块中定义的自定义滑块控件添加至“白炽度绿”(Incandescence Green)属性,请采用以下操作:
<attribute name='incandescenceG' type='maya.float'> <label>Incandescence Green</label> <description language="cb">py.AEaddFloatSliderGlobal</description> </attribute>