MEL入門

始めに

MEL(Maya Embedded Language) とは Maya で使用できるスクリプト言語です。
Maya の GUI はほとんど MEL によって作られていて、Maya の機能を MEL によってコントロールしたり、カスタマイズや拡張などが自由におこなうことができます。

Maya では GUI のメニューから何かの機能にアクセスした場合も、その裏で、その機能に対応する MEL のコマンドが実行されています。
つまり Maya を操作するということは MEL を実行するということに等しいわけです。 そして Maya でできることは MEL によってほぼ何でもできるようになっています。
しかし、GUI からでも基本的なことは実行できるのに、さらに MEL スクリプト(MEL によるプログラム)を作れるようになると何が便利になるのでしょうか。

Mayaプログラミング で勉強すること

ここでは主に Maya のモデリング・アニメーションなどを MELスクリプトを使用して行ない、MEL スクリプトの作り方を練習していきます。

ここに掲載してあるサンプルプログラムは、あくまでも MEL を学習するためのものなので、 なるべくシンプルな形で作成されています。 実用的なプログラムにするためには、複数のプログラムを組み合わせたり、 エラー処理・ユーザーインターフェース(GUI)などを 追加しなければならないかもしれません。 ここには、そのために必要な最低限の知識が載っているはずなので 余裕のある人はチャレンジしてみてください。

MELの概略

MEL はコマンドと呼ばれる命令によって構成されています。
コマンドの数は 1000 以上あり非常に種類が多いのですが、もちろん最初から全部覚える必要はありません。 最初は基本的なものから覚えてゆき、後はマニュアルなどを参照しながら MEL スクリプト作ってゆけば良いのです。

MEL コマンドの種類は以下の通りです。

MEL の文法は C 言語と UNIX のシェルスクリプトを組合せて、 少しだけ C++ 言語の文法を足したようなものになっています。

コマンドラインからの実行

MEL コマンドを実行するためには様々な方法がありますが、まずは簡単な方法からやってみましょう。
最初に Maya メインウインドウの左下にあるコマンドラインにコマンドを入力する方法で MEL コマンドを実行します。
[コマンドラインの場所]
なお、以下において Enter キーはキーボードの右端にあるテンキーのものを使うと、いちいちフォーカスをコマンドラインにあわせる必要が無いので便利です。

  1. コマンドラインをマウスによってフォーカスし、カーソルが出ている状態にしてください。
    [コマンドラインにカーソルが出ている状態]
  2. コマンドラインに
    sphere
    と打ち込んで最後に Enter キーを押してください。
    [コマンドラインに打ち込んだ sphere コマンド]
  3. すると、半径1の NURBS の球がシーンに現れます。
    [sphere コマンドの実行結果]

次に今作られた球を移動してみましょう。

  1. コマンドラインに
    move 3 0 0
    と打ち込んで Enter キーを押してください。
  2. すると球が(3, 0, 0)の位置に移動します。
    [move コマンドの実行結果]
  3. 次に、コマンドラインから
    move 0 0 3
    と打ち込み Enter キーを押しましょう。
  4. 今度は球が(0, 0, 3)の位置に移動しました。
    [move コマンドの実行結果]

作られたオブジェクトを回転、拡大・縮小するには rotatescale コマンドを使います。

  1. コマンドラインから rotate 0 45 0 と打ち込み、Enter キーを押します。
  2. 球がローカル座標で Y 軸方向に 45 度回転したはずです。
    [rotate コマンドの実行結果]
  3. 次に、コマンドラインから scale 1 2 1 と打ち込んで、Enter キーを押します。
  4. 今度は球が Y 軸方向にスケールされます。
    [scael コマンドの実行結果]

今、実行してきたコマンドは普段 GUI のメニューやチャンネルボックス・アトリビュートエディタなどで実行したり、 数値の設定を行ってきた操作ですが、MEL コマンドで同様なことが行なえるのがわかったと思います。

Tips

コマンドラインのフォーカスはテンキーの Enter キーを使わないとはずれてしまいますが、 Windows → Settings/Preferences → Preferences... で Interface 中の Command Line の Hold Focus にチェックを入れておけば普通の Enter キーでもフォーカスがはずれなくなります。

練習

Script Editorによるコマンドの実行

MEL を実行するもう一つの方法として Script Editor があります。
MEL スクリプトを作成・実行するときには最も良く使われます。
Script Editor には以下のような利点があります。

Script Editor におけるコマンドの実行例

  1. メインウインドウのメニューバーから Window → General Editors → Script Editor によって スクリプトエディター を表示します。
    または、メインウインドウの右下にあるScript Editorアイコン [Script Editor アイコン] を押すことによっても表示できます。
    [Script Editor ウインドウ]
    2 つに分かれているウインドウの上のウインドウをヒストリウインドウ、 下のウインドウをインプットウインドウと呼びます。
    ヒストリウインドウ
    実行された MEL コマンドと、その実行結果を表示します。 エラーがあった場合にはエラーの内容などが表示されます。
    インプットウインドウ
    実行したい MEL コマンドを入力・編集するためのウインドウです。
  2. スクリプトエディターのインプットウインドウにコマンドを入力します。
    ここでは sphere と入力してみてください。
    [Script Editor に sphere コマンドを入力]
  3. 入力したコマンドは以下のいづれかの方法で実行します。 実行すると図のようにヒストリウインドウに表示されるはずです。
    [Script Editor で sphere コマンドを実行]
    ヒストリウインドウの // Result: の右に、 作られた球のノード名(nurbsSphere1, makeNurbsSphere1)が表示されているのに注意してください。 このように MEL コマンドを実行すると // Result: // の間にコマンドが返してくる文字列・数値などが表示されます。
  4. 半径 1 の NURBS の球がシーンに現れます。
    [sphere コマンドの実行結果]

Script Editor のメニューについての解説は次回におこないます。

Tips

Script Editor のインプットウインドウにコマンドを入力して実行する時に、 実行するコマンドをマウス左ボタンで選択しておくと、 実行した後もインプットウインドウにコマンドが残ったままになるので、 同じコマンドを連続して実行したい時に便利です。

練習

シェルフへのコマンドの登録

Script Editor のヒストリウインドウ・インプットウインドウに表示されているコマンドはシェルフに登録しておいて後で実行することができます。
同じコマンドを何度も実行する必要がある場合には便利です。
また、シェルフに登録しておいたコマンドを Script Editor にコピーすることも可能です。

シェルフへの登録例

Script Editor に表示されている適当なコマンドをシェルフに登録してみましょう。

  1. Script Editor のヒストリウインドウ、またはインプットウインドウに表示されているコマンドでシェルフに登録したいコマンドをマウス左ボタンで選択します。
    [選択されたコマンド]
  2. 選択された部分の上部分でマウスの中ボタンをクリックし、ドラッグアンドドロップでシェルフまで移動します。
    [ドラッグアンドドロップの図]
  3. シェルフに新しいアイコンが作られます。
    [新しく作られたアイコン]
  4. そのアイコンをクリックすると登録したコマンドが実行されます。

逆にシェルフに登録したコマンドを Script Editor にコピーしたい場合は、 コピーしたいシェルフのアイコンの上でマウス中ボタンをクリックし、 ドラッグアンドドロップで Script Editor のインプットウインドウへ移動します。
[シェルフから Script Editor へのコピー]

また、不要になったシェルフのアイコンはシェルフの右にあるゴミ箱アイコン [シェルフのゴミ箱アイコン] にマウス中ボタンでドラッグアンドドロップすれば消去することができます。

Tips

マウス左ボタンで Script Editor 内のコマンドを選択する場合に、 以下の方法を知っておくと効率良く選択することができます。

まとめ

アンケート

参考


Next
Home | Contents
Mail