基本概念

 
 
 

次のセクションでは、Maya のスクリプティングの基本概念について説明し、これを使用するとどうなるのか理解できるようにします。

コマンド構成

Maya はコマンドベースで構成されており、すべての操作はコマンドで行われます。あらゆる Maya 機能のコマンドは、メニュー、ツール、ダイアログ ボックスなどの Maya のユーザ インタフェースにリンクされたスクリプト言語コマンドを介してアクセスされます。実際、Maya でやりとりするあらゆるものにスクリプト言語コマンドが使用されています。同様に、Maya がサポートするスクリプト言語で Maya のコマンドを入力することもできます。

すべての Maya コマンドには複数の引数があり、コマンドをどのように実行するかを設定します。コマンドを実行するには、引数とその明示的または暗示的値が必要です。

引数に値を設定するには、Maya のスクリプト言語ではフラグを使用します。フラグにより、Maya コマンドのどの引数にどの値を設定するかをスクリプト言語に伝えます。引数に割り当てる値がフラグの後に続きます。

MEL と Python のフラグには、ショート ネームとロング ネームがあります。フラグのショート ネームとロング ネームのどちらを使用しても、コマンドはまったく同じように実行されます。ロング ネームは意味がわかりやすいため、初心者にはこちらの方が便利でしょう。ショート ネームはフラグ名を省略したもので、上級者向けです。

Maya のスクリプト言語

Maya は次の 2 つのスクリプト言語をサポートしています。

Maya のユーザ インタフェースは、Maya コマンドを実行する(コールする)スクリプトを使用して構築されています。Python は最近になって Maya に追加されたため、ユーザ インタフェースからアクセスされるスクリプトの大半は MEL で記述されたものです。

たとえば、シェルフ上の球アイコンをクリックすると、Maya は球を作成する MEL コマンドをコールし、メニューからアイテムを選択すると、Maya はそのメニュー項目に関連するコマンドを実行します。

Maya にコマンドを入力する

Maya にスクリプト コマンドを入力するには、次のいくつかの方法があります。

また、MEL や Python の外部ファイルをロードして、スクリプト エディタを使用して実行することもできます。詳細については、スクリプト ファイルをロードするを参照してください。

MEL の外観

MEL の呼び出しコマンドは、コマンドの後にフラグと引数の組み合わせが続く基本構造からなります。MEL ではフラグの前にハイフン記号を付けます。

すべての·MEL·コマンドは大文字/小文字を区別します。つまり、SPHEREsphere と同じではありません(エラーメッセージを返します)。

フラグがなければ、コマンドは既定の引数で実行します。必要な引数がなければ、コマンドは失敗します。

注:

また、MEL には C プログラム言語と同じ方法でコマンドやフラグを実装する、代替の構文もあります。詳細については、プログラマ向け MEL (Maya ユーザ ガイド)を参照してください。

MEL に関するヘルプにアクセスする

MEL に関するヘルプにアクセスするには、以下の 3 通りの方法があります。

Python の基本

Python と MEL は、Maya ではどちらも名の知れた同等の機能を持つスクリプト言語です。Python は MEL がアクセスできるすべての Maya コマンドにアクセスできます。

Python は、Python モジュール maya.cmds を介して Maya コマンドにアクセスします。Python のモジュールは、Python に機能を追加するコマンドのセットです。モジュールのコマンドを使用するには、使用する前にモジュールを読み込んでおく必要があります。

Python のフラグは、Python の名前が付いた引数で実装されます。変更する引数を指定し、代入演算子(=)を使用して引数に新しい値を割り当てます。

このコマンドまたは他のサンプル コマンドを実行するには、最初に Python モジュールを読み込んでおく必要があります。Python コマンドの入力を開始する前に、import maya.cmds と入力してください。

すべての Python コマンドは大文字/小文字を区別します。つまり、maya.cmds.SPHEREmaya.cmds.sphere と同じではありません(エラーメッセージを返します)。

Python のヘルプにアクセスする

Python に関するヘルプは、次のいくつかの方法でアクセスできます。