【Maya】OpenMaya Python API 2.0のオートコンプリート

自分はEclipseでMayaのスクリプトを書いてますが、

デフォルトだとPython API 2.0 のOpenMayaを書いてもオートコンプリートが効いてくれません。

 

オートコンプリート自体は使えなくてもまだいいんですが、

Eclipse上でimportが有効にならないので×ついてしまうのが気になってしまい

どうにかならないかなぁと無理矢理やってみました。

 

自分はEclipseでやっていますが、おそらくVisualStudioなどでも有効??(Mayaは2016という環境)

 

※お試しになる場合は自己責任でお願いします。


まずその前にMayaでスクリプト書くのにEclipseを使いたい方はこちらの記事を参考にして頂くと良いと思います。

 

統合プログラミング環境、Pleiades (プレアデス) Eclipseを使ってMayaPython開発をする
http://www.comtec.daikin.co.jp/DC/UsersNotes/Ritaro/tutorial/python_IDE/


API2.0のことを調べていて下記の記事をみつけました。

 

Maya 2016 + Visual Studio 2013 のPython開発環境の構築 – Mukai Laboratory
http://mukai-lab.org/library/mayapythonvs.html

 

こちらの記事ではVisualStudioを使われていますが、

import maya.api.OpenMaya
だとIntellisense(オートコンプリート)が機能せず、
import maya.api._OpenMaya_py2

にするとIntellisense(オートコンプリート)が機能すると書いてあり、

Eclipseでも_OpenMaya_py2にすると効くようになりました!

 

そこでEclipseで設定している事前定義ファイルの場所を見てみました。
C:\Program Files\Autodesk\Mayaのバージョン\devkit\other\pymel\extras\completion\pypredef
こちらにこの↓4つのファイルがあります。

maya.api._OpenMaya_py2.pypredef

maya.api._OpenMayaAnim_py2.pypredef

maya.api._OpenMayaRender_py2.pypredef

maya.api._OpenMayaUI_py2.pypredef

 

ん?まてよ、このファイル名に見覚えあるぅぅぅぅぅぅ!!

おそらくこれらのファイルからインポートされているものだと推測しました。

 

そして、それらのファイルとは別にこの↓4つのファイルもあります。

maya.api.OpenMaya.pypredef

maya.api.OpenMayaAnim.pypredef

maya.api.OpenMayaRender.pypredef

maya.api.OpenMayaUI.pypredef

 

これを開いてみると空っぽでした。

今までやっていたインポートしていたのたのはこれらのファイル・・・?!

なので、試しに maya.api._OpenMaya_py2.pypredef の中身をコピーして maya.api.OpenMaya.pypredef にペーストして上書きしてみます。

 

すると、どうでしょう!

import maya.api.OpenMaya
と書いても、オートコンプリートが効くようになりました!!
今のところ自分の環境で不具合は起きてませんが、
万が一挙動がおかしくなりましたら maya.api.OpenMaya.pypredef などのファイルを
空っぽにして上書きしてもらえば大丈夫かと思います。
こんな事しなくても import maya.api.OpenMaya でオートコンプリートできるようにするやり方ありましたら教えて下さい。