見出し画像

MayaのMELを使おう!基礎編第1回~作業準備~

はじめに

こんにちは!G2 Studiosで3Dアニメーターをやっている嶽本(タケモト)です!

Mayaを使っている方、スクリプト言語は扱っていますか?
自在に使えればあらゆる面倒な作業を自動化・効率化し、
オリジナルのツールを作ることで、できなかったことをできるようにし、
あなたの、ひいては周囲の業務の質を1段も2段も押し上げることが可能となります!

Mayaで使えるスクリプト言語にはPythonとMELがあります。Pythonは汎用性が高く対応するツールも多いためにスキルとしての価値が高いですが、その分だけ幅広く、Maya特化ではない汎用的な書き方を学ぶ必要があります。「できればPythonを習得したいけどゼロから始めるにはハードルが高いかも…。」と思っている方...

もうちょっと低いハードルから飛びたくないですか?

そこで、MELです。

正式にはMaya Embedded LanguageといってMaya専用の言語なので、
他のツールでは使えない汎用性の低い言語なのですが、
汎用性が低い分だけ学ぶ範囲が狭く、そこそこ雑に扱えるので習得が楽なのです!

ここでプログラムがどういうものかをつかみ、他の言語を覚える足掛かりにするのもアリだと思います。

本記事では、プログラム的なことに全く触れたことのない人でも、いちから学べるように書いています。
みなさんもMELを学んで作業を自動化・効率化し、仕事を楽にしましょう!
そして便利なツールを作ったら世の中にシェアしましょう!

今回のnoteで解説する内容のキーワードは「コマンド」「フラグ」「変数」「配列」「if文」「for文」です。シリーズを通じてこの辺りを中心に説明します。

※詳しい方が見れば説明が不十分と思うかもしれませんが、初心者が触れやすくするためにあえて浅くしています。
 ぼんやりとでも全体を把握できれば、何がわからないのかがわかるようになり、自分でも調べやすくなるでしょう。
 ともかく、みなさんにMELの海に足を踏み入れていただくことが本記事の目的です。

第1回ではMELの基本を学び、作業準備をしましょう!




MELってなに?

おおざっぱに言うと、Maya上で使える簡単なスクリプト言語(※)です。
Mayaの機能、主にUIで操作できるものは多くがMELで作られているので、
MELを使うことで多くの操作に対して、自動化や機能追加をすることができます。
adobeを使う方にはactionscriptのようなものだと思っていただければ。

※スクリプト言語ってなに?
 ⇒C言語等のように一度機械語に変換しないと実行できないものに対し、
  書いたものがそのまますぐに実行できる(ことが多い)もの。
  実行速度は遅いが比較的お手軽に使えるので、小規模な開発に向いている。

説明はMayaのヘルプに載っているので、詳しく知りたい方はそちらもどうぞ!

コマンドの詳しい内容もヘルプの下の方、ここに載っています!↓
コマンドの索引もあるので、欲しい機能のコマンドを調べたいときにも。

他にも解説やサンプルコードがいろんなサイトに載っています。
各コマンドの使い方がわからなかったら、それらを実例として参考にし、改造してみたりすると理解しやすいかもしれません!




どういうことができるのか

Mayaでできることは大抵できますが、わかりやすい恩恵としてはこの辺りです。

 ・大量のノードを操作する ⇒ 自動処理で一発!
 ・同じ操作を何度もやる  ⇒ 操作を書き出して簡単に再現!
 ・欲しい機能が無いなぁ…. ⇒ 作ってしまおう!

サンプルファイルを用意しましたので、まずは使用感を試してみましょう。

自動化してみよう!

事例:キャラの骨の命名規則が途中で変更になった! joint_〇〇 ⇒ jnt_〇〇
リネームしていけば済むことではありますが、ひとつひとつ手作業でやるのは面倒だし見落としがあるかも…。

MELを使い作業を自動化することで、実行は一瞬、見落としもなくなり、他のファイルでも使える!
(サンプルではついでにjointのスケールをロックしてみました。)

手順1:下の「サンプル・スケルトン.MEL」をDLし、Mayaにドロップ。
    グループノードの下にjointが20個でき、
    名前は「joint_〇〇」になっています。
手順2:下の「サンプル・スケルトンリネーム.MEL」をDLし、
    Mayaにドロップ。

    全てのjointの名前が「joint_〇〇」から「jnt_〇〇」に変わります。


機能追加してみよう!

事例:よく使う機能が深いところにあって不便!
よく使う機能なのにメニューから使おうとするとクリックが3回かかり面倒…。

この機能だけ表に出しておけばクリック1回で使える!

手順1:下の「サンプル・便利ウィンドウ.MEL」をDLし、
    Mayaにドロップ。

   ボタンが並んだウィンドウが表示されます。
手順2:ウィンドウに並んだボタンを押す。
   それぞれに割り当てられた動作が行われます。


ほかにも...

いろんな作業を書き出して一発で処理できるようにしたり、他のアプリと連携して動かすことも可能です。

MELでどんなことができるかイメージできましたか?
ここからは、実際に作業準備をしていきましょう。




どうすれば使える?

どこにあるの?

まずはMELを使う領域を表示します。
初期状態で表示されていると思いますが、もしされていなかったら、
メインメニューの [ウィンドウ] > [UI編集] からコマンドラインにチェックを入れれば、
図の下のようにコマンドラインが表示されます。
コマンドラインの左側は入力領域、右側はログ(※)が表示されます。
①は使用する言語を表示しています。
MELならそのままで大丈夫ですが、Pythonとなっていたら①をクリックして切り替えてください。

※ログ:Mayaでいう”ヒストリ”のことを指します。本シリーズでは”ログ”と呼んでいきます。

ただし、コマンドラインでは入力とログが1行ずつしか表示されません。
複数行を見たい場合は②をクリックして、スクリプトエディタというウィンドウを開きます。

上のスペースがログで、下が入力領域です。
入力領域がタブで分かれていますが、MELのタブではMEL、PythonのタブではPythonが動きます。
入力領域にMELを書き込み、上の三角1つ(▶)を押すと、入力領域の書き込みが消えて実行されます。
ショートカットはctrl+enterです。
三角2つ(▶▶)の方も実行ボタンですが、こちらの場合は入力領域の書き込みが消えずに実行されます。
トライ&エラーを繰り返すにはこちらが便利です。

作業を始める準備 ~ログや入力領域をきれいにする~

Mayaを立ち上げてから何かをやるたびにほとんどの行動がログに出てきます。
これからMELの作業をするにあたって、関係ないログに埋もれてわかりにくくなりそうなので、
ログや入力領域を綺麗にしてしまいましょう。
スクリプトエディタの [編集] から、[ヒストリのクリア] でログの領域が全消去されます。
ちなみに [入力のクリア] は入力領域の全消去、[すべてクリア] は両方を全消去します。

これで作業を開始できる状態になりました。
次回は、コマンド入力や四則演算を解説します。

▼G2 Studiosのクリエイター向けnoteはこちら
(ぜひマガジンをお気に入り登録して次回更新をお待ちください!)

▼更新情報はTwitterよりチェックしてください

▼G2 Studiosの採用情報はこちら


X(Twitter)にて最新のお知らせを配信しております。ぜひフォローしてください!