返回首页 >> Maya文档 >> maya创建自定义平视显示仪读数

创建自定义平视显示仪读数


使用 headsUpDisplay MEL 命令可以在平视显示仪中创建或编辑自定义读数。

下文将说明使用该命令的基础知识。阅读在线帮助中的 headsUpDisplay 命令文档,获取该命令使用和标志的全面说明。

相关主题

在视图(平视显示仪)顶部上方显示信息
组成部分

程序

创建返回要在平视显示仪中显示的信息的 MEL 程序。

更新事件

确定 Maya 何时需要更新显示项目。例如,显示项目显示有关选定对象的信息,则 Maya 只需在选择发生更改时更改显示项目。这是触发显示更新的事件。

Maya 有很多可以侦听的事件。使用 headsUpDisplay -listEvents 可以查看所有事件的列表。

如果更新根据的是基于选择的事件(“SelectionChanged”或“SomethingSelected”),则可以使用 -nodeChanges 标志将事件侦听细化到仅侦听选定节点特定更改类型的触发。

-nodeChanges "attributeChange" 在选定节点上任何属性发生更改时触发。

-nodeChanges "connectionChange" 在选定节点上任何输入或输出发生更改时触发。

-nodeChanges "instanceChange" 在任何选定的实例化节点发生更改时触发。

区域和块位置

选择用于项目在其中显示的列。这称为区域。下图显示了命令用于指示每个列的数字。0 是左上角,9 是屏幕右下角。

0
1
2
3
4

5
6
7
8
9

在区域内选择项目在其上显示的线。这称为块。

标签

选择在显示线上显示于信息之前的标签,例如“位置:”。

命令

创建平视显示仪项目:

headsUpDisplay
-section <section number>
-block <block number>
-label "<label>"
-command "<procedure()>"
-event "<event>"
<object name>;
然后,显示项目:

headsUpDisplay -edit -visability 1 <object name>;
或者隐藏项目:

headsUpDisplay -edit -visability 0 <object name>;
请参见以下示例。

命令所拥有的选项数多于此处所述项目数,特别是更改显示项目的外观和检查块使用情况的选项。阅读 headsUpDisplay 命令文档,获取详细信息。

使更改永久有效

将创建平视显示仪项目(以及任何关联的用户界面)的命令添加到 userSetup.mel 中可以将其永久添加到 Maya 副本中。

样例

例如,要在平视显示仪中显示选定对象的 XYZ 坐标,则创建返回选定对象 XYZ 坐标的 MEL 程序(例如,objectPosition())。

objectPosition 程序

global proc float[] objectPosition ()
{
string $selectedNodes[] = `selectedNodes`;
float $position[3];
if (size($selectedNodes) > 0)
{
string $mainObject = $selectedNodes[ (size($selectedNodes) - 1) ];
$position[0] = `getAttr $mainObject.translateX`;
$position[1] = `getAttr $mainObject.translateY`;
$position[2] = `getAttr $mainObject.translateZ`;
}
else
{
$position[0] = 0;
$position[1] = 0;
$position[2] = 0;
}
return $position;
}
headsUpDisplay 命令

然后使用 headsUpDisplay 命令创建平视显示仪对象,并添加用户界面以启用或禁用显示项目。

// Create custom HUD objects
// To create a script like this for testing, see the command documentation
// for the headsUpDisplay command.
//
headsUpDisplay
-section 4
-block 5
-label "Position:"
-command "objectPosition()"
-event "SelectionChanged"
-nodeChanges "attributeChange"
HUDObjectPosition;
// Add menu items to control the custom items
//
global string $gHeadsUpDisplayMenu;
// Add a divider to separate Maya items from custom items
menuItem -parent $gHeadsUpDisplayMenu -divider true;
// Add one menu item per heads up display object created above
//
menuItem -parent $gHeadsUpDisplayMenu
-checkBox true
-label "Object Position"
-command "headsUpDisplay -e -vis 1 HUDObjectPosition"
-annotation "Object Postion: Toggle the display of object position"\
myObjectPostionItem;
请将您关于此页内容的评论发送给我们

(www.cgtsj.com)