MEL入門
始めに
MAYAの機能の多くはMEL(Maya Embedded Language)というスクリプト言語によって作られている。
つまりMELを使うことによって、MAYAでできることはほぼ何でもできる。
MELスクリプト(MELによるプログラム)を作れるようになると何が便利だろうか。
- 複数のコマンドによる同じ操作を繰り返さなければならない時、コマンド一つでできるようになる。
- GUIで作ることが難しい大量のオブジェクトのモデリングができる。
- 複雑な数式によるモデリングができる。
- メニューに無い機能を追加できる。
- やろうと思えばGUIを使わないでモデリング・レンダリングができる。
MAYAプログラミング で勉強すること
ここでは主にMELスクリプトの作り方について学習する。
- 基本的なMELコマンドを覚えて、簡単なスクリプトを書くことができるようにする。
- 独自のGUI(グラフィック・ユーザー・インターフェース)を作る。
- できればMELでパーティクル、アルチザンなどの特殊効果を制御する。
MELの概略
MELの文法はC言語とシェルスクリプトを合体させたようなものになっている。
また、MELには600以上のコマンドと、75の関数がある。
MELコマンドの種類は以下の通り。
- シーンコマンド (シーンとその環境を操作するために使われる。 500種類くらいある)
- アドミニストレーションコマンド (ファイル入出力、OSへのアクセスなど)
- ユーザーインターフェースコマンド (GUIをつくる)
- 関数 (配列、カーブ、数学関数、乱数、色変換など)
簡単なMELコマンドの実行方法
MELを実行するための方法には色々あるが、まずは簡単な方法からやってみよう。
コマンドラインからの実行
MAYAウインドウの下にあるコマンドラインにコマンドを入力する方法でMELコマンドを
実行してみよう。
- MAYAを立ち上げる。
シェル(UNIX)のコマンドラインから
maya(Enter)
と打ち込んで実行する。
- コマンドラインにsphere(Enter)と打ち込む。
コマンドラインにカーソルがでていない場合はマウスによってフォーカスする。
- 半径1の球(Nurbs)がシーンに現れる。
なお、(Enter)キーはキーボードの右端にあるテンキーのものを使うと、いちいちフォーカスをコマンドラインにあわせる必要が無いので便利である。
次に今作られた球を移動してみよう。
- コマンドラインからmove 3 0 0(Enter)と打ち込む。
- 球が(3, 0, 0)の位置に移動する。
- 再びコマンドラインからmove 0 0 3(Enter)と打ち込む。
- 今度は球が(0, 0, 3)の位置に移動する。
また、作られたオブジェクトを回転、拡大・縮小するにはrotate、scaleコマンドを使う。
- コマンドラインからrotate 90 0 0(Enter)と打ち込む。
- 球がX軸方向に90度回転する。
- そしてコマンドラインからscale 1 2 1(Enter)と打ち込む。
- 今度は球がY軸方向に長くなる。
練習
- 上のシーンにもう一つ球を作って、その球もmoveによって適当な位置に移動して、 rotate,scaleを使ってみよう。
そのとき、最初に作った球の状態はどうなっているだろうか?
- 球以外のプリミティブも作ってみよう。
球以外のプリミティブには
cone、 nurbsCube、 cylinder、nurbsPlane、polyTorus
などがある。
- たくさんのオブジェクトを作って、好きなように並べてみよう。
Script Editorによるコマンドの実行
MELを実行するもう一つの方法としてScript Editorを使うことができる。
Script Editorを使用することによって
- まとめていくつかのコマンドを入力することができる。
- GUIでの操作によってどの様なコマンドが実行されているかわかる。
上側のウインドウに実行されているコマンドが表示される。
- viなどのエディターで作っておいたMELスクリプトを読み込んで実行することができる。
Script Editorにおけるコマンドの実行方法の例
- MAYAを立ち上げる。
- 一番上のメニューバーから Window -> General Editors -> Script Editor によって
スクリプトエディター を表示する。
- スクリプトエディターの下のウインドウにコマンドを入力する。
たとえばsphereと入力する。
- スクリプトエディターの上のメニューバーから Edit -> Excute で実行する。
- 半径1の球(Nurbs)がシーンに現れる。
練習
- スクリプトエディターの下のウインドウに複数のコマンドを入力して実行させてみよう。
その場合、各行のコマンドの後ろに ; (セミコロン)をつけておくこと。
たとえば、下のウインドウに
sphere;
move 5 0 0;
と打ち込んで Edit -> Excute で実行する。
- GUIの操作によってScript Editorにどんなコマンドが表示されるか確かめよう。
たとえば、マウスを使って球を表示させるとどんなコマンドが表示されるか?
まとめ
- コマンドラインからMELコマンドを実行できる。
- プリミティブを作るコマンドはsphere、cone、 nurbsCube、 cylinder、nurbsplane、polytorusなどがある。
- 移動、回転、拡大・縮小はmove、rotate、scaleで実行する。
- Script Editorによってコマンドが実行できる。
- Script Editorによってマウスによる操作が実際はどんなコマンドによって実行されているかわかる。
- Script Editorにおいてコマンドを複数実行する時は、行の最期に ; をつける。
参考
Next
Home | Contents
abe@injapan.net