今回はMayaでMEL/Pythonを勉強するテクニックを紹介します。
とはいえ、至って単純な話で「多くのプログラムを読んで参考にする」です。
デザイナー、特に真面目な方は、”まずマニュアルを!」とか思うのですが、
マニュアルを全部読むのは時間の無駄です。
完成したプログラムで使われている命令をマニュアルで調べて、自分のプログラムに応用すればいいのです。
では、実験してみましょう。
私がオススメするのは「CG自習部屋 Mayaの時間」
このサイト、本当に様々なMelツールを紹介されていて、非常に勉強になります。ではここから、 「【MEL】ウィンドウの位置をメインウィンドウの左上にリセット」 というスクリプトを研究してみます。
これはMayaをデュアルモニタで使っていて、一方を外してしまったとき、ウインドウがもう一つのモニタに纏める機能です。
ノートPCを外に持ち出した時によく困りますが、Windowsの機能では解決が難しいのです。
スクリプトエディタでサイトの下にあるMELをコピー&ペーストします。
たとえばこんなウインドがあった場合
MELスクリプトを実行すると・・・
すべて左上にウインドウは揃います。またアトリビュートは右のパネルに戻ります。
このMELをPythonにしてみます。このブログの連載の過去の記事のコンバータを使います。インストールがまだの人はぜひこの機会に。
変換ができたら、右ウインドウのテキストを全部選んでコピー。
スクリプトエディタにペーストして、シェルフ登録します。
ちゃんとPythonでも同じ動作するかを確認しましょう。
さて、このスクリプトを研究してみましょう。まず、クイックヘルプを使ってみましょう。スクリプトエディタ→コマンド→「クイックヘルプの表示」です。
復習ですが、MELの機能をPythonで代用する、というプログラムなので、
一度MELの方を再度確認します。
プログラムは基本、3つの機能があります。スクリプトエディタはそれを色で表示しています。MELでもPythonでも同じです。
1.処理を決めたり、流れを作るもの=緑
2.値を表すもの=黄色
3.Maya独特の命令=水色
4.その他=白(Melでは$が付くものは変数=データの入れ物)
MELの場合、それに加えて「;」が行の終わり、「{...}」で命令の範囲を決めていますが、Pythonではそれがありません。
MELの水色の命令、例えば「dockControl」で右ドラッグして「クイックヘルプ」を実行します。
以下のようにヘルプが出ます。
「dockControl -e」はedit、「dockControl -ex」はexistsを意味することが判ります。
しかし、まだ意味不明ですね。
そこで、再度右ドラッグで「コマンドマニュアル」を実行します。
「exists」は「指定したオブジェクトが存在するかどうかを返します。 」という意味なのが分かります。(内容はわからなくてOKですので安心してください)
このようにサンプルプログラムの命令が何をやっているのかを調べることができます。