July 18, 2015

PythonでMayaプラグインを作成する - 開発環境編

[前回の記事](http://www.hiroakit.com/article/1381)では、プラグインの開発環境については触れず、Hello Worldの実装だけに留めた。

そこで、今回はPythonでMayaプラグインを作成するための開発環境について触れたい。ネット上を探すと幾つか見つかった。下記に示す。

  • [Wing IDE](http://www.wingware.com), 有償, プロプライエタリソフトウェア
  • [PyCharm](https://www.jetbrains.com/pycharm/), 有償, プロプライエタリソフトウェア
  • [Winpdb](http://winpdb.org), 無償, フリーソフトウェア
  • [Eclipse](http://www.eclipse.org/home/index.php), 無償, フリーソフトウェア
  • [Emacs](https://www.gnu.org/software/emacs/emacs.html), 無償, フリーソフトウェア

上記のうち、Wing IDE, Winpdb, Eclipseについては、Autodeskの[Maya ヘルプ: Python で初めてスクリプトを記述する場合のヒントとコツ](http://help.autodesk.com/view/MAYAUL/2016/JPN/?guid=GUID-8A96A8DB-FD6F-434F-A878-288DD84E99C7)で紹介されているもので、PyCharmは[PythonRandomDoc/pycharmDebugging at master ・ lochrist/PythonRandomDoc](https://github.com/lochrist/PythonRandomDoc/tree/master/pycharmDebugging)から候補に含めた。最後のEmacsについては[Koichi Tamura's blog: Emacs To Maya for Python Scripts](http://koichitamura.blogspot.jp/2009/06/emacs-to-maya-for-python-scripts.html)をみて候補に入れた。

それでは、プロプライエタリソフトウェアとフリーソフトウェアに分けて見ていきたい。

## プロプライエタリソフトウェア

下表はWing IDEとPyCharmのライセンス料をまとめたものである。

商用 非商用
Wing IDE $245 $95
PyCharm $199 $99

機能面については各製品のページを確認されたい。

## フリーソフトウェア

一方、フリーソフトウェアのWinpdb, Eclipse, Emacsはどうだろうか。

ライセンス コードレポジトリ 対応OS 年間のリリース頻度
Winpdb GPL ソースコードはwinpdbのGoogle Codeページから入手可能だが、Google Codeは2016年1月 25日にホスティングサービスを終了する。(Google Code サービス終了のお知らせ - Google Developer Japan Blog)
  • Linux
  • Windows
2010年が最後のリリースになっている。
Eclipse EPL ソースコードはhttps://git.eclipse.org/c/に集約されている。Eclipseはメジャーバージョン毎にgitレポジトリを変えており、Eclipse最新版のMarsの場合はこちらだ。
  • Mac OS X
  • Linux
  • Windows
年に1回のペースでリリースがあり、2015年6月に最新版がリリースされた。詳細はEclipse Project Release Notes 4.5で確認されたい。
Emacs GPL ソースコードは下記から入手可能だ。
emacs - Git Repositories [Savannah]
ただし、動作環境に最適化されたカスタマイズ版が存在するため、必ずしもコードを上記から入手しない。
  • Mac OS X
  • Linux
  • Windows
年に1回のペースでリリースがある。詳細はGNU Emacs Release Historyで確認されたい。

上記の表をみるところ、Winpdbは開発が止まっているため、同ツールを選ぶのは賢い選択とは言えない。そうすると、EclipseとEmacsが残る。

EclipseはPyDevというプラグインを追加することでPythonのコードを書くための環境が整う。このプラグインの追加作業はGUIで完結する。一方、Emacsは個人の判断でどうにでもなるので、これといった決まった構成はないが、原則としてテキストベースで全てプラグイン設定をするので、学習曲線がやや高めである。

### Eclipse

EclipseでPythonを書く場合、PyDevというプラグインが必須だ。このPyDevは[https://github.com/fabioz/Pydev](https://github.com/fabioz/Pydev)で公開されており、ライセンスもEPLと明言されている。開発も継続されているので、この組み合わせで進めるならば、いきなりツール公開もしくは開発が止まるといったことは起きないだろう。

ただし、下記の記事などで紹介されている[MayaEditor](http://www.creativecrash.com/maya/downloads/applications/syntax-scripting/c/eclipse-maya-editor)については、導入する前に外部から遮断された閉じたネットワーク内でよく検証すべきだろう。

  • [統合プログラミング環境、Pleiades (プレアデス) Eclipseを使ってMayaPython開発をする](http://www.comtec.daikin.co.jp/DC/UsersNotes/Ritaro/tutorial/python_IDE/)
  • [Eclipse as Python Editor for Maya 2013 | Neal's Stuff](http://nealbuerger.com/2012/07/eclipse-python-editor-maya-2013/)

MayaEditorはEclipseとMayaの間で通信をするためのツール(らしく)で、CreativeCrashでバイナリのみを公開している。

  • ソースコードが公開されていないため誰も引き継げない。このツールの開発が止まった場合は自力で何とか対処しなければならない
  • 「EclipseとMayaの間で通信をするためのツール」らしい (スニッフして検証をしてみないと本当のところはわからない)

MayaEditorを導入する場合は、よく考えたほうがいい。

## まとめ

お金に余裕があるならば Wing IDEかPyCharmを選択する。 お金を抑えたい場合はEclipse、Emacsが好きならEmacsを選ぶ。

開発環境に関してはこんなところだろうか。