使用搜索功能,您可以直接在字段中键入菜单、工具或命令来查找它们。通过将自己的运行时命令添加到结果中或定义标记来过滤结果,您可以自定义在键入特定搜索词时显示的结果。
自定义搜索首选项
Maya 将显示搜索首选项(Search preferences)窗口。
自定义标记
使用 runTimeCommands,可以向“搜索”(Search)中添加新命令,例如用于第三方插件的命令。
在“搜索”(Search)中显示某个命令
-label :操作的名称。
-annotation :命令用途的简短描述。“搜索”(Search)也搜索此字符串。
-category :此操作在菜单中的位置,例如 Menu items.Common.Edit) - 非菜单项不需要此标志。
-command :要执行的命令。
-plugin :插件名称(如果命令与插件相关)- 这样,我们可以在运行相应命令之前加载相应插件(如果需要)(这将是应用程序范围的选项)。
-image :可选的图标路径。
-url :指向外部文档的可选自定义 URL。
-tags :命令的可选标记。例如 -tags "tag1;tag2"。
-keywords :帮助搜索结果的可选关键字,例如 -keywords "ocean; water"。
runTimeCommand -label "Bevel Cube" -annotation "Create a bevelled cube" -command "polyCube; polyBevel" -keywords "chamfer" -tags "Polygon Creation;Polygon Editing;YourStudio" bevelCube;
menuItem -rtc "UnlockNormals";
这样,菜单项可以查找 runTimeCommand UnlockNormals 以获取其标签、注释、图像和命令。
若要与插件一起加载运行时命令,请将 MAYA_RUNTIME_COMMANDS 环境变量添加到插件 .mod 文件中。
例如 MAYA_RUNTIME_COMMANDS=$MAYA_RUNTIME_COMMANDS:/path/to/your/customCommands.mel
Maya 启动时,将会源化新的运行时命令。
不要结合使用 getPluginResource 与 runTimeCommand否则,注册 runTimeCommand 时,将无法加载插件。
而应使用 displayString或 uiRes 以获取国际化的字符串。
// Register a string resource. Important: prefix your constants! m_myplugin.kFoo //not just kFoo. displayString -value "bar" m_myplugin.kFoo; // Print it using displayString print `displayString -query -v "m_myplugin.kFoo"`; // Print it using uiRes print uiRes("m_myplugin.kFoo"));
cmds.menuItem(p=renderingMenu, l='Submit to Foo', c='import foo_maya;foo_maya.submit_dialog()')
#Create runTimeCommand cmds.runTimeCommand('SubmitToFoo', d=True, label='Send to Foo', annotation='Send your scene to Foo for cloud rendering.', category='Menu items.Cloud.Render', command='import foo_maya;foo_maya.submit_dialog()', keywords='render', tags='Render' ) #Create menu cmds.menuItem(p=renderingMenu, rtc='SubmitToFoo')“Submit to Foo”脚本现在将显示在“搜索”(Search)中。