Home  Previous Next

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

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

 

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

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

Picker的load command和Enter Command:您可以为每个Picker文档/节点编辑添加一个加载命令及一个鼠标进入命令。

Load Command: 当picker被加载打开后,这个命令会立即被执行。

比较推荐的作法是,在这个命令script里,你编写声明所有picker功能支持的mel及python函数,因为它们在picker加载后立即被source而可用,

这样具体的picker按钮里的命令则只需要调用这边声明的函数即可。

Enter Command: 每当鼠标进入picker区域,都会执行这个enter command。 查看 跟maya同步 章节来了解更多。

                 

编辑picker加载命令及鼠标进入命令的两种方式:

1.点击"Picker"菜单并选择"编辑Picker加载及进入命令..";

2.激活编辑工具,右键空白处,在菜单里先把"编辑Picker加载命令.."

 

命令按钮命令: 这个按钮命令在你左键点击按钮并在命令按钮内部松开后执行。

要编辑命令按钮命令,选择那个命令按钮,在属性编辑器里拖动到底部,会看到编辑命令的代码编辑器。

         

属性按钮的change command:

Pre-Change Command: 该命令在属性值被改变前被执行。

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

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

Warning 要小心change command可能会造成死循环,比如:

attrButton1: 在 change command里编辑了attrButton2的属性值。

attrButton2: 在 change command里编辑了attrButton1的属性值。

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

 

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

 

 

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.

* MGPickerSetAttr: 这个命令则纯粹供内部使用.

* MGDockControl: 这个命令则纯粹供内部使用. 跟maya本身的dockControl命令类似,多一些额外的功能.

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

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

其它开发相关帮助主题:

命令按钮预设

转换器

代码片段

跟Maya同步

小提示

Home Previous Next