簡単なスクリプト

MELスクリプトとは

MEL コマンドはファイルに書いておくと Script Editor から読み込むことによって何度でも実行できます。
このファイルに書き込んである MELコマンドを MELスクリプトと言います。
ファイルに書いておけば、そのファイルを消さない限り MAYA に読み込むことによって何度でも同じコマンドを実行できるし、 後で必要に応じてコピーして書き換えてゆくことによって違う処理を実行することができます。
そして、後で学習するように変数・制御構造などを使用することによって複雑な処理を行うプログラムを作ることができるようになります。
また、MELのスクリプトはファイル名を変えれば同じディレクトリ(フォルダー)に、いくつでも作っておくことができます。

作業用のディレクトリ(フォルダー)作成

これから授業を進めてゆく時の作業用ディレクトリとしてホームの下に mel という名前のディレクトリを作成しておきましょう。 (以下の % はコマンドプロンプトです)

% cd ← ホームディレクトリへ移動(すでにホームディレクトリにいる場合は必要無し)
% mkdir mel ← mel ディレクトリを作成
% cd mel ← mel ディレクトリに移動(以後この中で作業をします)

以後の授業で作成する MEL スクリプトはすべてこの mel ディレクトリの中に作るようにします。

スクリプトを作ってみる

スクリプトの作り方と実行例

まず、簡単な MEL スクリプトを作る練習をしてみましょう。

  1. まず、mel ディレクトリの中に test.mel というファイルをエディター(vi)によって作ります。
    % vi test.mel
  2. ファイル(test.mel)の内容は、以下のように書いておきます。
    sphere;
    scale 1 3 1;
    
  3. ファイルをセーブ(:wq)してエディタ (vi) を終了します。
  4. Script Editor から test.mel を読み込んで実行します。
    そのためには以下の2種類の方法があります。
  5. y 軸方向にスケールがかかった球が表示されます。
    test.mel によって表示された球
  6. もう一度、エディタによって test.mel を開いてください。
    そして、test.mel の内容を以下のように書き換えます。
    sphere;
    scale 2 1 1;
    move 3 0 0;
    
  7. 書き換えたら、ファイル(test.mel)をセーブして、エディタを終了してください。
  8. 書き換えられた MEL スクリプトは、あらためて Script Editor に読み込んで実行する必要があります。
    File → Open Script... または File → Source Script... によって読み込んで実行してください。
  9. 2 個目の球が表示されます。
    [コマンドの表示された Script Editor]

スクリプトの保存方法

Script Editor 内に表示されているコマンドをファイルに保存することができます。
保存しておいたファイルは上記の方法によっていつでも実行できます。

  1. Script Editor のインプットウインドウに以下のようなコマンドを打ち込んでください。
    [コマンドの表示された Script Editor]
  2. 打ち込んだコマンドをマウスで選択します。
    [コマンドが選択された Script Editor]
  3. Script Editor の File → Save Selected... によってファイルに保存します。
    保存するファイル名は最後に .mel をつけた名前にする。
    ここでは test2.mel にしておいてください。
    [ファイルダイアログ]
  4. では、保存した MEL スクリプトを読み込み直して実行してみましょう。
    (2, 3, 4) の位置に球が表示されたでしょうか。
    [test2.mel を実行した結果]

Script Editor の メニュー

Script Editor のメニューについて一通り説明しておきましょう。

[Script Editor の File メニュー]
File → Open Script...
Script Editor に読み込んだ MEL スクリプトをインプットウインドウに表示します。
File → Source Script...
読み込んだ MEL スクリプトを実行します。
File → Save Selected...
Script Editor 上で選択された部分の MEL スクリプトをファイルに保存します。
File → Save Selected to Shelf
Script Editor 上で選択された部分の MEL スクリプトを Shelf に登録します。
マウスのドラッグ・アンド・ドロップによっても同じことが可能です。
[Script Editor の Edit メニュー]
Edit → Select All
インプットウインドウに表示された MEL コマンドを全て選択状態にします。
Edit → Clear History
ヒストリーウインドウのクリア。
Edit → Clear Input
インプットウインドウのクリア。
Edit → Clear All
ヒストリーおよびインプットウインドウのクリア。
[Script Editor の Script メニュー]
Script → Execute
インプットウインドウに表示されている MELコマンドを実行します。
テンキーにある Enter キーによって実行するのと同じです。
Script → Echo All Commands
チェックしておくと実行されたMELコマンドをすべてヒストリーウインドウに表示します。
GUI の操作によって実行された MEL コマンドがすべて表示されるようになります。
Script → Show Line Numbers
チェックしておくと MEL スクリプトなどにエラーがあった場合、エラーのあった行番号を表示します。
MEL スクリプトのデバッグに便利なので必ずチェックしておきましょう。
これをチェックしておくと、以下の図のようにエラーのある行数が表示されるようになります。
[Show Line Number で表示された行番号]
上の図では、2行目(line 2)にエラーがあるのがわかります。
エラーメッセージの Cannnot find procedure "moove" というのは、 そのようなコマンド(moove)は存在しないという意味です
Script → Show Stack Trace
チェックしておくと不明のコマンド・プロシージャーなどがあった場合、エラーのトレース結果を別ウインドウに表示します。
[トレース結果]

Tips (デバッグ方法)

上でも述べておいたように、 Script → Show Line Numbers にはチェックを入れておいてください。
MEL スクリプトにエラーがあった場合に、どこが間違っているかを調べやすくなります。

MEL スクリプトにエラーが出た時は以下のような手順で調べてデバッグ(エラーを修正)してください。

  1. エラーのある行番号とエラーの理由を調べます。
    ヒストリーウインドウに
    // Error: line 5: Cannot find procedure "sphera". //
    などというエラー表示が出ているはずです。
    この場合は 5 行目にエラーがあるのがわかります。
    Cannot find procedure "sphera"
    と表示されているので、"sphera" という部分がおかしいのがわかります。
    エラー表示は英語なので意味がわからない人も入るかもしれませんが、 表示されている単語を見るとなんとなく理由がわかることがあるので なるべく読むようにしてください。
  2. 5 行目を調べてエラーを見つけたら、その箇所を直します。
    上の例では sphera のコマンド名を正しい名前(sphere)に変更すれば良いでしょう。
  3. この例ではすぐにエラーの理由がわかりましたが、もし、いくらエラー表示の出ている行を調べてもエラーが見つからない場合は、 その行目より前の行を順番に調べてみてください。 エラーの表示は文法的に矛盾が見つかった行に出るので、その行より前の部分にエラーがある場合があります。

練習

まとめ

課題

参考


Prev | Next
Home | Contents
Mail