文系デザイナーのための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でコメントを書きます。命令や変数などちゃんと色分けした表示になって見やすいですね。今後の連載ではこの流れで作業していきます。

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

CGWORLD vol.231で執筆させていただきました!

本日10/10発売の月刊CGWORLDで記事を執筆させていただきました。

詳細はこちらからご覧ください。P30から6ページもあります!

「UnityとUE4、ノンゲームにおける活用動向」という特集で、ゲームエンジンで映像制作する手段について説明しています。

このページの下にインフォーメションでも書いてありますが、表紙の放送中のアニメ「宝石の国」にも制作協力させていただいております。

月刊CGWORLD vol.231

しばらくお休みしておりましたブログですが、以前の毎日ペースではありませんが再開させていただきます。お楽しみに!