プロシージャーの作り方
プロシージャーのスクリプトを作ってみる
MELではC言語の関数のようにひとまとまりのコマンドをプロシージャーとして実行できる。
プロシージャーにしておくことによって、変更点がなければファイルを読み直さなくても何回でも同じスクリプトを実行できる。
また、他のプロシージャーから呼んで使うこともできるようになる。
プロシージャーの形式
プロシージャの中にはコマンド、プロシージャ、数式、制御構造などを必要なだけ書いてゆく。
global proc プロシージャ名(引数)
{
コマンドなど;
.
.
.
}
プロシージャーの作り方と実行例
- まず、UNIXのコマンドラインからmakeSphere1.melというファイルをviなどのエディターを使って作る。
ファイルの内容は、たとえば以下のように書いておく。
global proc makeSphere1()
{
sphere;
}
ここでプロシージャーの名前とファイル名が同じであることに注意。
- Script Editorの File -> Source Script によってmakeSphere1.melを読み込む。
- コマンドラインまたはScript EditorからmakeSphere1();と打ち込んで実行する。
makeSphere1でも実行できる。
- 球が作られる。
- もしエラーがでた時はmakeSphere1.melを書き換えて再実行する。
この時、Script Editorの File -> Source Script またはFile -> Open Scriptによって読み込み直さないと書き換えたものが実行されないことに注意。
自動時にMELスクリプトを読み込む方法
いつも使うMELスクリプトをMAYAを立ち上げてからいちいち読み込むのは面倒臭い。
そのような時は、環境変数MAYA_SCRIPT_PATHにMELスクリプトの入ったディレクトリを代入しておけば良い。
ただし、プロシージャー名とファイル名 (.melの前の部分) を同じにすること。
- MAYAを起動している場合は、いったんMAYAを終了させる。
- 次のコマンドをシェルから打ち込む。
# setenv MEL_SCRIPT_PATH ~/mel
- MAYAを起動する。
- コマンドラインまたはScript EditorからmakeSphere1();で実行できる。
練習
- makeSphere2.melというMELスクリプトの中にmakeSphere2という名前のプロシージャーを作り、
前回の課題のようにmakeSphere2();と実行すると球がX軸上に接しながら3個並ぶようにしてみよう。
まとめ
- プロシージャーを定義したMELスクリプトを読み込むとプロシージャー名で実行できる。
- MELスクリプトを~/maya/scriptsにおいておけば読み込む必要が無い。
- その時、プロシージャーを使ったMELスクリプトのファイル名はプロシージャー名+.melという名前にする。
- どんな場合もMELスクリプトを書き換えた時は、読み込み直さなければ変更点が反映されない。
参考
Prev | Next
Home | Contents
abe@injapan.net