プロシージャーの作り方
プロシージャーのスクリプトを作ってみる
MELではC言語の関数のようにひとまとまりのコマンドをプロシージャーとして実行できる。
プロシージャーにしておくことによって、変更点がなければファイルを読み直さなくても何回でも同じスクリプトを実行できる。
また、他のプロシージャーから呼んで使うこともできるようになる。
プロシージャーの作り方と実行例
- まず、UNIXのコマンドラインからmakeSphere.melというファイルをviなどのエディターを使って作る。
ファイルの内容は、たとえば以下のように書いておく。
global proc makeSphere() {
sphere;
}
ここでプロシージャーの名前とファイル名が同じであることに注意。
- MAYAを立ち上げる。
- 一番上のメニューバーから Window -> General Editors -> Script Editor によって
Script Editor を表示する。
- Script Editorの File -> Source Script によってmakeSphere.melを読み込む。
- コマンドラインからmakeSphere();と打ち込んで実行する。
Script Editor から実行しても良い。
- 球が作られる。
自動時にMELスクリプトを読み込む方法
いつも使うMELスクリプトをMAYAを立ち上げてからいちいち読み込むのは面倒臭い。
そんな時には特別なディレクトリにMELスクリプトを入れておくことによって時動的に読みこんで実行してくれるようになる。
ただし、プロシージャー名とファイル名 (.melの前の部分) を同じにすること。
- 自動時に読み込ませたいMELスクリプトを~/maya/scriptsにコピーしておく。
例えば、上のmakeSphere.melをコピーしておく。
# cp makeSphere.mel ~/maya/scripts
- MAYAを起動する。
- コマンドラインからmakeSphere();で実行できる。
もちろん、Script Editor から実行しても良い。
練習
- makeSphere.melの中を書き換えて実行してみよう。
sphere以外のプリミティブを作ったり、moveと組み合わせて複数のプリミティブを作ってみよう。
この時、Script Editorの File -> Source Script によって読み込み直さないと書き換えたものが実行されないことに注意。
- makeSphere.mel以外の名前のMELスクリプトを作ってMAYAで読み込み、実行できるかどうか確かめよう。
まとめ
- プロシージャーを定義したMELスクリプトを読み込むとプロシージャー名で実行できる。
- MELスクリプトを~/maya/scriptsにおいておけば読み込む必要が無い。
- その時、プロシージャーを使ったMELスクリプトのファイル名はプロシージャー名+.melという名前にする。
- どんな場合もMELスクリプトを書き換えた時は、読み込み直さなければ変更点が反映されない。
参考
- オンラインドキュメント (英語)
/usr/aw/maya/docs/en_US/html/Commands/CommandsTOC.doc.html
- リファレンス
Prev | Next
Home | Contents
abe@injapan.net