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

今回はMayaでMEL/Pythonを勉強するテクニックを紹介します。
とはいえ、至って単純な話で「多くのプログラムを読んで参考にする」です。

デザイナー、特に真面目な方は、”まずマニュアルを!」とか思うのですが、
マニュアルを全部読むのは時間の無駄です。
完成したプログラムで使われている命令をマニュアルで調べて、自分のプログラムに応用すればいいのです。

では、実験してみましょう。
私がオススメするのは「CG自習部屋 Mayaの時間
http://cgjishu.net/

このサイト、本当に様々な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ですので安心してください)

このようにサンプルプログラムの命令が何をやっているのかを調べることができます。

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

前回では、Visual Studio Code(今後VScodeと書きます)をインストールしてPythonのプログラムを入力して、そこからMayaへコピー&ペーストで動かしました。

でも、それなら前のIDLE Pythonでも同じですなのにナゼ?とか思わたのではないでしょうか?実は、ここからが面白いのです。

では、まずVScodeを起動します。前回もやりましたが「拡張機能」をクリックします。

さらに検索キーワードで「maya」と入力してください。すると「SendtoMaya」というプラグインがあるので「インストール」してください。

そこで、「ファイル」→「新規ファイル」で以下の2行を入力してください。

import maya.cmds as mc
mc.commandPort(name=”127.0.0.1:7002″, stp=”python”, echoOutput=True)

これを「userSetup.py」というファイル名で保存します。

そのファイルを、ドキュメント→maya→バージョン→scriptへ移動します。
日本語版Mayaの方はドキュメント→maya→バージョン→sja_JP→scriptです。
Macの方は、/Library/Preferences/Autodesk/maya/バージョン/scripts

その後、Mayaを起動してください。

VSCodeに戻り、「ファイル」→「基本設定」→「設定」をします。

そこで右側のウインドウ2行目に、{}があります。

そこに以下の分を入力します。(もちろん、コピー&ペーストでOK)

“sendToMaya.pythonCommandPort”: 7002, “sendToMaya.mayaHost” : “127.0.0.1”
CTRL+Sで保存します。「ファイル」→「新規ファイル」をします。
以下のように4行入れます。
print “connected!”
import pymel.core as pm
pm.sphere()
print “Fin”
できたら、CTRL+Sで「test.py」で保存します。ここで一回、VsCodeを終了して、再起動します。さっきの「test.py」が出ている状態で、キーボードから以下を実行します。
CTRL+ALT+M
Maya側の画面とスクリプトエディタを見てください。球体ができていますね!
また、エディタに「connected!」「Fin」と出ています。
つまり、VScodeで書いたPythonプログラムをMayaへ送信して実行しているのです。
もしもCTRL+ALT+Mで実行しない場合、まずmayaを先に起動して、VScodeを再起動してください。
どうですか?ちょっと設定が面倒ですが、一度やってしまえば後は何もしないでできます。
これでMayaとVscodeを連動したプログラム作成の環境ができました。
次回から、新しい命令など進めていきます

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

CGworldの本に続き、Web版も掲載されました。こちらもぜひご覧ください。

さて3か月ぶりですが、「文系デザイナーのためのmaya MEL/Python基礎の基礎」の連載を再開です。前回⑫までいきましたので、今回から第2章ということで「2-1」からスタートです。
(実は夏に暑さでマシンが壊れてしまい、過去のデータが消滅してしまいました涙)

さて、心機一転、MayaでPythonを作るにあたり、まずは道具から選びましょう。
Mayaで直接プログラムを書くのは危険なので、エディタで書いて、そこからMayaへペーストする、という流れです。
前回、Python-IDLEで書いていましたが規模が大きくなる場合や説明で行番号がないと場所を説明しにくい、という弱点があるのです。

そこで「Visual Studio Code」です。
Micirosoftのツールですが、ちゃんとMac版もLinux版もありますので、どの環境でMayaをお使いでもOKです。ダウンロードしてインストーラーから入れてください。

windowsだとこんなアイコンから起動です。


起動したら、左にあるアイコンの5番目の「拡張機能」をクリックし、上の検索項目に「python」と入力します。Visual Studio Codeはいろいろなプログラミング言語があるのでPythonで使いやすいようにプラグインを追加します。
たくさんあるのですが、まずここでは上2つを選んでおきましょう。「インストール」をクリックすれば自動で入ります。
  
拡張機能ボタンを再度押し、「新しいファイル」をクリックします。

以下のPythonのプログラムを入力してください。内容は気にせずOKです。

import pymel.core as pm
pm.polyCube()
tx = 0
for i in range (0,10):
  pm.duplicate(rr=1)
  pm.cmds.move(tx,0,0)
  tx= i*2
入力できたら。~.pyで保存します。

Visual Studio CodeからMayaのスプリプトエディタへコピー/ペーストします。


実行すると、キューブが10個並ぶと思います。


Visual Studio Codeでコメントを書きます。命令や変数などちゃんと色分けした表示になって見やすいですね。今後の連載ではこの流れで作業していきます。

今回はここまでです。次回から新しい命令をやりますので、過去の連載を復習しておくと楽ですよ。