ジャンプ先: 概要. 戻り値. キーワード. フラグ. Python 例.

概要

callbacks([addCallback=script], [clearAllCallbacks=boolean], [clearCallbacks=boolean], [describeHooks=boolean], [dumpCallbacks=boolean], [executeCallbacks=boolean], [hook=string], [listCallbacks=boolean], [owner=string], [removeCallback=script])

注: オブジェクトの名前と引数を表す文字列は、カンマで区切る必要があります。これはシノプシスに示されていません。

callbacks は、取り消し不可能照会不可能、および 編集不可能 です。

このコマンドでは、Maya UI の作成時、キーの時間にコールバックを追加して UI を拡張できます。標準の Maya フックおよびコンテキストに応じてコールバックに渡す引数は、以下の「describeHooks」 UI を拡張するプラグインを追加するサード パーティもカスタム フックを追加できます。

戻り値

string[]

キーワード

ui, callback

フラグ

addCallback, clearAllCallbacks, clearCallbacks, describeHooks, dumpCallbacks, executeCallbacks, hook, listCallbacks, owner, removeCallback
ロング ネーム(ショート ネーム) 引数タイプ プロパティ
owner(o) string create
コールバックを登録するオーナーの名前。これは通常はプラグイン名になります。
hook(h) string create
コールバックを登録するフックの名前。
addCallback(ac) script create
指定したフックにコールバックを追加します。コールバックを追加する際にはオーナーも指定する必要があります。
removeCallback(rc) script create
指定したフック名の既存のコールバックを除去します。コールバックを除去する際にはオーナーも指定する必要があります。
clearCallbacks(cc) boolean create
指定したオーナーのコールバックをすべてクリアします。フックを指定した場合は、そのフックのコールバックとオーナーのみがクリアされます。
listCallbacks(lc) boolean create
指定したフック名のコールバックのリストを取得します。オーナーを指定した場合は、指定したフックのコールバックとオーナーのみがリストされます。
clearAllCallbacks(cac) boolean create
すべてのフックおよびオーナーのすべてのコールバックをクリアします。これは、Maya および他のサード パーティが登録したすべてのコールバックに影響するため、通常プラグインの開発およびテスト時のみ使用します。
executeCallbacks(ec) boolean create
指定したフックのコールバックを、実行時に追加の引数を各コールバックに渡しながら実行します。実行された各コールバックの戻り値を含む配列(MEL)またはリスト(Python)を返します。コールバックが値を返さない場合、配列は空の文字列(MEL)または None (Python)になります。
dumpCallbacks(dc) boolean create
すべてのフックおよびオーナーによって登録されたすべてのコールバックのリストを取得できます。デバッグに便利です。
describeHooks(dh) boolean create
標準の Maya フックをリストします。以下にフック、およびそれに関連付けられた引数と戻り値を示します。サード パーティによって追加されたカスタム フックはリストには含まれていません。

hyperShadePanelBuildCreateMenu
このフックは、ハイパーシェード パネルの作成メニューにコンテンツを追加するためにコールされます。これは、標準の Maya ノード エントリの作成後にコールされます。

このコールバックには、引数や戻り値はありません。適切な Maya UI の外観を保持するには、menuItem -divider true を使用し、これらのコールバックが返される直前にメニュー項目分割を追加する必要があります。

hyperShadePanelBuildCreateSubMenu
このフックは、標準の Maya ノードとカスタム レンダラ シェーディング ノードを一緒にリストしない分類文字列を取得するためにコールされます。

このコールバックには引数はありません。

  • 戻り値: 次のような分類文字列rendernode/myrenderer
hyperShadePanelPluginChange
このフックは、ハイパーシェード パネルを再構築する必要があることを Maya に通知する、プラグイン変更イベント(ロード/アンロード)が発生するとコールされます。
  • classification (文字列): プラグイン ノードの分類文字列(別のプラグインのものである可能性もあります)
  • changeType (文字列): loadPlugin または unloadPlugin のいずれ
  • 戻り値: (int)プラグインがこの分類のノードを対象としており、ハイパーシェードの再構築が必要な場合は 0 以外
createRenderNodeSelectNodeCategories
このフックは、[レンダー ノードの作成(Create Render Node)]ダイアログの構築時に、サード パーティのノードが既定で選択されることを許可する場合にコールされます。標準のフラグ形式は、-allWithMyRendererUpで、選択項目はコールバックのツリー リスタで設定できます。

このコールバックには戻り値はありません。

  • flag (文字列): [レンダー ノードの作成(Create Render Node)]ダイアログ コマンドに渡される、先頭のマイナス(-)を除去したフラグ
  • treeLister (文字列): 影響を受けるツリー リスタ ウィジェット

たとえば、次のようなコールバックになります。

global proc myRendererCreateRenderNodeSelectNodeCategoriesCallback(string $flag, string $treeLister){
    if($flag == "allWithMyRendererUp") {
        treeLister -e -selectPath "myrenderer" $treeLister;
    }
}
createRenderNodePluginChange
このフックは、[レンダー ノードの作成(Create Render Node)]ダイアログを閉じる必要があるかどうかを判断するプラグインの変更イベントが発生したときにコールされます。
  • classification (文字列): プラグイン ノードの分類文字列(別のプラグインのものである可能性もあります)
  • 戻り値: (int)プラグインがこの分類のノードを対象としており、[レンダー ノードの作成(Create Render Node)]ダイアログを閉じる必要がある場合は 0 以外
renderNodeClassification
このフックは、カスタム レンダラ シェーディング ノード用の分類文字列を取得するためにコールされます。これは、指定したノード タイプがプラグイン レンダラに属するかどうかを判断するために使用されます。

このコールバックには引数はありません。

  • 戻り値: 次のような分類文字列rendernode/myrenderer
createRenderNodeCommand
このフックは、プラグイン レンダラに、レンダラ ノード treeLister およびノード エディタからノードを作成する独自のコマンドを登録する機会を与えるためにコールされます。コールバックでは、問題のノード タイプの分類から自身のタイプであるかどうかを判断する必要があります。該当する場合、そのタイプの新しいノードを作成する適切なコマンドを返します。

  • postCommand (文字列): 作成コマンドの後に実行するコマンド
  • type (文字列): nodeType
  • 戻り値: (文字列) MEL 作成コマンド
buildRenderNodeTreeListerContent
このフックは、プラグイン レンダラに、レンダラ ノード ツリー リスタにそのコンテンツを追加する機会を与えるためにコールされます。

  • renderNodeTreeLister (文字列): レンダラ ノード ツリー リスタ
  • postCommand (文字列): 作成後に実行するコマンド
  • filterString (文字列): フィルタのスペース区切りのリスト
AETemplateCustomContent
このフックは、ソースが AEdependNodeTemplate のノードにアトリビュート エディタのコンテンツを追加する機会をプラグインに与えるためにコールされます。

  • nodeName (文字列): アトリビュート エディタが構築されているノードの名前
firstConnectedShader
このフックは、指定したシェーディング エンジンに接続された一次カスタム シェーダを判断するためにコールされます。

  • nodeName (文字列): シェーディング エンジンの名前
  • returns (文字列): 存在する場合、カスタム シェーダの名前
allConnectedShaders
このフックは、指定したシェーディング エンジンに接続されているすべてのシェーダを判断するためにコールされます。

  • nodeName (文字列): シェーディング エンジンの名前
  • 戻り値(文字列): 接続されているカスタム シェーダのコロン区切りのリスト(shader1:shader2:shader3)
renderLayerPresetMenu
このフックは renderLayer ノードにプリセットを追加する機会をプラグインに与えるためにコールされます。

  • nodeName (文字列): renderLayer ノードの名前
addBakingMenuItems
このフックは、グローバルの[レンダー(Render)] > [ライティング/シェーディング(Lighting/Shading)]メニューにベイク メニュー項目を追加する機会をプラグインに与えるためにコールされます。

  • menuItemAnchor (文字列): 後ろに新しいベイク メニュー項目を挿入する menuItem の名前。
addVertexBakingMenuItems
このフックは、グローバルの[ポリゴン(Polygon)] > [カラー(Color)]メニューにベイク メニュー項目を追加する機会をプラグインに与えるためにコールされます。

addPrelightMenuItems
このフックは、グローバルの[ポリゴン(Polygon)] > [カラー セット エディタ(Color Set Editor)]メニューにプリライティング メニュー項目を追加する機会をプラグインに与えるためにコールされます。

addRMBBakingMenuItems
このフックは、右マウス ボタン メニューにベイク メニュー項目を追加する機会をプラグインに与えるためにコールされます。

  • objectName (文字列): 右マウス ボタン イベントが発生したオブジェクトの名前
addMayaRenderingPreferences
このフックは Maya の[レンダリング プリファレンス(Rendering Preferences)]セクションにカスタム プリファレンスを追加する機会をプラグインに与えるためにコールされます。

updateMayaRenderingPreferences
このフックは Maya の[レンダリング プリファレンス(Rendering Preferences)]セクションのカスタム プリファレンスを更新する機会をプラグインに与えるためにコールされます。

addMayaMuscleMenuItems
このフックは、Maya マッスルの[ディスプレイスメント(Displace)]メニューにメニュー項目を追加する機会をプラグインに与えるためにコールされます。

  • menuItemAnchor (文字列): 後ろに新しい Maya マッスル メニュー項目を挿入する menuItem の名前。
addMayaMuscleShelfButtons
このフックは、Maya マッスル シェルフに項目を追加する機会をプラグインに与えるためにコールされます。

addBackburnerRendererMenuItems
このフックは、Maya の利用可能なレンダラの Backburner リストに項目を追加する機会をプラグインに与えるためにコールされます。注: 追加した menuItem の名前は、レンダラと同等にショート ネームにする必要があります。例: Maya ソフトウェア レンダラによって「sw」という名前の menuItem が追加されます。

provideAETemplateForNodeType
このフックは、対応する AE'nodeType'Template プロシージャを持たないノードに UI テンプレートを提供する機会をプラグインに与えるためにコールされます。

  • nodeType (文字列): AE が構築されているノードのタイプ
  • 戻り値(文字列): 要求されたノード タイプの AETemplate として使用する MEL コマンドまたはプロシージャの名前
AEnewMultiHandler
このフックは、マルチアトリビュートに UI 作成ハンドラを提供する機会をプラグインに与えるためにコールされます。

  • nodeName (文字列): AE が構築されているノードの名前
  • atributeName (文字列): マルチアトリビュートの名前
  • uiName (文字列): アトリビュートの UI 名
  • changedCommand (文字列): マルチアトリビュートの値を変更したときに実行される MEL コマンドまたはプロシージャ
  • elementIndexString (文字列): マルチアトリビュートの要素があるインデックスのコロン区切りのリスト
  • 戻り値(文字列): コールバックでアトリビュートを処理した場合、作成した最上位の UI 要素のフル ネームを返す必要があります。そうでない場合は、空の文字列を返す必要があります。
AEreplaceMultiHandler
このフックは、マルチアトリビュートに更新ハンドラを提供する機会をプラグインに与えるためにコールされます。

  • layoutName (文字列): マルチアトリビュートを表す Maya UI コンポーネントの明確に定義された名前
  • nodeName (文字列): AE が構築されているノードの名前
  • atributeName (文字列): マルチアトリビュートの名前
  • changedCommand (文字列): マルチアトリビュートの値を変更したときに実行される MEL コマンドまたはプロシージャ
  • elementIndexString (文字列): マルチアトリビュートの要素があるインデックスのコロン区切りのリスト
  • 戻り値(整数): コールバックでマルチアトリビュートを処理した場合は true (1)、Maya で既定の処理を提供する必要がある場合は false (0)
AEnewAttributeHandler
このフックは、アトリビュートに UI 作成ハンドラを提供する機会をプラグインに与えるためにコールされます。

  • nodeName (文字列): AE が構築されているノードの名前
  • atributeName (文字列): アトリビュートの名前
  • uiName (文字列): アトリビュートの UI 名
  • changedCommand (文字列): アトリビュートの値を変更したときに実行される MEL コマンドまたはプロシージャ
  • 戻り値(文字列): コールバックでアトリビュートを処理した場合、作成した最上位の UI 要素のフル ネームを返す必要があります。そうでない場合は、空の文字列を返す必要があります。
AEreplaceAttributeHandler
このフックは、アトリビュートに更新ハンドラを提供する機会をプラグインに与えるためにコールされます。

  • nodeName (文字列): AE が構築されているノードの名前
  • atributeName (文字列): アトリビュートの名前
  • changedCommand (文字列): アトリビュートの値を変更したときに実行される MEL コマンドまたはプロシージャ
  • 戻り値(整数): コールバックでアトリビュートを処理した場合は true (1)、Maya で既定の処理を提供する必要がある場合は false (0)
provideClassificationStrings
このフックは、「shader/surface」分類ネームスペースにノードを追加するすべてのサード パーティが指定する必要があります。

  • 戻り値(文字列): さまざまなプラグイン ノードの分類を表すコロン区切りのリスト
provideClassificationStringsForFilteredTreeLister
このフックは「createAssignNewMaterialTreeLister」によってコールされ、ツリー リスタ ビルダに渡される分類フィルタにアペンドする機会をプラグインに与えます。新しい分類がそれぞれ空白で区切られている文字列を返す必要があります。

  • currentFilterString (文字列): 現在の分類を表す、空白で区切られた文字列
nodeCanBeUsedAsMaterial
このフックは RMB の[お気に入りのマテリアルの割り当て]メニューで使用され、マテリアルとして使用できるシェーディング ノードを定義します。ノードをマテリアル ノードとして使用できる場合は「true」、できない場合は「false」を返す必要があります。

  • nodeId (文字列): 照会するシェーディング ノードのノード ID
  • nodeOwner (文字列): ノードが属するプラグインの名前
addHeaderContentToMayaLambertianShadersAE
このフックは、Maya のランベルトから生じるシェーダのアトリビュート エディタのヘッダーにコンテンツを追加する機会をプラグインに与えるためにコールされます。

  • nodeName (文字列): アトリビュート エディタが構築されているノードの名前
provideOutputAttributeNameForTextureNode
このフックは、テクスチャ ノードに異なる出力アトリビュート名を提供する機会をプラグインに与えるためにコールされます。このフックが提供されない場合、「outColor」が使用されます。

  • nodeName (文字列): 照会されるテクスチャ ノードの名前
  • 戻り値(文字列): テクスチャ ノードの出力アトリビュート名
addItemsToHypergraphNodePopupMenu
このフックは、ハイパーグラフ ノード ポップアップ メニューに項目を追加する機会をプラグインに与えるためにコールされます。

  • nodeName (文字列): ハイパーグラフ ノード メニューが構築されているノードの名前
addItemsToRenderLayerEditorPopupMenu
このフックは、レンダー レイヤ エディタ ポップアップ メニューに項目を追加する機会をプラグインに与えるためにコールされます。

  • layerName (string): ポップアップ メニューが構築されているレンダー レイヤの名前
preventMaterialDeletionFromCleanUpSceneCommand
このフックは cleanUpScene コマンドによってコールされ、マテリアル ノードが使用中で削除してはならないことを伝える機会をプラグインに与えます。フックは各シェーダ インスタンスのプラグ/接続ペアごとに 1 回コールされます。

  • shader (文字列): 削除するシェーダ ノードの名前
  • plug (文字列): 照会されたプラグの名前
  • connection (文字列): 照会された接続の名前
connectNodeToNodeOverrideCallback
このフックは、ドラッグ&ドロップの動作を再定義する機会をプラグインに与えるためにコールされます。

  • srcNode (文字列): ソース ノード(ドラッグしたノード)の名前
  • dstNode (文字列): 目的のノード(ドロップ先のノード)の名前
  • 戻り値(整数): この接続の結果として通常生じる操作を Maya が実行する必要がある場合は 1 を返します。オーバーライドしてカスタムの動作を提供する場合は 0 を返します。

フラグはコマンドの作成モードで表示できます フラグはコマンドの編集モードで表示できます
フラグはコマンドの照会モードで表示できます フラグに複数の引数を指定し、タプルまたはリストとして渡すことができます。

Python 例

import maya.cmds as cmds

def myCallbackFunction(arg1, arg2):
		return arg1 + arg2
# add a new callback for myPlugin to be called when creating the attribute editor UI
cmds.callbacks(addCallback=myCallbackFunction, hook='desiredHook', owner='myPlugin')
# remove an individual callback
cmds.callbacks(removeCallback=myCallbackFunction, hook='desiredHook', owner='myPlugin')
# remove all callbacks for myPlugin for a specified hook
cmds.callbacks(clearCallbacks=True, hook='desiredHook', owner='myPlugin')
# remove all callbacks for myPlugin for all hooks
cmds.callbacks(clearCallbacks=True, owner='myPlugin')
# list callbacks for a specified hook
callbacks = cmds.callbacks(listCallbacks=True, hook='desiredHook')
# list callbacks for a specified hook and for a specified owner
callbacks = cmds.callbacks(listCallbacks=True, hook='desiredHook', owner='myPlugin')
# get a list of the standard Maya hooks
cmds.callbacks(describeHooks=True)
# execute the callbacks for the hook 'desiredHook'
results = cmds.callbacks('arg1', 'arg2', executeCallbacks=True, hook='desiredHook')