簡単なスクリプト
MELスクリプトとは
MEL コマンドはファイルに書いておくと Script Editor から読み込むことによって、
何度でも同じコマンドが実行できます。
MEL コマンドが書き込んであるファイルを MELスクリプトと言います。
ファイルに書いておけば、そのファイルを消さない限り何度でも同じ MEL スクリプトを実行できるし、
後で必要に応じて書き換えてゆくことによって違う処理を実行することができます。
そして、後で学習するように変数・制御構造などを使用することによって、
複雑な処理を行うプログラムを作ることができるようになります。
また、MEL のスクリプトはファイル名を変えれば同じフォルダーに、いくつでも作っておくことができます。
作業用のフォルダー作成
これから授業を進めてゆく時の作業用フォルダーとして Z: ドライブの中に mel という名前のフォルダーを作成しておきましょう。
以後の授業で作成する MEL スクリプトはすべてこの mel フォルダーの中に作るようにします。
スクリプトを作ってみる
スクリプトの作り方と実行例
まず、簡単な MEL スクリプトを作る練習をしてみましょう。
- まず、mel フォルダーの中に test.mel というファイルをエディター(gvim)によって作ります。
- ファイル(test.mel)の内容は、以下のように書いておきます。
sphere;
scale 1 3 1;
- ファイルを test.mel というファイル名でセーブします。
- Script Editor から test.mel を読み込んで実行します。
そのためには以下の 2 種類の方法があります。
- Open Script による方法
- Script Editor の によってファイルを読み込みます。
- 読み込んだスクリプトが Script Editor のインプットウインドウに表示されます。
- 必要ならば読み込んだスクリプトを書き換えます。
- テンキーにある Enter キーで実行します。
- Source Script による方法
Script Editor の によってファイルを読み込みます。
この方法では読み込まれると同時にファイルの中身(MEL スクリプト)が実行されます。
MEL スクリプトをただちに実行したい時はこの方法が便利です。
- y 軸方向にスケールがかかった球が表示されます。
- もう一度、エディタによって test.mel を開いてください。
そして、test.mel の内容を以下のように書き換えます。
sphere;
scale 2 1 1;
move 3 0 0;
- 書き換えたら、ファイル(test.mel)をセーブしてください。
- 書き換えられた MEL スクリプトは、あらためて Script Editor に読み込んで実行する必要があります。
または
によって読み込んで実行してください。
- 2 個目の球が表示されます。
スクリプトの保存方法
Script Editor 内に表示されているコマンドをファイルに保存することができます。
保存しておいたファイルは上記の方法によっていつでも実行できます。
- Script Editor のインプットウインドウに以下のようなコマンドを打ち込んでください。
- 打ち込んだコマンドをマウスで選択します。
- Script Editor の によってファイルに保存します。
保存するファイル名は最後に .mel をつけた名前にする。
ここでは test2.mel にしておいてください。
- では、保存した MEL スクリプトを読み込み直して実行してみましょう。
(2, 3, 4) の位置に球が表示されたでしょうか。
Script Editor の メニュー
Script Editor のメニューについて一通り説明しておきましょう。
-
- Script Editor に読み込んだ MEL スクリプトをインプットウインドウに表示します。
-
- 読み込んだ MEL スクリプトを実行します。
-
- Script Editor 上で選択された部分の MEL スクリプトをファイルに保存します。
-
- Script Editor 上で選択された部分の MEL スクリプトを Shelf に登録します。
マウスのドラッグ・アンド・ドロップによっても同じことが可能です。
-
- インプットウインドウに表示された MEL コマンドを全て選択状態にします。
-
- ヒストリーウインドウのクリア。
-
- インプットウインドウのクリア。
-
- ヒストリーおよびインプットウインドウのクリア。
-
- インプットウインドウに表示されている MELコマンドを実行します。
テンキーにある Enter キーによって実行するのと同じです。
-
- チェックしておくと実行されたMELコマンドをすべてヒストリーウインドウに表示します。
GUI の操作によって実行された MEL コマンドがすべて表示されるようになります。
-
- チェックしておくと MEL スクリプトなどにエラーがあった場合、エラーのあった行番号を表示します。
MEL スクリプトのデバッグに便利なので必ずチェックしておきましょう。
これをチェックしておくと、以下の図のようにエラーのある行数が表示されるようになります。
上の図では、2行目(line 2)にエラーがあるのがわかります。
エラーメッセージの Cannnot find procedure "moove" というのは、
そのようなコマンド(moove)は存在しないという意味です
-
- チェックしておくと不明のコマンド・プロシージャーなどがあった場合、エラーのトレース結果を別ウインドウに表示します。
-
- MEL コマンドを実行した結果(// Result:)が表示されなくなります。
-
- コマンドを実行した結果のメッセージ・エラーメッセージ・警告メッセージ以外の、
さまざまな情報が表示されなくなります。
-
- 警告メッセージ(// Warning:)が表示されなくなります。
-
- エラーメッセージ(// Error:)が表示されなくなります。
Tips (デバッグ方法)
上でも述べておいたように、
にはチェックを入れておいてください。
MEL スクリプトにエラーがあった場合に、どこが間違っているかを調べやすくなります。
MEL スクリプトにエラーが出た時は以下のような手順で調べてデバッグ(エラーを修正)してください。
- エラーのある行番号とエラーの理由を調べます。
ヒストリーウインドウに
// Error: line 5: Cannot find procedure "sphera". //
などというエラー表示が出ているはずです。
この場合は 5 行目にエラーがあるのがわかります。
Cannot find procedure "sphera"
と表示されているので、"sphera" という部分がおかしいのがわかります。
エラー表示は英語なので意味がわからない人も入るかもしれませんが、
表示されている単語を見るとなんとなく理由がわかることがあるので
なるべく読むようにしてください。
- 5 行目を調べてエラーを見つけたら、その箇所を直します。
上の例では sphera のコマンド名を正しい名前(sphere)に変更すれば良いでしょう。
- この例ではすぐにエラーの理由がわかりましたが、もし、いくらエラー表示の出ている行を調べてもエラーが見つからない場合は、
その行目より前の行を順番に調べてみてください。
エラーの表示は文法的に矛盾が見つかった行に出るので、その行より前の部分にエラーがある場合があります。
練習
- 上のスクリプト (test.mel) の内容を書き換えて実行してみましょう。
たとえば move、scale、rotate や cone その他のプリミティブを作るコマンドを付け加えてましょう。
(各行の最後に ; (セミコロン) を忘れないように)
- Script Editorで読み込んだコマンドを Script Editor 内で書き換えて実行してみよう。
プリミティブの種類を変えたり、位置や大きさを変えてみよう。
- 次に書き換えたスクリプトを別のファイルに保存してみよう。
保存したファイルをエディタで適当に書き換えて、もう一度 Script Editor で読み込んで実行してみよう。
まとめ
- Script Editor によって MEL コマンドを書き込んだファイル (MEL スクリプト) を読み込んで実行できます。
- MELスクリプトのファイル名には最期に .mel をつけておきます。
- Script Editor に表示されているコマンドはファイル(MEL スクリプト)に保存することができます。
課題
参考
Prev | Next
Home | Contents
Mail