文系デザイナーのためのmaya MEL/Python基礎の基礎①

このブログは、現在はGPUレンダリングソフトのRedShiftのお話が多いですが、それだけではツマナライので、Mayaなど3DCG制作で便利なツールをプログラムを作る基本的なチュートリアルもやっていこうと思います。

完全にプログラム初心者向けに書いていきますので、文系の方も安心してください。
(逆にバリバリなプログラマーの方には遠回りに思えるかもしれませんが)

Mayaでは、MELPythonの2つのプログラミング方法があります。

Mayaの画面の一番右下のアイコン「スクリプトエディタ」をクリックします。
これは知っている人も多いと思います。

・・・何をしていいか解らないし、難しいそう・・・という方多いと思います。
別にMayaを使ってて困ってないのに新しいことを学ぶのは面倒、という方もいるかと。

そこで、勉強の仕方は「楽をしよう」という思考が大切なのです。とかくクリエイティブな方は「努力と根性」をモットーとする方が多いので「面倒」「効率悪い」「無駄なミスはなるべく減らしたい」「早く帰りたい」という気持ちを持つのが大切です。

そこでオススメなのが、便利なツールをお手本にする、という勉強の仕方です。
初回の今日はこんな例をつかってみようと思います。

これはOutlinerとワイヤーフレームに色を付けて分類する「ColorMaker」ツールです。

リンク先からダウンロードすると、このような「???.mel」ファイルが出てきます。
これをmayaのメインのビューにドラッグするだけです。

適当なプリミティブを出して、色のボタンをクリックするだけで色が付きます。
大したことが無いかもしれませんが、識別しやすくなり、ミスも減るでしょう。
また、チームで制作する際に色を決めておくと、コミュニケーションも取りやすいで

どんなMELファイルでも、これで使える訳ではありませんが、このようにMELは簡単に使えます。
では、これはどうやって作っているのでしょうか?

こんどは先程のMELファイルをスクリプトエディタの下の画面へドラッグしてみましょう。

1399行の長い英語みたいな文が出て来ましたね?これがMELのプログラム本体です。

では、スクリプトエディタの上にある三角ボタンを押すか「CTRL+Enter」キーを押して見てください。

下の段にあったプログラムが上の段に移動して、何もなくなりました。同時に「ColorMaker」が起動しました。
つまり、MELはスクリプトエディタも下の段でプログラムを書き、実行するとMayaがそれを理解したら上の段に移動して、プログラムが動作する、ということなのです。

でも毎回画面にドラッグするのも面倒ですね。Color Markerをダウンロードすると、小さな画像がついてきます。(30x30ピクセル)

これは何に使うのかというと、まず、先ほどと同じようにスクリプトエディタへmelファイルをドラッグします。そこでCTRL+aで「すべてを選択」にして、中ボタンドラッグでシェルフの「カスタム」へドラッグします。


すると、シェルフにアイコンができますね。これをクリックすると、「Color Marker」が起動できるのです。


このアイコンを右クリックして、「編集」します。


「シェルフエディタ」が起動します。ここにスクリプトエディタにあったスクリプトが全部入ってます。
つまり、シェルフをクリックするとMELプログラムが実行する仕掛けになった訳です。
(注:ちなみに普通はこの方法はやりません。解りやすくするための手段です)

シェルフTABに切り替え、アイコン名に先程の小さな画像を選び、「アイコンのラベル」にColorと入力して保存します。


するとMayaのロゴだったアイコンは選んだ画像になり、入力したColorという文字がはいます。これで今後Mayaを起動すればこのシェルフをクリックで起動できるのです。
(注:重ねて説明しますが、初心者向けの解説ですので、正規の設定のやり方ではありません)

このようにMayaへ自分で設定した機能をドンドン追加できるのです。
ということは、他のシェルフも実はMELなのです。


ではいつも使っている、「ポリゴン」→「球」のシェルフを同じように「編集」すると・・・


MELは「CreatePolygonSphere」という命令だ、ということが判ります。
この文字をコピーしておきます。


再度スクリプトエディタを起動して、上下にゴチャゴチャ文字があるので、上記のボタンで綺麗にします。


下の「MEL」に「CreatePolygonSphere」をペーストし、CTRL+Enterしてみてください。


ポリゴンの球が出てきましたね。スクリプトエディタの上の段には、
「polySphere -r 1 -sx 20 -sy 20 -ax 0 1 0 -cuv 2 -ch 1;」という命令が読めます。
シェルフだけでなく、メニューから「作成」→「ポリゴンプリミティブ」→「球」をやっても同じ命令なのが判ります。

ではメニューから「ウインドウ」→「アウトライナ」をやってみましょう。

スクリプトエディタの上の段に何も出てきません・・・ではMELが動いてないという訳ではないのです。

図のようにスクリプトエディタの「ヒストリ」→「すべてのコマンドのエコー」をONにしてみます。

今度は、メニューを選ぶだけでおびただしい行の命令が流れます。これこそ、Mayaの内部で動いているのを見ている状態です。この中にアウトライナを出す命令もあるのですが、探すのは一苦労です・・・
これは処理を遅くするのでOFFにしてください。


このような場合は、コマンドをShift+Altキーを押しながら実行すれば、シェルフ登録できますね?それを右クリックして「編集」してください。
「コマンド」タブに「OutlinerWindow」と書いてあります。これがアウトライナを起動するMELなのです。

このようにmayaを普段メニューからのウインドウ表示、モデリングやアニメーションコマンドやチャネルボックス、アトリビュートなどなど、操作しているのはすべて裏でMELの命令が実行されているのです。

更になんとSaveしたmaの中身もMELなのです。


保存したあとテキストエディタで開いてみると、MELの命令らしきものだらけです。
注意ですがmaを開いたら、適当に書き換えるのは非常に危険ですので、すぐ閉じてください。

ここまでの操作手順は覚える必要はありません。MELの動作の概念だけ理解できれば結構です。

今日はここまでです。次回で順を追って解説していきます。