MG-Picker工作室编程

编写脚本可以创建更为强大的picker。

MG-Picker工作室尽全力让您设计强大的picker,在不用敲任何代码的情况下。不过如果您有一些MEL/Python脚本开发经验,那么您设计的Picker可以变得更加强大。

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

Picker里可编程的属性

所有这些属性都支持melpython语言。

Picker文档的回调功能

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

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

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

💡 对于属性按钮或滑条这种对象,同步是自动的。

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

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

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

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

命令按钮命令

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

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

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

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

警告

要小心属性值 改变前后命令可能会造成死循环,比如:attrButton1: 在 属性值 改变前命令里编辑了attrButton2的属性值。attrButton2: 在 属性值 改变后命令里编辑了attrButton1的属性值。这样就造成死循环,可能导致Maya崩掉。

滑条的属性值改变命令

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

Picker对象的菜单

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

其它地方

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

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

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

  • 编写自动加载的脚本,将它们放到Maya/版本/scripts/MG-PickerStudio/MGPicker_UserConfig/AutoSourced/ 里使它跟随MG-Picker工作室加载时而被自动加载。这个机制将使您可以保证一些脚本,在您的picker打开时已被加载,以支持到您的picker里的一些命令功能。