命令 (MEL/Python)
|
MGPickerView
|
跳转到: MEL概要. Python概要. 返回值. 标签. MEL例子. Python例子.
MEL概要
MGPickerView [-activate] [-addPanel] [-activePanelIndex] [-author] [-close] [-clearSelection] [-email] [-exportPathToNode] [-exist] [-fileVersion] [-getIdFromName] [-listLinks] [-list] [-mirrorSelection] [-message] [-namespaceChangedCommand] [-namespace] [-pickerDirPath] [-pickerEnterCommand] [-pickerFilePath] [-pickerLoadCommand] [-removeAll] [-remove] [-saveAs] [-saveAsSceneNode] [-saveAsTemplate] [-setClean] [-select] [-selectPickerButtons] [-selectMode] [-selectPanelButtons] [-selectPanelIndexButtons] [-syncPickerValue] [-saveToFolder] [-saveWithinSceneFolder] [-tabLabel][-updateSceneBoundary] [-website] viewIDString
Python概要
MGPickerView (viewIDString, [activate=boolean], [addPanel=string, string],[activePanelIndex=int], [author=string], [close=boolean], [clearSelection=boolean], [email=string], [exportPathToNode=[string, string]], [exist=boolean],[fileVersion=boolean],[getIdFromName=string], [listLinks=string], [list=string],[mirrorSelection=int], [message=string], [namespaceChangedCommand=[string, string]], [namespace=string], [pickerDirPath=boolean],[pickerEnterCommand=string, string], [pickerFilePath=boolean], [pickerLoadCommand=[string, string]], [removeAll=boolean], [remove=string], [saveAs=string], [saveAsSceneNode=[string, boolean], [saveAsTemplate=string], [setClean=string], [select=string], [selectPickerButtons=int],[selectMode=int], [selectPanelButtons=int], [selectPanelIndexButtons=[int, int]], [syncPickerValue=boolean], [saveToFolder=string], [saveWithinSceneFolder=boolean], [tabLabel=string], [updateSceneBoundary=boolean], [website=string])
MGPickerView不可撤消, 可以查询且可以编辑。
这个命令查询或编辑文档级别的属性/状态,或关于程序本身的一些属性/状态。
需要指定要查询或编辑的picker视图id。如果没有指定,则是针对当前激活的picker视图进行查询或编辑。
可以通过下面命令之一获得id:
MGPicker -q -currentPickerView; // 获取当前所执行的脚本所属于的视图的id,如picker的加载命令和鼠标进入命令。仅脚本执行过程中可获取。
MGPicker -q -activePickerView; // 获取当前激活视图的id.
MGPicker -q -findPickerView "pickerNodeOrFileName" 1 "namespace"; // 通过指定picker节点或文件名来查找特定的picker视图id.
MGPicker -q -listAllPickerViews; // 列出所有打开的picker视图的id.
MGPicker -e -createTempPicker; // 创建一个临时picker视图并返回其id.
MGPicker -e -createPicker "pickerName" "namespace" "filePath" "nodeName"; //创建一个picker视图并返回其id.
MGPicker -e -readPickerNode "nodeName"; // 读取场景picker节点并返回其所打开的picker视图的id.
MGPicker -e -readScenePicker "nodeName" "pickerName" "namespace" "pickerDataString"; // 读取场景picker节点并返回其所打开的picker视图的id.
MGPicker -e -readPickerFile "pickerFilePath" 1; // 读取picker文件并返回其所打开的picker视图的id.
返回值
取决于使用的标签,可能返回布尔,字符窜等类型的返回值。
|
标签
activate, addPanel, activePanelIndex, author, close, clearSelection, email, exportPathToNode, exist, fileVersion, getIdFromName, listLinks, list, mirrorSelection, message, namespaceChangedCommand, namespace, pickerDirPath, pickerEnterCommand, pickerFilePath, pickerLoadCommand, removeAll, remove, saveAs, saveAsSceneNode,saveAsTemplate, setClean, select, selectPickerButtons, selectMode, selectPanelButtons, selectPanelIndexButtons, syncPickerValue, saveToFolder, saveWithinSceneFolder, tabLabel, updateSceneBoundary, website
长名 (短名)
|
参数类型
|
属性
|
-activate(-act)
|
|
 
|
|
在查询模式,这个标签返回该picker视图是否当前被激活。在编辑模式则是激活该picker视图。
|
|
-addPanel(-ap)
|
|

|
|
指定一个面板的标签字符窜,及面板布局:"horizontal" 或 "vertical", 来创建一个新picker面板,并返回该面板id字符窜。
|
|
-activePanelIndex(-api)
|
|

|
|
指定一个面板的索引,则picker视图会自动平移并缩放以显示那个索引所代表的picker面板。每个picker面板在标题栏都有显示一个[数字],这个数字就是该面板的索引。
|
|
-author(-ath)
|
string
|
 
|
|
在查询模式下,这个标签返回picker设计者的名字,编辑模式则指定picker的作者。
|
|
-close(-cl)
|
boolean
|

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

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

|
|
导出Picker文件路径为picker节点,即保存路径为picker节点的pickerFilePath属性。
当Picker节点被加载时,对应的picker文件将被加载,路径支持由$ 或${}表示的环境变量。
需要指定要导出或编辑的Picker节点名称,及Picker文件路径。
|
|
-exist(-ex)
|
|

|
|
|
-fileVersion(-fv)
|
|

|
|
只能用于查询。用来返回picker视图的文件版本。
|
|
-getIdFromName(-gin)
|
string
|

|
|
只能用于查询。指定一个名字字符窜,将返回所有取这个名字的picker对象的id数组。
如果只有一个对象名字匹配到,它仍将返回一个只包含一个id的数组,你之后可以取第一个元素来作为该对象的id。没找到任何对象则返回空数组。这个标签主要用来避免在picker过程中硬写这些picker对象的id.
|
|
-listLinks(-ll)
|
string
|

|
|
只能用在查询模式下,用来返回特定类型的连接ID的字符窜数组,以 "源对象ID > 目标对象ID" 的格式。
指定一个连接类型字符窜,可用的值有"parentlink", "attributelink"(不区分大小写),你可以指定空字符窜或者 "parentlink|attributelink" 来返回所有类型的连接id。
|
|
-list(-ls)
|
string
|

|
|
只能用在查询模式下,用来返回特定类型的Picker对象ID的字符窜数组。
指定一个Picker对象类型字符窜,可用的值有 "selectButton", "commandButton", "attributeButton", "slider", "sliderHandle", "text", "panel",(不区分大小写),如果是空字符窜,将返回所有类型的Picker对象ID。
类型字符窜也支持组合,比如你想要列出所有的选择按钮及命令按钮,可以指定"selectButton|commandButton"。
|
|
-mirrorSelection(-ms)
|
int
|

|
|
利用picker对象的镜象关系,来镜象场景里的选择:
0 = 选择,1 = 加选,2 = 去选,3 = 反选。
|
|
-message(-msg)
|
string
|

|
|
用在查询模式下,这个标签返回picker设计者的信息,编辑模式则指定picker的作者给picker使用者的信息。
|
|
-namespaceChangedCommand(-ncc)
|
string script
|
 
|
|
查询/编辑picker文档/节点的命名空间改变命令。该命令在每次你修改picker视图的命名空间后被执行。
在查询模式,将返回字符窜数组,数组含两个元素,第一个是mel或python,代表命令的类型,第二个是实际的命令代码。
在编辑模式,您需要指定mel/python类型,及实际的命令代码,即两个字符窜作为参数。
|
|
-namespace(-ns)
|
string
|
 
|
|
用在查询模式则返回picker的namespace, 编辑模式则指定picker的命名空间。
指定的命名空间字符窜要符合maya命名空间的规范,不合法的字符会自动被转成下划线。
|
|
-pickerDirPath(-pdp)
|
|

|
|
这个标签只能用于查询模式来查询picker文件所在的目录。
|
|
-pickerEnterCommand(-pec)
|
string script
|
 
|
|
查询/编辑picker文档/节点的进入命令。进入命令在每次鼠标进入picker视图时被执行。
在查询模式,将返回字符窜数组,数组含两个元素,第一个是mel或python,代表命令的类型,第二个是实际的命令代码。
在编辑模式,您需要指定mel/python类型,及实际的命令代码,即两个字符窜作为参数。
|
|
-pickerFilePath(-pfp)
|
|

|
|
这个标签只能用于查询模式来查询picker文件完整路径。
|
|
-pickerLoadCommand(-plc)
|
string script
|
 
|
|
查询/编辑picker文档/节点的加载命令。加载命令在picker被加载后会立即被执行。
在查询模式,将返回字符窜数组,数组含两个元素,第一个是mel或python,代表命令的类型,第二个是实际的命令代码。
在编辑模式,您需要指定mel/python类型,及实际的命令代码,即两个字符窜作为参数。
|
|
-removeAll(-ra)
|
|

|
|
只能用在编辑模式,用来将场景所有picker对象删除清空。
|
|
-remove(-rm)
|
string
|
 
|
|
只用于编辑,来删除指定picker对象。需要指定是删除的对象id。可多重使用。
|
|
-saveAs(-sa)
|
string boolean
|

|
|
这个标签只能用于编辑模式来将当前picker另存为一个指定picker名称的外部picker文件,还需要指定一个是否覆盖已存在的布尔值。另存的文件将存放在maya的用户程序目录/MG_PickerData下当前picker工程目录里。
注意这个行为不会改变picker视图的id。
|
|
-saveAsSceneNode(-sas)
|
string boolean
|

|
|
这个标签只能用于编辑模式来将picker文件/节点另存为当前场景指定的节点。
指定一个0~1布尔值来决定是否改变当前picker文件/节点状态为所保存的节点。0相当于导出一个picker节点,1相当于另存为picker节点。即使节点已经存在,也将被覆盖。
注意这个行为不会改变picker视图的id。
|
|
-saveAsTemplate(-sat)
|
string boolean
|

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

|
|
这个标签只能用于编辑模式来把picker标记为干净没有未保存操作的状态。当您编写picker转换器时,你最后可能用这个标签来将当前picker标记成干净的状态,
这样这个picker的tab就会是绿色的点而不是红色的,并且它的所有撤消重做历史被清空。
|
|
-select(-sel)
|
string
|
  
|
|
在查询下将返回当前picker视图所选择的picker按钮的id数组。在编辑模式下将选择对应的picker按钮,注意是用来选择picker对象本身而不是maya节点,您必须指定picker按钮的id字符窜数组来执行相应的选择。
通常配合-selectMode来指定是加选,去选还是反选等。
|
|
-selectPickerButtons(-skb)
|
int
|

|
|
这个标签只能用于编辑模式来选择picker里所有面板里所有的选择按钮成员节点。常用于“选择全部”命令按钮。
使用0~3的整数来指定选择模式:
0 = 选择,1 = 加选,2 = 去选,3 = 反选。
|
|
-selectMode(-spb)
|
int
|

|
|
这个标签只能用于编辑模式来选择picker对象。注意是用来选择picker对象本身而不是maya节点。
使用0~3的整数来指定选择模式:0 = 选择,1 = 加选,2 = 去选,3 = 反选。
|
|
-selectPanelButtons(-spb)
|
int
|

|
|
这个标签只能用于编辑模式来选择picker面板里所有的选择按钮成员节点。常用于“选择全部”命令按钮。
在判断哪个是当前picker面板时,工具使用当前鼠标位置来判断,处于鼠标下的picker面板即是当前picker面板。
使用0~3的整数来指定选择模式:
0 = 选择,1 = 加选,2 = 去选,3 = 反选。
|
|
-selectPanelIndexButtons(-spi)
|
int int
|

|
|
这个标签只能用于编辑模式来选择特定面板索引的picker面板里所有的选择按钮成员节点。常用于“选择全部”命令按钮。
使用0~3的整数来指定选择模式:
0 = 选择,1 = 加选,2 = 去选,3 = 反选。
你需要为第二个标签指定一个合法的面板索引整数值。
|
|
-syncPickerValue(-spv)
|
|

|
|
这个标签只能用于编辑模式来更新picker的属性按钮及滑条的数值, 并且当场景有新的节点被创建,可以用这个来启动监视。
通常在maya属性值变动时picker会同步变动更新,不需要手动执行这个动作。
|
|
-saveToFolder(-stf)
|
string boolean
|

|
|
这个标签只能用于编辑模式来将picker文件/节点存到指定的目标目录。存储后的picker文件将在目标目录/picker名称目录下面。
还需要指定布尔值以控制是否覆盖已存在的文件。注意这个行为不会改变picker视图的id。
|
|
-saveWithinSceneFolder(-sws)
|
boolean
|

|
|
这个标签只能用于编辑模式来将picker文件/节点存到当前场景目录 / pickers目录下面。这个目录在加载相关picker会被自动搜索。
还需要指定布尔值以控制是否覆盖已存在的文件。注意这个行为不会改变picker视图的id。
|
|
-tabLabel(-tl)
|
string
|
 
|
|
查询模式下用来返回Picker视图的标签页的标签。
编辑模式下用来编辑Picker视图的标签页的标签及Picker视图的名称。
|
|
-updateSceneBoundary(-usb)
|
|

|
|
用来更新picker的显示范围,以便所有picker内容被显示。基本上用途只在写转换器时,在所有picker对象被生成后,使用这个标签来刷新一下。
|
|
-website(-www)
|
string
|

|
|
在查询模式下,这个标签返回picker设计者的网站,编辑模式则指定picker的作者网站以便使用picker的人可以了解picker设计者更多。
|
|
|
|
|
标签可以在创建模式中使用
|
标签可以在编辑模式中使用
|
标签可以在查询模式中使用
|
标签可以在一条命令中多次使用
|
MEL例子
// create a new picker named "myPicker"
string $view = `MGPicker -e -createPicker "myPicker" "wrongNamespace" "" ""`; //it is a untitled picker, not refer to a picker file / node.
MGPickerView -e -namespace "rightNamespace" $view; //edit the namespace of the picker.
//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 picker items.
MGPickerView -e -setClean $view; //set the picker we just created clean.
Python例子
import maya.cmds as cmd
#Create a new picker named "myPicker"
#it is a untitled picker, not refer to a picker file / node.
viewId = cmds.MGPicker (edit=True,createPicker=("myPicker","wrongNamespace","",""))
cmds.MGPickerView(viewId, edit=True,namespace="rightNamespace") #edit the namespace of the picker.
#To-Do: use MGPickerItem command to created picker items.
#....
#if you does create any picker items, this picker view will be completely empty.
cmds.MGPickerView(viewId, edit=True, author="Miguel",
website="http://twincodes.com",
email="mgpickerstudio@gmail.com",
message="Feel free to send feedback to me!") #edit the meta info of the current picker file.
cmds.MGPickerView(viewId, edit=True, updateSceneBoundary=True) #update the scene boundary to show all the picker items.
cmds.MGPickerView(viewId, edit=True, setClean=True) #set the picker we just created clean.
|