MGPickerView命令

MGPickerView不可撤消, 可以查询且可以编辑。部分标签可以被动画化。

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

需要指定要查询或编辑的picker视图id。如果没有指定,则是针对当前激活的picker视图进行查询或编辑。可以通过下面命令之一获得id:

   MGPicker -q -currentPickerView;     // Get current script execution view id, eg. picker load command, picker mouse enter command. Only be set during the script being executed.
   MGPicker -q -activePickerView;     // Get current active view id.
   MGPicker -q -findPickerView  "pickerNodeOrFileName"  1 "namespace";             // Find picker view id via picker node name or picker file name and namespace.
   MGPicker -q -listAllPickerViews;          // List ids of all opened picker views.
   MGPicker -e -createTempPicker;     // Create a temporary picker view and return its id.
   MGPicker -e -createPicker "pickerName" "namespace" "filePath" "nodeName";        // Create a picker view and return its id.
   MGPicker -e -readPickerNode "nodeName";       // Read in-scene picker node and return its id.
   MGPicker -e -readScenePicker "nodeName" "pickerName" "namespace" "pickerDataString";       // Read in-scene picker node and return its id.
   MGPicker -e -readPickerFile "pickerFilePath" 1;         // Read a picker file and return its id.

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

MGPickerView命令

-activate(-act)Q E

在查询模式,这个标签返回该picker视图是否当前被激活。

在编辑模式则是激活该picker视图。

-autoLocaliseImages(-ali)booleanE

Used with -saveAs, -saveAsSceneNode and -saveWithinSceneFolder flags to turn on/off image localisation during the save/export.

图片本地化过程中,图片将被复制到相应目录,并且切换为相对路径 。

注意这个标签只作用于该次保存或导出过程,不会影响用户配置。

-animation(-ani)int stringE

仅用于编辑,用来把其它编辑变成一段动画。

第一个数值是动画长度,以微秒为单位,第二个数值是动画曲线类型,支持的数值可以通过运行MEL来获取:MGPickerAnimation -q -supportedEasingTypes

-addPanel(-ap)string stringE

指定一个面板的标签字符窜,及面板布局:horizontalvertical, 来创建一个新picker面板,并返回该面板id字符窜。

-activePanelIndex(-api)intE A

指定一个面板的索引,则picker视图会自动平移并缩放以显示那个索引所代表的picker面板。每个picker面板在标题栏都有显示一个[数字],这个数字就是该面板的索引。

-alignSelection(-asl)unsignedintE

仅用于编辑, 来以某种方式对齐所选的Picker对象:

0=水平对齐父对象中心, 1=垂直对齐父对象中心, 2=水平居中, 3=垂直居中, 4=左对齐, 5=右对齐, 6=顶对齐, 7=底对齐

-applyStyle(-ast)string string stringE

Apply a style to picker scene. You need to specify:

string: 要应用的样式, 可以是在默认用户样式根目录下的样式组名, 或者样式组的绝对文件夹路径,或者一个或多个.mgstyle文件绝对路径以,连接。


string: 被应用样式的Picker对象,空字符窜代表应用到全部Picker对象,也可以一个或多个Picker对象ID, 以,连接,比如itemId1,itemID2,itemID3


string: 样式应用选项,格式是选项名=值,选项名=值, 比如restrictType=0,panelbackground=1,对于布尔值的选项,可以省略 =1, 比如 restrictType,panelbackground.


默认情况下,restrictType=1并且 panelbackground=0

-author(-ath)stringQ E

在查询模式下,这个标签返回picker设计者的名字,编辑模式则指定picker的作者。

-activateViewRegion(-avr)stringE A

聚焦视图到对应名字或者ID的视图区域。视图区域可以用视图区域工具交互式创建并可以取名字。

-backgroundColor(-bgc)float float float floatQ E

Picker视图的背景颜色。

-bgHorizontalAlign(-bha)stringQ E

背景图的水平对齐方式,可用的数值有 center, left, right

只有当bgScaleFit及bgKeepRatio都为真是才起效。

-backgroundImage(-bi)stringQ E

Picker视图所使用的背景图。

-bgKeepRatio(-bkr)booleanQ E

当背景图为适应Picker视图而缩放自己时,是否保持长宽比。

-bgMargin(-bmg)int int int intQ E

当bgScaleFit为真时,这个是背景图距离左右上下Picker视图边缘距离。 当bgScaleFit为假时,只有左边及顶边跨度被使用,用来相对场景原点进行偏移背景图片。

-backgroundSVGElement(-bse)stringQ E

查询和编辑当前picker的背景SVG图片的元素ID。

-bgScaleFit(-bsf)booleanQ E

背景是否要自动缩放自己以适应面板大小。

-bgVerticalAlign(-bva)stringQ E

面板背景图的垂直对齐方式,可用的数值有center, top, bottom。只有当bgScaleFit及bgKeepRatio都为真是才起效。

-close(-cl)booleanQ E

关闭picker视图, 指定一个0~1布尔值来决定是否强制关闭,即使它有未保存的编辑。注意在动画师模式下,该参数被忽略,因为在动画师模式下总是不会提示任何未保存的picker编辑而是直接关闭。

-copy(-cp)stringQ E M

复制特定的对象到剪贴板,用空字符窜来复制场景所选的对象。

该标签可以重置指定,所以可以一次性指定多个对象来复制。在查询模式下,该标签返回所复制的对象ID数组。

-copyAll(-cpa)E

复制所有对象到剪贴板。

-clearSelection(-csl)E

去选picker视图的所有对象。

-dependencies(-dep)Q

查询该picker所用到的所有外部文件,目前主要是外部图片文件。

-distributeSelection(-dis)stringE

仅用于编辑, 来以某种方式均匀分布所选的Picker对象, 可用的值 为 verticalhorizontal

-duplicateSelection(-ds)unsignedintE

仅用于编辑, 来以某种方式复制所选的Picker对象, 可用的值为:

0=往右复制, 1=往下复制, 2=往上复制, 3=往左复制, 4=镜像复制。

将返回复制后的ID.

-email(-eml)stringQ E

在查询模式下,这个标签返回picker设计者的邮箱,编辑模式则指定picker的作者邮箱以便使用picker的人可以反馈picker使用意见。

动画师可以使用这个邮箱来给你关于picker使用上的反馈。

-exportPathToNode(-epn)string stringE

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

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

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

-exist(-ex)Q

用于查询指定的picker视图是否存在。

-freeNavigation(-fn)booleanQ E

Picker文档的浏览限制模式, 默认为False, 代表只允许用户查看场景坐标的正数象限,如果为真,则允许用户自由的浏览其它象限。

-fileVersion(-fv)Q

只能用于查询。用来返回picker视图的文件版本。

-getIdFromName(-gin)stringQ

只能用于查询。指定一个名字字符窜,将返回所有取这个名字的picker对象的id数组。

如果只有一个对象名字匹配到,它仍将返回一个只包含一个id的数组,你之后可以取第一个元素来作为该对象的id。没找到任何对象则返回空数组。

这个标签主要用来避免在picker过程中硬写这些picker对象的id.

-groupSelection(-gs)E

只能用于编辑,用来对所选Picker对象进行打组并返回新建群组的ID。

-highlighted(-hli)unsignedintQ

只能用于查询,用来获取匹配指定高亮模式的Picker对象ID。0代表没有被高亮,1代表半高亮,2代表全高亮, 3或者更大数字代表半高亮或全高亮。

-inboundSelection(-ibs)E

只能用于编辑。用来将超出父对象可见范围的子对象移回可见范围, 操作后被移动的对象将被选择。

该操作针对于当前所选的对象,如果该对象是组或面板, 则对其所有子对象进行检测并移动,否则只对该对象进行检测移动。

-importFromFile(-iff)string stringE

从另一个picker文件导入所有对象到当前picker视图,

第一个参数是picker源文件路径,第二个参数指定导入的目标父组或父面板ID,

空字符窜则代表直接导入到场景而无父对象。

-importFromNode(-ifn)string stringE

从另一个picker节点导入所有对象到当前picker视图,

第一个参数是picker节点名称,第二个参数指定导入的目标父组或父面板ID, 空字符窜则代表直接导入到场景而无父对象。

空字符窜则代表直接导入到场景而无父对象。

注意picker节点只支持包含picker内容的节点,不支持仅包含picker文件路径的节点。

-isTemp(-it)Q

只能用于查询。用来查询该Picker视图是否是临时Picker。

-listAnimations(-la)Q

只能用在查询模式下,用来返回相应的动画对象ID。

-localiseAllImages(-lai)E

该标签只用来编辑, 用来对所以picker使用到的图片进行本地化处理。

只能用在查询模式下,用来返回特定类型的连接ID的字符窜数组,以 源对象ID > 目标对象ID 的格式。

指定一个连接类型字符窜,可用的值有parentlink, attributelink(不区分大小写),你可以指定空字符窜或者 parentlink|attributelink 来返回所有类型的连接id。

-list(-ls)stringQ

只能用在查询模式下,用来返回特定类型的Picker对象ID的字符窜数组。

指定一个Picker对象类型字符窜,可用的值有 selectButton, commandButton, attributeButton, slider, sliderHandle, text, panel(不区分大小写),如果是空字符窜,将返回所有类型的Picker对象ID。

类型字符窜也支持组合,比如你想要列出所有的选择按钮及命令按钮,可以指定selectButton|commandButton

-listViewRegions(-lv)Q

只能用在查询模式下,用来返回所有视图区域的ID。

-mirrorSelection(-ms)intE

利用picker对象的镜象关系,来镜象场景里的选择:

0 = 选择,1 = 加选,2 = 去选,3 = 反选。

-message(-msg)stringQ E

用在查询模式下,这个标签返回picker设计者的信息,

编辑模式则指定picker的作者给picker使用者的信息。

-namespaceChangedCommand(-ncc)string stringQ E

查询/编辑picker文档/节点的命名空间改变命令。。

该命令在每次你修改picker视图的命名空间后被执行

在查询模式,将返回字符窜数组,数组含两个元素,第一个是mel或python,代表命令的类型,第二个是实际的命令代码。

在编辑模式,您需要指定mel/python类型,及实际的命令代码,即两个字符窜作为参数。

-namespace(-ns)stringQ E

用在查询模式则返回picker的namespace, 编辑模式则指定picker的命名空间。

指定的命名空间字符窜要符合Maya命名空间的规范,不合法的字符会自动被转成下划线。

-namespaceSeparator(-nsp)stringQ E

用在查询模式则返回picker的命名空间后面的连接字符窜。编辑模式则指定该连接字符窜。

如果是空字符窜则使用默认,比如在maya里它是':'。

-pickerDirPath(-pdp)Q

这个标签只能用于查询模式来查询picker文件所在的目录。

-pickerEnterCommand(-pec)string stringQ E

查询/编辑picker文档/节点的进入命令。

进入命令在每次鼠标进入picker视图时被执行。

在查询模式,将返回字符窜数组,数组含两个元素,第一个是mel或python,代表命令的类型,第二个是实际的命令代码。

在查询模式,将返回字符窜数组,数组含两个元素,第一个是mel或python,代表命令的类型,第二个是实际的命令代码。在编辑模式,您需要指定mel/python类型,及实际的命令代码,即两个字符窜作为参数。

-pickerFilePath(-pfp)Q

这个标签只能用于查询模式来查询picker文件完整路径。

-pickerLoadCommand(-plc)string stringQ E

查询/编辑picker文档/节点的加载命令。

加载命令在picker被加载后会立即被执行。

在查询模式,将返回字符窜数组,数组含两个元素,第一个是mel或python,代表命令的类型,第二个是实际的命令代码。

在查询模式,将返回字符窜数组,数组含两个元素,第一个是mel或python,代表命令的类型,第二个是实际的命令代码。在编辑模式,您需要指定mel/python类型,及实际的命令代码,即两个字符窜作为参数。

-parentSelectionToLast(-psl)E

仅支持编辑。用来将所选Picker对象作为最的一个所选对象的子对象, 最后选的对象必须是群组或者面板。将返回被更改父子关系的子对象数目。

-paste(-pst)stringE

粘贴事先复制的picker对象。可以指定父组或父面板的ID,空字符窜代表粘贴到场景而无父对象。

-removeAll(-ra)E

只能用在编辑模式,用来将场景所有picker对象删除清空。

-remove(-rm)stringE

只用于编辑,来删除指定picker对象。需要指定是删除的对象id。可多重使用。

-saveAs(-sa)string booleanE

这个标签只能用于编辑模式来将当前picker另存为一个指定picker名称的外部picker文件,还需要指定一个是否覆盖已存在的布尔值。

另存的文件将存放在Maya的用户程序目录/MG_PickerData下当前picker工程目录里。注意这个行为不会改变picker视图的id。

-saveAsSceneNode(-sas)string booleanE

这个标签只能用于编辑模式来将picker文件/节点另存为当前场景指定的节点。

指定一个0~1布尔值来决定是否改变当前picker文件/节点状态为所保存的节点。0相当于导出一个picker节点,1相当于另存为picker节点。即使节点已经存在,也将被覆盖。

注意这个行为不会改变picker视图的id。

-saveAsTemplate(-sat)string booleanE

这个标签只能用于编辑模式来将picker文件/节点另存为picker模板,必须指定一个模板名及一个布值决定是否覆盖已存在的模板,如果指定空字符窜,则采用自动生成的模板名。即使同名模板已经存在,也将被覆盖。注意这个行为不会改变picker视图的id。

-setClean(-sc)E

这个标签只能用于编辑模式来把picker标记为干净没有未保存操作的状态。当您编写picker转换器时,你最后可能用这个标签来将当前picker标记成干净的状态,这样这个picker的tab就会是绿色的点而不是红色的,并且它的所有撤消重做历史被清空。

-select(-sel)stringQ E M

在查询下将返回当前picker视图所选择的picker按钮的id数组。注意从2.4版本以后,返回的按钮是基于选择顺序的,而返回的连接还是无序的。2.4以前版本全部是无序的。

在编辑模式下将选择对应的picker按钮,注意是用来选择picker对象本身而不是Maya节点,您必须指定picker按钮的id字符窜数组来执行相应的选择。通常配合-selectMode来指定是加选,去选还是反选等。

-selectGroupButtons(-sgb)intE

仅用于编辑,来选择在一个群组或面板下的所有选择铵钮里的节点成员。可以指定不同选择模式:

0 = 选择,1 = 加选,2 = 去选,3 = 反选。

这主要是用来内部使用,因为它要求你的鼠标当时在面板或组内部。

-selectPickerButtons(-skb)intE

这个标签只能用于编辑模式来选择picker里所有面板里所有的选择按钮成员节点。

常用于“选择全部”命令按钮。使用0~3的整数来指定选择模式:

0 = 选择,1 = 加选,2 = 去选,3 = 反选。

-selectMode(-sm)intE

这个标签只能用于编辑模式来选择picker对象。注意是用来选择picker对象本身而不是Maya节点。

0 = 选择,1 = 加选,2 = 去选,3 = 反选。

-selectPanelButtons(-spb)intE

这个标签只能用于编辑模式来选择picker面板里所有的选择按钮成员节点。常用于选择全部命令按钮。

在判断哪个是当前picker面板时,工具使用当前鼠标位置来判断,处于鼠标下的picker面板即是当前picker面板。

使用0~3的整数来指定选择模式:

0 = 选择,1 = 加选,2 = 去选,3 = 反选。

主要内部使用。

-selectPanelIndexButtons(-spi)int unsignedintE

这个标签只能用于编辑模式来选择特定面板索引的picker面板里所有的选择按钮成员节点。

常用于“选择全部”命令按钮。使用0~3的整数来指定选择模式:

0 = 选择,1 = 加选,2 = 去选,3 = 反选。

你需要为第二个标签指定一个合法的面板索引整数值。

-syncPickerValue(-spv)E

这个标签只能用于编辑模式来更新picker的属性按钮及滑条的数值,

并且当场景有新的节点被创建,可以用这个来启动监视。

通常在Maya属性值变动时picker会同步变动更新,不需要手动执行这个动作。

-saveToFolder(-stf)string booleanE

这个标签只能用于编辑模式来将picker文件/节点存到指定的目标目录。存储后的picker文件将在目标目录/picker名称目录下面。

还需要指定布尔值以控制是否覆盖已存在的文件。注意这个行为不会改变picker视图的id。

-saveWithinSceneFolder(-sws)booleanE

这个标签只能用于编辑模式来将picker文件/节点存到当前场景目录 / pickers目录下面。这个目录在加载相关picker会被自动搜索。

还需要指定布尔值以控制是否覆盖已存在的文件。注意这个行为不会改变picker视图的id。

-tabLabel(-tl)stringQ E

查询模式下用来返回Picker视图的标签页的标签。

编辑模式下用来编辑Picker视图的标签页的标签及Picker视图的名称。

-ungroupSelection(-ugs)E

仅用于编辑。用来解除群组,如果群组本身被选择则它本身会被删除而其子对象会成为群组原本父对象的子对象。该操作将返回被解除的群组的个数。

-unparentSelection(-ups)E

仅用于编辑。用来解除父子关系,作为父对象的群组或面板不会被删除。

该操作将返回被解除父子关系的对象个数。

-updateSceneBoundary(-usb)E

用来更新picker的显示范围,以便所有picker内容被显示。

基本上用途只在写转换器时,在所有picker对象被生成后,使用这个标签来刷新一下。

-unstackSelection(-uss)string unsignedintE

仅用于编辑。用来堆叠起来的按钮摊开来,

需要指定方向值horizontalvertical及模式整数值:0=简单模式,1=层次模式。

-website(-www)stringQ E

在查询模式下,这个标签返回picker设计者的网站,编辑模式则指定picker的作者网站。

这将方便使用picker的人可以了解picker设计者更多。

-zMoveSelection(-zms)stringE

仅用于编辑。用来改变所选Picker对象堆叠的深度值,可用的值 为:topbottom, 一个将按钮带到最上面,一个将按钮放到最底部。这个操作将返回被变动深度值的对象个数。

C 标签可以在创建模式中使用; E 标签可以在编辑模式中使用
Q 标签可以在查询模式中使用   M 标签可以在一条命令中多次使用
A 标签可以配合-animation标签进行动画.

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.

//update the scene boundary to show all the picker items.
MGPickerView -e -updateSceneBoundary $view;
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)