MGPicker命令

MGPicker不可撤消, 可以查询且可以编辑。

这个命令查询或编辑文档级别的属性/状态,或关于程序本身的一些属性/状态。

在创建模式,这个命令用来创建MG-Picker工作室控件实例,不过这个实例同一时间只允许有一个,你完全不会需要在创建模式下使用这个命令。

跳转到: [MEL例子] [Python例子]

MGPicker命令

-about(-abt)E

显示 关于MG-Picker工作室 对话框。

-aboutCurrentPicker(-acp)E

显示 关于当前Picker文件 对话框。对话框显示了该picker设计者的名字,电子邮箱,网站及给picker使用者的信息。

-activate(-act)string stringQ E

在查询模式,这个标签返回指定picker文件路径或节点名是否当前处于加载并激活状态。

在编辑模式,你指定一个picker文件或节点以便激活,如果这个文件或节点未被打开则不会打开。返回值1如果成功激活,0则是激活失败。

指定namespace到第二个参数,这样您在查询或编辑时,在匹配目标Picker视图时,会同时需要匹配namespace是否一致,一致才激活。如果不想要求namespace也一致,则指定空字符窜。

另一个方式是事先记录创建的picker视图id, 然后用id来直接激活:
MGPickerView -e -activate viewID;

-addGenericPicker(-agp)string intE

这个总是只对当前picker工程的通用Picker设定进行编辑。用来添加一个Picker名称到当前Picker工程的通用Picker列表,指定路径字符窜,及一个代表在列表中位置的索引值。指定-1的索引值则会追加Picker名称到末尾,指定0则是插入在最前头。如果该Picker名称之前已加入过,则会先删除它,然后再以指定的索引值重新插入。界面将刷新相应的菜单以体现这个改变。

-activePickerArea(-apa)intQ E

指定0~3的整数值索引,来激活picker多视图的各个区域。最多四个,所以索引值最大为3。

注意,根据当前picker视图的布局,有可能只有三个区域,所以这个整数索引值聚会范围可能更小。设置比范围大的索引,只会激活索引最大的那个区域。

-activePickerView(-apv)stringQ E

查询模式下返回当前激活的picker视图的id字符窜,然后这个id就可以用在MGPickerView命令中。

在编辑模式下,指定一个视图id字符窜,则激活那个视图。

MGPickerView -e -activate viewID;

-appendRecentPickerFile(-arf)stringE

追加一个picker文件路径到最近Picker文件菜单。

-appendRecentPickerNode(-arn)stringE

追加一个picker节点名称到最近Picker节点菜单。

-addSearchPath(-asp)string intE

这个总是只对当前picker工程的搜索设定进行编辑。用来添加一个自定义的搜索路径到当前Picker工程的picker搜索路径列表,指定路径字符窜,及一个搜索优先级的整数值。

指定-1的优先级则会追加搜索路径到末尾,最后被搜索,指定0则是最优先被搜索。

-closeAll(-ca)booleanE

关闭所有picker, 指定一个0~1布尔值来决定是否强制关闭所有picker,即使在设计师模式下也不提示未保存等。

注意在动画师模式下,该参数被忽略,因为在动画师模式下总是不会提示任何未保存的picker编辑而是直接关闭。

-currentAttributeName(-can)booleanQ

Return the namespace:node.attribute string of current interacting attribute button.

返回当前正在交互的属性按钮的Maya属性。主要用到属性按钮的pre/post change command. 如果指定了没有提供参数值或参数值1,则返回带namespace的节点名.属性名。 如果指定参数值0则返回不带namespace的节点名.属性名。

-config(-cfg)string stringQ E

仅供内部使用。用来设置相应的配置。

在查询模式,不指定参数情况下返回所有配置的字符窜数组,如果指定了参数则只返回特定的配置值,

MGPicker -q -config "language" ""只返回当前的语言配置;

-currentItem(-ci)Q

返回当前正在交互的picker对象,主要用于picker对象的change command等,用于查询当前这个脚本属于哪个picker对象。

-close(-cl)string boolean stringE

关闭指定的picker文件路径或节点名,指定一个空字符窜即为关闭当前picker

还需要指定一个0~1布尔值来决定是否强制关闭该picker,即使在设计师模式下也不提示未保存等。

指定namespace到第三个参数,这样在匹配目标Picker视图时,会同时需要匹配namespace是否一致,一致才关闭。

如果不想要求namespace也一致,则指定空字符窜。

注意在动画师模式下,第二个参数被忽略,因为在动画师模式下总是不会提示任何未保存的picker编辑而是直接关闭。

-createPicker(-cp)string string string stringE

指定一个picker名称,namespace, 一个可选的picker文件路径及一个可选的picker节点名称,来创建一个新的picker并返回其id字符窜。

主要用于picker转换器编写,来创建一个新的picker来存放即将要被转换而创建的picker对象。

-recentPickerFiles(-cpf)stringQ E

查询模式下将返回最近打开的picker文件完整路径列表。在编辑模式下,指定一个Maya菜单id, 它将清空该菜单的子菜单,并在其下面生成最近打开的picker文件子菜单。

-recentPickerNodes(-cpn)stringQ E

查询模式下将返回最近打开的picker节点列表。在编辑模式下,指定一个Maya菜单id, 它将清空该菜单的子菜单,并在其下面生成最近打开的picker节点子菜单。

-currentPickerView(-cpv)Q

仅供查询,跟currentItem相类似,这个用在picker的load command及mouse enter command等,

用于查询当前这个脚本属于哪个picker视图。

注意不要与activePickerView标签相混。

-configRootDir(-crd)Q

仅供查询当前用户配置的根目录。

-createTempPicker(-ctp)E

创建一个暂存用的picker视图并返回其id字符窜,这个视图的tab带有:Temp数字

暂存用的picker视图主要便于动画师暂时放置那些用简单编辑模式来临时创建的picker对象如选择按钮等。

-deleteGenericPicker(-dgp)stringE

指定的通用Picker名称。如果指定空字符窜,则会清空当前工程的通用Picker名称列表。界面将刷新相应的菜单以体现这个改变。

-deleteSearchPath(-dsp)stringE

仅编辑用。从用户Picker搜索路径的列表里删除一个搜索路径。指定空的路径代表清空所有用户搜索路径。系统注意默认的几个搜索路径是不能删除的,只有用户添加的才可以。

-evenlyDistributePickers(-edp)booleanE

在所有可见的picker视图区域均匀分布已打开的picker,让每个视图区都有近似数目的picker tab。

-exportPathToNode(-epn)string stringE

导出Picker文件路径为picker节点,即保存路径为picker节点的pickerFilePath属性。

当Picker节点被加载时,对应的picker文件将被加载,路径支持由$ 或${}表示的环境变量。

需要指定要导出或编辑的Picker节点名称,及Picker文件路径。"

-exist(-ex)Q

查询Picker工具界面是否已创建。

-fallbackPicker(-fbp)stringQ E

在查询模式下,这个标签返回当前picker工程的备用picker名称。

在基于选择来搜索并自动加载picker时,如果没找到匹配的picker,则加载备用picker。

-findPickerView(-fpv)string boolean stringQ

只能用于查询。用来查找并返回相应的picker视图id字符窜。指定一个picker文件名或节点名,是否匹配命名空间的布尔值,及要匹配的命名空间字符窜。

-genericPickers(-gps)stringQ E

查询模式下以字符窜数组的方式返回当前通用picker的设置,在编辑模式下,指定以‘|’符号相连接的通用picker名称,来编辑这个设置。

界面将刷新相应的菜单以体现这个改变。你也可以通过下面方式来查询和修改通用picker的设置:

// Don't change this predefined value.
global string $MGPicker_Config_GenericPickerID;
// This returns a string joined by '|'
MGPicker -q -config $MGPicker_Config_GenericPickerID "";
MGPicker -e -config $MGPicker_Config_GenericPickerID 
      "genericPickerName1|genericPickerName2";

-hotkeyOutliner(-ho)E

显示快捷键总览,来查看在动画师模式及设计师模式下的快捷键。事实上这个功能也是由一个mgpicker文件来制作的。

-interactiveMode(-im)stringQ E

指定及查询MG-Picker工作室的当前交互模式。

在动画师模式下,可用值为previewsimpleEdit, 分别对应预览工具及简单编辑工具。

在设计师模式下,可用值有preview, edit, selectButton, commandButton, attributeButton, slider, text, link, eyedropper, mirror, polygon, beziertransform,分别对应工具。

-listAllPickerViews(-lav)Q

只能用在查询模式下,用来返回当前打开的所有picker视图的id.

-menuItemCommand(-mic)intQ

只能用在查询模式下,仅供内部使用,用来支持picker对象的菜单里的命令。

-openPicker(-opp)E

显示文件浏览对话框以便拾取一个.mgpkr的picker文件来打开。如果要直接指定picker文件来打开,请用-rpf/-readPickerFile标签,要直接指定picker节点来打开,则使用-rsp/-readScenePicker标签。

-parent(-p)stringC

仅供内部使用。基本上只用在创建模式来指定MG-Picker工作室控件的父layout。

-pickerAreaCount(-pac)Q

只能用于查询模式,来获取当前可见picker视图区域个数。

-progressBar(-pb)intQ E

指定 0~100 的值来显示进度条并设置进度值,指定-1则隐藏进度条.

-programInfo(-pi)Q

返回MG-Picker工作室的运行信息。

-pickerLoaded(-pl)string stringQ

这个标签只能用于查询模式来查询指定picker文件或节点是否已被打开。

指定namespace到第二个参数,这样在匹配目标Picker视图时,会同时需要匹配namespace是否一致,一致才会判断其已加载。如果不想要求namespace也一致,则指定空字符窜。

-pickerLayout(-ply)stringQ E

用来获取/设置当前picker视图布局。在编辑模式下,可用的字符窜数值有:

SingleColumn2Column3Column4Row2,Row3,Row4,

Col2SplitLeft,Col2SplitRight,Row2SplitTop,Row2SplitBottom,

GridVerticalUnified,GridHorizontalUnified,GridBothUnified.

-pickerMode(-pm)intQ E

仅供内部使用。

-popupNamespace(-pns)E

弹出namespace设计对话框来设置当前picker的namespace。

-pickerProject(-ppj)stringQ E

用在查询模式则返回当前picker工程名称,默认是Default

在编辑模式则设置当前工程名称,picker工程用来将来picker的搜索匹配上。

如果目标工程目录不存在这个命令就会新建该工程文件夹并设置为当前工程。

-pickerToShelf(-pts)E

弹出Picker对象转换到工具架对话框,用来将picker对象转换到Maya工具架上的按钮。

-quit(-qut)booleanE

退出Picker程序,并可以指定布尔值代表是否不提示保存编辑而直接强制退出。

-readAllPickerNodes(-ran)E

读取场景里的所有Picker节点。

-readAllTempPickers(-rat)Q E

读取之前自动存储的所有临时Picker。通常你可以在配置里打开自动加载而不需要这个命令。在查询模式下会返回所有临时Picker的名字。

-readPickerFile(-rpf)string booleanE

这个标签只能用于编辑模式来读取指定picker文件并返回其id字符窜。

如果已打开则激活那个tab (如果第二个参数是false或0)。

第二个参数是用来指定,是否如果这个文件已经打开也仍然再读取到新的视图。如果这个参数是true或1,则无论如何都会读取到新的picker视图。

使用 -opp/-openPicker 来弹出一个文件对话框以便用户可以拾取一个外部picker文件来打开。

-readPickerNode(-rpn)stringE

这个标签只能用于编辑模式来读取指定mgpicker节点并返回其id字符窜。

如果已打开则激活那个tab并返回其id字符窜。指定节点名称来打开它

-readScenePicker(-rsp)string string string stringE

这个标签只能用于编辑模式来读取指定mgpicker节点并返回其id字符窜。

这里你不能只提供一个节点名称来打开,而是要用mel/pyton获取其数据,然后指定节点名称,picker名称,namespace及picker的xml数据来读取及加载这个mgpicker节点。

-selectionHelper(-seh)E

创建并显示一个MG-选择辅助器窗口。

-selectionHelperWidget(-shw)stringE

仅限内部使用,以支持MG-选择辅助器可以在Maya主窗口内置。

-searchPaths(-sps)stringQ E

查询模式下返回当前picker工程的搜索路径数组。

编辑模式下,指定搜索路径,以'|'接合的字符窜,来设置当前picker工程的搜索路径数组。

-searchUi(-sru)booleanQ E

编辑模式下用来开关动画师模式下的节点属性的搜索界面。查询模式下用来返回这个搜索界面的可见性。

-version(-v)Q

这个标签只能用于查询以获得当前picker工作室的版本信息字符窜。

-visible(-vis)booleanC E

仅供内部使用。设置MG-Picker工作室控件的可见性。

-windowTitle(-wt)Q

查询当前Picker窗口的标题,仅供内部使用。

C 标签可以在创建模式中使用; E 标签可以在编辑模式中使用
Q 标签可以在查询模式中使用   M 标签可以在一条命令中多次使用.

MEL例子

// create a new picker named "myPicker"
// it is a untitled picker, not refer to a picker file / node.
string $view = `MGPicker -e -createPicker "myPicker" "wrongNamespace" "" ""`;
// edit the namespace of the picker.
MGPickerView -e -namespace "rightNamespace" $view;       

//To-Do: use MGPickerItem command to created picker items.
//....
//if you does create any picker items, this picker view will be completely empty.
MGPickerView -e -author "Miguel" 
         -website "http://twincodes.com" 
         -email "mgpickerstudio@gmail.com"
         -message "Feel free to send feedback to me!" 
         $view;  //edit the meta info of the current picker file.

MGPickerView -e -updateSceneBoundary $view;  //update the scene boundary to show all the items.
MGPickerView -e -setClean $view;   //set the picker we just created clean.

Python例子

from mgpicker import mgp

# Create a new picker named "myPicker"
# it is a untitled picker, not refer to a picker file / node.
viewId = mgp.MGPicker(edit=True, createPicker=("myPicker", "wrongNamespace", "", ""))
# edit the namespace of the picker.
mgp.MGPickerView(viewId, edit=True, namespace="rightNamespace")

# To-Do: use MGPickerItem command to created picker items.
# ....
# if you does create any picker items, this picker view will be completely empty.
# edit the meta info of the current picker file.
mgp.MGPickerView(
    viewId,
    edit=True,
    author="Miguel",
    website="http://twincodes.com",
    email="mgpickerstudio@gmail.com",
    message="Feel free to send feedback to me!",
)
# update the scene boundary to show all the picker items.
mgp.MGPickerView(viewId, edit=True, updateSceneBoundary=True)
# set the picker we just created clean.
mgp.MGPickerView(viewId, edit=True, setClean=True)