Home  Previous Next

MG-Picker工作室尽全力让您设计强大的picker,在不用敲任何代码的情况下。

不过如果您有一些MEL/Python脚本开发经验,那么您设计的Picker可以变得更加强大。

 

以下就一些您可以发挥脚本开发能力的地方:

- Picker里可编程的属性. 所有这些属性都支持mel或python语言。

Picker的加载后命令,命名空间已改变命令, 及鼠标已进入命令,:

加载后命令: 当picker被加载打开后,完成读取后这个命令会立即被执行。比较推荐的作法是,在这个命令script里,你编写声明所有picker功能支持的mel及python函数,因为它们在picker加载后立即被source而可用,这样具体的picker按钮里的命令则只需要调用这边声明的函数即可。

命名空间已改变命令:每次Picker的命名空间改变了,不管是手动还是程序API命令改变,这个命令会被 执行。

鼠标已进入命令:每当鼠标进入picker区域,都会执行这个命令。 查看 跟Maya同步 章节来了解更多。

                 

编辑这些Picker命令的三种方式:

1.点击"Picker"菜单并选择"设置Picker属性..";        

2.激活编辑工具,右键空白处,在菜单里先把"设置Picker属性.."

3.直接访问"Picker"界面面板。

 

命令按钮命令: 这个按钮命令在你左键点击按钮并在命令按钮内部松开后执行。 要编辑命令按钮命令,选择那个命令按钮,在属性编辑器里拖动到底部,会看到编辑命令的代码编辑器。

         

属性按钮的属性值 改变前后命令:

属性值 改变前: 该命令在属性值被改变前被执行。主要用来在属性值改变之前获取并记录一些状态,通常用在ik/fk切换前,记录一些信息。

属性值 改变后: 该命令在属性值被实际改变后立即被执行。如果属性值没有实际改变则不执行。

Warning 要小心属性值 改变前后命令可能会造成死循环,比如:

attrButton1: 在 属性值 改变前命令里编辑了attrButton2的属性值。

attrButton2: 在 属性值 改变后命令里编辑了attrButton1的属性值。

这样就造成死循环,可能导致Maya崩掉。

 

滑条的属性值 改变命令: 该命令滑条属性值被实际改变后立即被执行。如果属性值没有实际改变则不执行。

 

Picker对象的菜单:  每个picker对象都可以带有一个菜单或marking menu。要编辑对象的菜单,选择那个picker对象,然后在菜单编辑器里编辑。

 

- 写其它类型picker到MG-Picker的转换器。目前已自带有abxPicker 及nickPicker的转换器。带有这些类型的picker节点的场景,其picker节点将会自动转换为mgpicker并显示。

- 编写命令按钮预设, 将来你可以用这些预设脚本来快速生成命令按钮而无需再敲代码。

- 编写代码片段,以提高将来敲代码的效率。

- 编写自动加载的脚本,将它们放到"Maya/版本/scripts/MG-PickerStudio/MGPicker_UserConfig/AutoSourced/" 里使它跟随MG-Picker工作室加载时而被自动加载。

这个机制将使您可以保证一些脚本,在您的picker打开时已被加载,以支持到您的picker里的一些命令功能。

 

MG-Picker工作室提供的MEL&Python API主要是这三个命令:

MGPicker

MGPickerView

MGPickerItem

MGPickerLink

MGPickerMenu

MGPickerMenuItem

 

除了这三个命令,还有其它的命令,不过这些命令主要是供程序内部使用:

MGPickerService

MGImageProcesser

* MGPickerValue: 这个命令则纯粹供内部使用,用来支持picker对象在动画师交互时的undo/redo.

* MGPickerAttrSyncer: 这个命令则纯粹供内部使用. 用来同步Maya场景及picker的状态.

* MGPGuiTest: 这个命令则纯粹供内部使用. 用来编辑界面的单元测试.

* MGPTest: 这个命令则纯粹供内部使用. 用来编辑单元测试.
 

其它开发相关帮助主题:

命令按钮预设

转换器

代码片段

跟Maya同步

小提示

Home Previous Next