デザイナーが始めるプログラミング入門 mel編 その1

はじめに

はじめまして。3DCGデザイナーのオザキです。かれこれmaya1.0の頃から3DCGデザイナーをしています。そんなプログラミングとは無縁な3DCGデザイナーが始めたプログラミングの経緯を通して、デザイナーでもDCCツール用のツールを自作でプログラミングをして生産性の向上に繋がればと思います。

mayaにはMEL(Maya Embedded Language)という専用の言語があります。
mayaではGUIの操作がすぐスクリプトエディタ上にMELのコマンドとして表示されます。GUIでの操作とコマンドの関係性が分かり易いので、mayaのMELを使ってツール作成をしていく過程で、プログラミングをした事が無いデザイナーにも分かり易くプログラミングの解説をしていきます。

コマンド

コマンドとは、文字入力をして何かを実行させる時の命令文の事です。色々な命令文を入力して実行する事で、色々な処理を行います。

まず、maya上で立方体をGUIから作成してみます。立方体が作成されると、スクリプトエディタの上段の作業履歴に

polyCube -w 1 -h 1 -d 1 -sx 1 -sy 1 -sz 1 -ax 0 1 0 -cuv 4 -ch 1;

という文字列が表示されます。これが、立方体を作成するコマンドです。

このコマンドをコピーして、スクリプトエディタの下段の入力欄にペーストします。

そしてテンキーのEnter(テンキーレスのキーボードを使用しているならばCtrl+Enter)を押下すると、GUIで作成したものと同じ立方体が作成されました。

フラグ

polyCube -w 1 -h 1 -d 1 -sx 1 -sy 1 -sz 1 -ax 0 1 0 -cuv 4 -ch 1;


のうち、厳密に言うとコマンドはpolyCubeのみで、残りの-w 1 -h 1 -d 1 -sx 1 -sy 1 -sz 1 -ax 0 1 0 -cuv 4 -ch 1;はフラグと呼ばれるものです。分かり易く言えばコマンドのオプションみたいなものです。フラグの内容を変更する事で、コマンドの実行結果を変化させる事が出来ます。

mayaのヘルプの左の項目の一覧の中のテクニカルドキュメント→MELコマンドからpolyCubeのフラグの詳細を見てみると
-width(-w)は、立方体の幅のサイズ
-height(-h)は、立方体の高さのサイズ
-depth(-d)は、立方体の奥行きのサイズ
subdivisionsX(-sx)は、立方体のx方向のサブディビジョン数
-subdivisionsY(-sy)は、立方体のy方向のサブディビジョン数
-subdivisionsZ(-sz)は、立方体のz方向のサブディビジョン数
-axsis(-ax)は、プリミティブの軸指定
-createUVs(-cuv)は、UVを作成するかどうかの指定
-constructionHistory(-ch)は、コンストラクションヒストリのオンオフを指定
となっています。

試しに、-wの値を1から2にしてpolyCubeのコマンドを実行してみます。

そうすると、x方向の幅が広い直方体が出来ました。

スクリプトエディタの上段に表示される作業の履歴を見る事で、GUI上の操作とコマンド・フラグの関連性が分かっていくと思います。
(MELコマンドに無いコマンドがあった場合、whatIs "コマンド名"を実行すると、それがコマンドのなのかMELで作成されたスクリプトなのかそれ以外のものかの結果が返ってきます。)

実行ファイル

スクリプトエディタの下段の入力欄に入力したコマンドとフラグは、Enterを押すと処理を実行して上段の履歴に表示されて、入力欄からはクリアされてしまいます。
(ただし、入力エリアの文字列を選択した状態でEnterを押すと、その文字列をクリアする事無く処理を実行する事が出来ます。)

コマンドを何度も使いたい時に、その都度入力をするのは面倒です。
mayaでコマンドを何度も使いたい時に手っ取り早い方法は、スクリプトエディタの入力欄に入力した文字列をシェルフにドラッグ&ドロップをするとシェルフを作成する事が出来ます。

以後、このシェルフに出来たアイコンを押す事で、登録したコマンドを実行する事が出来ます。
シェルフのアイコン上で右クリックをした時に出るポップアップメニューの編集を実行すると、シェルフエディタウインドウが開いて、登録したコマンドが表示されます。引数の値を変更したい時は、このシェルフエディタで編集をします。


melを用いて、プログラミングの基本となるコマンド、フラグ、実行ファイルについて解説をしてきました。
今回はここまでです。

#maya #mel #プログラミング

みんなにも読んでほしいですか?

オススメした記事はフォロワーのタイムラインに表示されます!