自定义搜索

使用搜索功能,您可以直接在字段中键入菜单、工具或命令来查找它们。通过将自己的运行时命令添加到结果中或定义标记来过滤结果,您可以自定义在键入特定搜索词时显示的结果。

自定义搜索首选项

  1. 打开“搜索”(Search)字段。
  2. 右键单击搜索字段,然后选择“首选项”(Preferences)

    Maya 将显示搜索首选项(Search preferences)窗口。

  3. 调整适当的首选项。

自定义标记

  1. 打开“搜索”(Search)字段。
  2. 在“搜索”(Search)字段上单击鼠标右键,然后选择“管理过滤标记”(Manage Filter Tags)
  3. 单击标记窗口右上角的齿轮图标,或单击鼠标右键以执行以下操作之一:
    • 新建标记(New Tag):添加新标记
    • 标签颜色(Label Color):更改标记颜色。
    • 重命名标记(Rename Tag):更改现有标记的名称。
    • 删除标记(Delete Tag):移除现有标记

添加新命令

使用 runTimeCommands,可以向“搜索”(Search)中添加新命令,例如用于第三方插件的命令。

在“搜索”(Search)中显示某个命令

  1. 在脚本编辑器中,创建一个带以下标志的 runTimeCommand:
    • -label :操作的名称。

    • -annotation :命令用途的简短描述。“搜索”(Search)也搜索此字符串。

    • -category :此操作在菜单中的位置,例如 Menu items.Common.Edit) - 非菜单项不需要此标志。

    • -command :要执行的命令。

    • -plugin :插件名称(如果命令与插件相关)- 这样,我们可以在运行相应命令之前加载相应插件(如果需要)(这将是应用程序范围的选项)。

    • -image :可选的图标路径。

    • -url :指向外部文档的可选自定义 URL。

    • -tags :命令的可选标记。例如 -tags "tag1;tag2"。

    • -keywords :帮助搜索结果的可选关键字,例如 -keywords "ocean; water"。

    例如,下面是新的“Bevel Cube”命令的已完成 runTimeCommand,包含在名为“customCommands.mel”的文件中:
    runTimeCommand
            -label      "Bevel Cube"
            -annotation "Create a bevelled cube"
            -command    "polyCube; polyBevel"
            -keywords   "chamfer"
            -tags       "Polygon Creation;Polygon Editing;YourStudio"
            bevelCube;
    
    
    注: 如果菜单项已经存在,则应将其指向其现有的 runTimeCommand,以避免出现重复代码。
    例如
    menuItem -rtc "UnlockNormals";

    这样,菜单项可以查找 runTimeCommand UnlockNormals 以获取其标签、注释、图像和命令。

  2. 若要与插件一起加载运行时命令,请将 MAYA_RUNTIME_COMMANDS 环境变量添加到插件 .mod 文件中。

    例如 MAYA_RUNTIME_COMMANDS=$MAYA_RUNTIME_COMMANDS:/path/to/your/customCommands.mel

    注: 路径应相对于插件模块。
  3. 重新启动 Maya。

    Maya 启动时,将会源化新的运行时命令。

有关添加新命令的重要说明

  • 不要结合使用 getPluginResourcerunTimeCommand否则,注册 runTimeCommand 时,将无法加载插件。

    而应使用 displayStringuiRes 以获取国际化的字符串。

    例如
    // 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"));
  • 尝试使 runTimeCommand MEL 文件尽可能精简,否则它可能会影响 Maya 的启动时间。
  • 如果希望与插件无关的项目显示在“搜索”(Search)中,只需要注册 runTimeCommand 文件,就像在 Maya 中处理任何其他自定义菜单一样(即通过 userSetup.mel)。数据库是实时的,如果在打开的 Maya 会话期间的任何时候注册新的 runTimeCommand,它将在“搜索”(Search)中可用。
    例如,如果您有一个名为“userSetup.py”的脚本,用于创建包含特殊 Foo 渲染脚本的菜单,您需要将以下内容:
    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)中。

相关主题