検索をカスタマイズする

検索(Search)を使用すると、メニュー、ツール、またはコマンドをフィールドに入力するだけで検索できます。特定の検索語句を入力した場合に表示される結果をカスタマイズするには、結果に独自のランタイム コマンドを追加するか、結果をフィルタするタグを定義します。

検索(Search)プリファレンスをカスタマイズするには

  1. 検索(Search)フィールドを開きます。
  2. 検索(Search)フィールドを右クリックしてプリファレンス(Preferences)を選択します。

    Maya に、検索プリファレンス(Search preferences)ウィンドウが表示されます。

  3. 適切なプリファレンスを設定します。

タグをカスタマイズするには

  1. 検索(Search)フィールドを開きます。
  2. 検索フィールドを右クリックしてフィルタ タグを管理(Manage Filter Tags)を選択します。
  3. タグ ウィンドウの右上にある歯車アイコンをクリックするか、タグ ウィンドウで右クリックして以下のいずれかを実行します。
    • 新しいタグ(New Tag): 新規タグを追加します。
    • ラベルのカラー(Label Color): タグの色を変更します。
    • タグの名前を変更(Rename Tag): 既存のタグの名前を変更します。
    • タグを削除(Delete Tag): 既存のタグを削除します。

新しいコマンドを追加する

runTimeCommands を使用して、サードパーティ製プラグインのコマンドなど、新しいコマンドを検索(Search)に追加できます。

検索に表示するコマンドを取得するには

  1. スクリプト エディタ(Script Editor)で、次のフラグを指定して runTimeCommand を作成します。
    • -label : アクションの名前。

    • -annotation : コマンドの動作についての簡単な説明。検索(Search)で、この文字列を検索します。

    • -category : このアクションがメニューのどこにあるかを示します(例: メニュー items.Common.Edit)。このフラグは、メニュー以外の項目には必要ありません。

    • -command : 実行するコマンド。

    • -plugin : コマンドが関連している場合のプラグインの名前 - これにより、コマンドを実行する前にプラグインを(必要に応じて)ロードすることができます(これはアプリ全体のオプションになります)。

    • -image : アイコンへのオプションのパス。

    • -url : 外部ドキュメントのオプションのカスタム URL。

    • -tags : コマンドに使用するオプションのタグ。Eg. -tags "tag1;tag2".

    • -keywords : 結果の検索に役立つオプションのキーワード。例: -keywords "ocean; water"。

    たとえば、以下は「customCommands.mel」という名前のファイルに含まれる、新しい「Bevel Cube」コマンドのために作成した runTimeCommand です。
    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 envar をプラグインの .mod ファイルに追加します。

    e.g. MAYA_RUNTIME_COMMANDS=$MAYA_RUNTIME_COMMANDS:/path/to/your/customCommands.mel

    注: パスは、プラグイン モジュールへの相対パスにする必要があります。
  3. Maya を再起動します。

    Maya の起動時に新しいランタイム コマンドが読み込まれます。

新しいコマンドを追加する際の重要な注意事項

  • コマンド getPluginResource は、 runTimeCommandsと一緒に使用しないようにします。使用すると、runTimeCommands が登録されたときにプラグインがロードされません。

    代わりに 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"));
  • runTimeCommands の MEL ファイルはできるだけ簡潔にします。そうでないと、Maya の起動時間が影響を受ける可能性があります。
  • プラグインに関係のない項目を検索(Search)に表示する場合は、他のカスタム メニューと同様に、runTimeCommand ファイルを Maya に登録する必要があります(つまり、userSetup.mel を使用します)。データベースはライブ状態の場合、Maya セッションが開いている任意の時点で新しい runTimeCommand を登録すると、検索(Search)で使用可能になります。
    たとえば、特別な Foo レンダリング スクリプトを含むメニューを作成する「userSetup.py」という名前のスクリプトがある場合は、以下を変換する必要があります。
    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)に表示されます。

関連項目