プロシージャをコールする

定義済み MEL プロシージャを使用することは、MEL コマンドや関数を使用することと同じです。上記の MEL プロシージャ helloValue を実行するには、スクリプト、スクリプト エディタ(Script Editor)、またはコマンド ライン(Command Line)に MEL プロシージャ名を入力します。

helloValue( 1, "Jake" );
// Result: Hello Jake, number 1 //

helloValue プロシージャのコールを正常に終了させるには、整数と文字列の引数が必要です。プロシージャを実行するもう 1 つの方法では、カッコやカンマは使用しません。たとえば、この方法で helloValue プロシージャを実行するには、次のように入力します。

helloValue 7 "Torq";
// Result: Hello Torq, number 7 //

外部プロシージャをコールする

定義されていないコマンドがあると、Maya はスクリプトのパスに沿ってコマンドと同じ名前(ファイル名の .mel 拡張子は除く)の MEL スクリプトを検索します。

ファイルが見つかったら、そのファイル内のすべてのグローバル MEL プロシージャを宣言し、コールしたプロシージャがファイル内に存在する場合、それを実行します。

たとえば、あるスクリプト フォルダに sayWhat.mel という次のような内容のファイルがあるとします。

// This is a local procedure
// that is only visible to the code in this file.
proc red5() {print("red5 standing by...\n");}
// This is a global procedure. When this file
// is sourced, this procedure will become
// available.
global proc GoGo() {print("GoGo online\n");}
// This procedure has the same name as this file
// (without .mel on the end).
global proc sayWhat() {print("sayWhat online\n");}

コマンド ラインで関数 sayWhat をコールしようとした場合:

  1. sayWhat という内部コマンドはないため、スクリプトパスから sayWhat、または sayWhat.mel というファイルが検索されます。
  2. スクリプト ディレクトリの 1 つにファイル sayWhat.mel スクリプトが見つかった場合、Maya はコールしようとした名前のプロシージャがファイル内に存在するかどうかを確認します。そのプロシージャが存在する場合、Maya はそのプロシージャをコールします。この例では、sayWhat という名前のプロシージャがファイル内に存在するため、プロシージャが実行されて次のように出力されます。
sayWhat online
  1. GoGo グローバル プロシージャが宣言されているため、コマンド ライン(Command Line)または スクリプト エディタ(Script Editor) に GoGo と入力して、プロシージャを実行することができます。
    注:

    MEL スクリプトを作成し保存する場合は、このスクリプトにコーディングされたプロシージャを外部的にコールする前に、スクリプトを調達する必要があります。これは、Mayaでは コマンド ライン(Command Line)またはスクリプト エディタ(Script Editor)から外部プロシージャをコールしようとしたときではなく、起動時およびコマンドでスクリプトが調達されるからです。スクリプトを調達するには、スクリプト エディタ(Script Editor)ファイル > スクリプトのソース(File > Source Script)コマンドを使用するか、または Maya を再起動します。

    スクリプト調達の詳細については、「外部 MEL スクリプト ファイルを実行する」を参照してください。