簡単なスクリプト
MELスクリプトとは
MEL コマンドは、ファイルに書いておくと スクリプト エディタ から読み込むことによって、
何度でも同じコマンドが実行できます。
MEL コマンドが書いてあるファイルを MELスクリプトと言います。
(スクリプトとは脚本のことです)
ファイルに書いておけば、そのファイルを消さない限り、何度でも同じ MEL スクリプトを実行できます。
後で必要に応じて書き換えてゆくことによって、違う処理を実行することもできます。
そして、後で学習する変数・制御構造などを使用することによって、
複雑な処理を行うプログラムを作ることができるようになります。
また、MEL のスクリプトは、ファイル名を変えれば同じフォルダにいくつでも作っておくことができます。
作業用のフォルダ作成
これから授業を進めてゆく時の作業用フォルダとして Z: ドライブの中に mel という名前のフォルダを作成しておきましょう。
以後の授業で作成する MEL スクリプトはすべてこの mel フォルダの中に作るようにします。
スクリプトを作ってみる
スクリプトの作り方と実行例
まず、簡単な MEL スクリプトを作る練習をしてみましょう。
- まず、mel フォルダの中に test.mel というファイルをテキストエディタ(gvim)によって作ります。
- test.mel の内容は、以下のように書いておきます。
sphere;
scale 1 3 1;
- ファイルを test.mel というファイル名でセーブします。
MEL スクリプトとして保存するファイル名は、拡張子(ファイル名の末尾)を mel します。
- スクリプト エディタ から test.mel を読み込んで実行します。
そのためには、以下の 2 種類の方法があります。
- スクリプトのロード による方法
- スクリプト エディタ の によってファイルを読み込みます。
- 読み込んだスクリプトが、 スクリプト エディタ のインプットウインドウに表示されます。
- 必要ならば、読み込んだスクリプトを書き換えます。
- 前章で紹介した方法で実行します。
- ソース スクリプト による方法
スクリプト エディタ の によってファイルを読み込みます。
この方法では、読み込まれると同時に MEL スクリプト が実行されます。
MEL スクリプトを、ただちに実行したい時はこの方法が便利です。
- y 軸方向にスケールがかかった球体が表示されます。
- もう一度、テキストエディタによって test.mel を開いてください。
そして、test.mel の内容を以下のように書き換えます。
sphere;
scale 2 1 1;
move 3 0 0;
- 書き換えたら、test.mel をセーブしてください。
- 書き換えられた MEL スクリプトは、あらためて スクリプト エディタ に読み込んで実行する必要があります。
または
によって読み込んで実行してください。
- 2 個目の球体が表示されます。
スクリプトの保存方法
スクリプト エディタ 内に表示されているコマンドを、ファイルに保存することができます。
保存しておいたファイルは、上記の方法によっていつでも実行できます。
- スクリプト エディタ のインプットウインドウに、以下のようなコマンドを打ち込んでください。
- 打ち込んだコマンドをマウスで選択します。
- スクリプト エディタ の によってファイルに保存します。
ここでは、保存するファイル名を test2.mel にしておいてください。
- では、保存した MEL スクリプトを読み込み直して実行してみましょう。
(2, 3, 4) の位置に球体が表示されたでしょうか。
スクリプト エディタ の メニュー
スクリプト エディタ のメニューおよび、アイコンについて一通り説明しておきましょう。
-
- スクリプト エディタ に MEL スクリプトを読み込み、インプットウインドウに表示します。
キーボードショートカットは Ctrl+o です。
-
- 読み込んだ MEL スクリプトを実行します。
-
- スクリプト エディタ 上で選択された部分の MEL スクリプトをファイルに保存します。
キーボードショートカットは Ctrl+s です。
-
- スクリプト エディタ 上で選択された部分の MEL スクリプトを シェルフ に登録します。
マウスのドラッグ&ドロップによっても同じことが可能です。
-
- 編集した部分を取り消して、元に戻します。
ショートカットキーは Ctrl+z です。
-
- 取り消した編集をやり直します。
ショートカットキーは Ctrl+y す。
-
- 選択した部分を切り取ります。
ショートカットキーは Ctrl+x です。
-
- 選択した部分をコピーします。
ショートカットキーは Ctrl+c です。
-
- 切り取ったりコピーした部分をカーソルの位置に貼り付けます。
ショートカットキーは Ctrl+v です。
-
- インプットウインドウに表示された MEL コマンドを全て選択状態にします。
ショートカットキーは Ctrl+a です。
-
- カーソルを指定した行に移動します。
ショートカットキーは Ctrl+l です。
-
- 検索した文字を別の文字に変換します。
ショートカットキーは Ctrl+f です。
-
- 選択された行をインデントします。
ショートカットキーは Ctrl+] です。
-
- 選択された行のインデント取り消します。
ショートカットキーは Ctrl+[ です。
-
- ヒストリーウインドウをクリアします。
-
- インプットウインドウをクリアします。
-
- ヒストリーおよびインプットウインドウをクリアします。
-
- バッチ レンダー時のログを、ヒストリウインドウに表示します。
-
- チェックしておくと、実行された MEL コマンドをすべてヒストリーウインドウに表示します。
GUI の操作によって実行された MEL コマンドがすべて表示されるようになります。
-
- チェックしておくと、
MEL スクリプトなどにエラーがあった場合、エラーのあった行番号を表示します。
MEL スクリプトのデバッグに便利なので、必ずチェックしておきましょう。
これをチェックしておくと、以下の図のようにエラーのある行数が表示されるようになります。
上の図では、2行目(line 2)にエラーがあるのがわかります。
エラーメッセージの プロシージャ "moove" が見つかりません というのは、
そのようなコマンド(moove)は存在しないという意味です
-
- チェックしておくと不明のコマンド・プロシージャなどがあった場合、エラーのトレース結果を別ウインドウに表示します。
-
- コマンドの結果をヒストリウインドウに表示します。
サブメニューにおいて、
にチェックを入れると MEL と Python の両方、
にチェックを入れると MEL コマンドの結果のみ、
にチェックを入れると Python コマンドの結果のみを表示します。
-
- MEL および Python コマンドを実行した結果(// 結果:)が表示されなくなります。
-
- コマンドを実行した結果のメッセージ・エラーメッセージ・警告メッセージ以外の、
さまざまな情報が表示されなくなります。
-
- 警告メッセージ(// 警告:)が表示されなくなります。
-
- エラーメッセージ(// エラー:)が表示されなくなります。
-
- スタックウインドウを表示しなくなります。
-
- スクリプト エディタのインプットウインドウに、新しいタブを追加します。
このメニューを選ぶと、以下のダイアログが表示されるので MEL か Python を選ぶと、
選んだ言語を入力することのできるタブが追加されます。
-
- タブの名前を変更します。
-
- 現在のタブを変更します。
サブメニューの で左のタブへ、
で右のタブへ移ります。
-
- 現在のタブを削除します。
タブにコマンドなどの文字が記述してある場合には、
削除してよいかどうかをたずねるダイアログが表示されます。
タブが 1 つしかない場合は削除できません。
-
- インプットウインドウの行番号を表示します。
-
- コマンドの簡単なヘルプを表示できるようになります。
クイックヘルプに調べたいコマンド名を入力して
Enter キーを押すとフラグの一覧が表示されます。
-
- インプットウインドウに表示されている MELコマンドを実行します。
選択されている関数があれば、その関数だけが実行され、
選択されている関数がなければ、スクリプトすべてを実行します。
テンキーにある Enter キー、または Ctrl + Enter によって実行するのと同じです。
-
- ブラウザに Maya のヘルプを表示します。
-
- ブラウザに MEL のヘルプを表示します。
-
- ブラウザに Python のヘルプを表示します。
-
- ブラウザに スクリプト エディタのインプットウインドウで選択されている、
コマンドのヘルプを表示します。
-
- ブラウザに スクリプト エディタ のヘルプを表示します。
-
- ブラウザに MEL コマンドリファレンスを表示します。
-
- ブラウザに Python コマンドリファレンスを表示します。
-
- ブラウザにノード&アトリビュートリファレンスを表示します。
-
- Maya のメニューから探したい文字列を含むものを検索します。
ツールバー
- スクリプト エディタ に MEL スクリプトを読み込み、インプットウインドウに表示します。
と同じです。
- 読み込んだ MEL スクリプトを実行します。
と同じです。
- スクリプト エディタ 上で選択された部分の MEL スクリプトをファイルに保存します。
と同じです。
- スクリプト エディタ 上で選択された部分の MEL スクリプトを シェルフ に登録します。
と同じです。
- ヒストリーウインドウをクリアします。
と同じです。
- インプットウインドウをクリアします。
と同じです。
- ヒストリーおよびインプットウインドウをクリアします。
と同じです。
- ヒストリウインドウのみを表示します。
- インプットウインドウのみを表示します。
- ヒストリウインドウ、インプットウインドウの両方を表示します。
- チェックしておくと、実行された MEL コマンドをすべてヒストリーウインドウに表示します。
と同じです。
- チェックしておくと、 MEL スクリプトなどにエラーがあった場合、エラーのあった行番号を表示します。
と同じです。
- インプットウインドウに表示されている MELコマンドを実行します。
実行された MEL スクリプトはインプットウインドウに残ります。
- インプットウインドウに表示されている MELコマンドを実行します。
と同じです。
- このアイコンの左にある、テキスト入力エリアに入力されている文字列を、下方向に探します。
- このアイコンの左にある、テキスト入力エリアに入力されている文字列を、上方向に探します。
- このアイコンの左にある、テキスト入力エリアに入力されている、行数の行に移動します。
Tips (デバッグ方法)
上でも述べておいたように、
にはチェックを入れておいてください。
MEL スクリプトにエラーがあった場合に、どこが間違っているかを調べやすくなります。
MEL スクリプトにエラーが出た時は、以下のような手順で調べて、デバッグ(エラーを修正)してください。
- エラーのある行番号と、エラーの理由を調べます。
ヒストリーウインドウに、以下のようなエラー表示が出ているはずです。
// エラー: line 5: プロシージャ "sphera" が見つかりません。//
この場合は 5 行目にエラーがあるのがわかります。
プロシージャ "sphera" が見つかりません。
と表示されているので、"sphera" という部分がおかしいのがわかります。
- 5 行目を調べてエラーを見つけたら、その箇所を直します。
上の例では、sphera を正しい名前 sphere に変更すれば良いでしょう。
- この例では、すぐにエラーの理由がわかりました。
もし、いくらエラー表示の出ている行を調べてもエラーが見つからない場合は、
その行より上の行を順番に調べてみてください。
エラーの表示は、文法的に矛盾が見つかった行に出るので、
その行より前の部分にエラーがある場合があります。
練習
- 上のスクリプト (test.mel) の内容を書き換えて実行してみましょう。
たとえば move、scale、rotate や cone その他のプリミティブを作るコマンドを付け加えてましょう。
(各行の最後に ; (セミコロン) を忘れないようにしてください)
- スクリプト エディタで読み込んだコマンドを、スクリプト エディタ 内で書き換えて実行してみましょう。
プリミティブの種類を変えたり、位置や大きさを変えてみましょう。
- 次に書き換えたスクリプトを別のファイルに保存してみましょう。
保存したファイルをテキストエディタで適当に書き換えて、もう一度 スクリプト エディタ で読み込んで実行してみましょう。
テキストエディタについて
MEL スクリプトをはじめとして、
プログラムを記述するためには、
通常テキストエディタというツールを使用します。
決してワープロソフトを使わないでください。
どちらも文章などを書くために使うことができますが、
ワープロにはプログラミングをするときに不要で有害な機能があります。
それに対して、機能の豊富なテキストエディタには、プログラミングをするために有用な機能が多く存在します。
たとえば、 Windows に標準で入っている「メモ帳」はテキストエディタです。
(ワードパッドはワープロソフトです)
最初は、「メモ帳」や、Mac OS X では「テキストエディット」、
Linux, IRIX などでは vi などの OS に標準のテキストエディタでもかまいません。
しかし、複雑で大量のプログラミングを行うようになると、
メモ帳 などのシンプルなテキストエディタでは効率が悪くなります。
自分の気に入ったテキストエディタを使ってもかまいませんが、
最低限、以下の機能を持つテキストエディタを探してください。
プログラミングの効率が上がります。
- 行番号を表示できる
または、任意の行に簡単に移動できる
- 単語の種類によって文字の色分けができる
この機能をシンタックスハイライトともいいます。
テキストエディタは種類が多いので、どれがよいかを調べるのは大変ですが、
よく使われるテキストエディタの例として、以下のものを挙げておきます。
- Vim (gVim)
- Emacs (Meadow)
- TeraPad
- 秀丸エディタ
Python について
Maya8.5 以降のバージョンでは、
MEL の他に Python というスクリプト言語を実行することができます。
Python は、Maya 以外でも実行できる汎用のスクリプト言語で、
以下のような特徴があります。
- Maya のプラグインを作成可能
MEL では作ることのできないプラグインを作ることができます。
- 単独の Maya アプリケーションを作成可能
Maya を起動しなくても実行できるアプリケーションを作成することができます。
- 多数の OS 上で実行可能
Windows, Linux, Mac OS X など、
主要な OS で実行することができます。
- コンパイル不要
MEL と同様にスクリプト言語なので、C++ や Java のように
コンパイルという作業が必要ありません。
- オブジェクト指向
これによって、複雑で大規模なプログラムが作成しやすくなります。
- 膨大なモジュール
必要なモジュールをインポートすることによって、
文字列処理、ファイル処理、GUI、Web、ネットワーク
やデータベースなど、ほとんどの分野で利用できます。
- アプリケーションソフトをコントロール可能
一般的なソフトでは、
Microsoft Word, Excel, Access, Internet Explorerなどがあります。
Maya 以外の CG ソフトでは
Photoshop, Illustrator,
XSI, Hudini, Shade, Blender, Meta Seqoiya,
Motion Builder, Poser, Gimp,
などを Python によって操作することができます。
まとめ
- スクリプト エディタ によって、
MEL コマンドを書き込んだファイル (MEL スクリプト) を読み込んで実行できます。
- MELスクリプトのファイル名には、末尾に .mel をつけておきます。
- スクリプト エディタ に表示されているコマンドは、ファイル(MEL スクリプト)に保存することができます。
課題
参考
Prev | Next
Home | Contents
Mail