MayaでPythonを用いたツール開発を行う場合,Visual StudioやEclipseのようなIDEに染まってしまった開発者にとっては,Mayaのスクリプトエディタだけでは満足なプログラミングができません.本記事では,Visual Studio 2017 CommunityをMaya python開発環境として利用する方法をまとめます.
設定の手順は下記の通りです.なお,あらかじめMaya Developer Kitがインストールされているものとします.
- Python Tools for Visual Studioのインストール
- Python Toolsの設定
- Pythonプロジェクトの作成
- 参考にしたサイト
- Adding Maya Python Auto Completion To Visual Studio 2013 | cgmike(リンク切れ)
- Maya Python: Visual Studio 2013 | JosBalcaen(リンク切れ)
1. Python環境のインストール
Visual Studioのインストール時に「Python開発」にチェックを入れておきます.設定画面の右側にある「概要」では,いずれのオプションもチェックする必要はありません(必要なオプションを設定しても問題ありません).
2. Python環境の設定
次に,Visual Studio上でMaya2017向けのPython環境を設定します.まず,Visual Studioを起動し,[ツール]→[Python]→[Python環境]を開きます.
すると,手元の環境では,”Python環境”という名前のドッキングウィンドウが開きます.「+カスタム]を選択し,新しい環境設定の構成を開始します.
構成の内容は次の通りです.
- 説明:
- 「Maya2017」のような適当な設定名を入力します.
- プレフィックスパス:
- “Maya2017のインストール先”+”\Python”を指定します.手元の環境では”C:\Program Files\Autodesk\Maya2017\Python”です.
- インタープリターパス:
- MayaPythonインタプリタのパスを指定します.手元の環境では”C:\Program Files\Autodesk\Maya2017\bin\mayapy.exe”です.
- ウィンドウ表示のインタープリター:
- 同上です.MayaPythonインタプリタのパスを指定します.
- 言語バージョン:
- Maya2017のpythonはバージョン2.7.11なので,”2.7″を選択します.
- アーキテクチャ:
- Maya2017はx64版しかないので,”64-bit”を選択します.
- パス環境変数
- pythonの環境変数”PYTHONPATH”を入力します.
最後に[適用]ボタンを押して,設定項目の入力を終了します.Python環境の設定は以上です.
3. Pythonプロジェクトの作成テスト
Visual Studioでpythonプロジェクトを作成し,maya pythonが利用できることを確認します.Visual Studioの[ファイル]メニューから[新規作成]→[プロジェクト]を選択し,”新しいプロジェクト”ダイアログを開きます.
左のリストから[インストール済み]→[Python]を選択した後,中央ウィンドウに表示されるプロジェクトの種類から「Pythonアプリケーション」を選択します.今回のプロジェクト名は適当に「MayaPythonTest」としました.最後に[OK]ボタンを押して,新しいテスト用プロジェクトを作成します.
プロジェクト作成直後にMayaPythonTest.pyを編集すると,Intellisenseが働く様子が確認できると思います.例えば,sysモジュールをインポートした次の行に「sys.」と記入した時点で,下図のようにモジュールに含まれる定数や関数等の一覧が表示されます.
ただし,この時点ではmaya python独自のモジュールについてはIntellisenseは機能しません.mayaのパッケージやモジュールについても,コード補完等のIntellisenseを適用するためには,pythonプロジェクトの「Search Paths」の設定が必要です.
[ソリューションエクスプローラー]を開き,MayaPythonTestソリューション内,MayaPythonTestプロジェクトの「Search Paths」に下記5つのフォルダを追加します.なお,新しいパスは,「Search Paths」を右クリックして現れたメニューから[Add Folder to Search Path]を選択すれば指定できます.- C:\Program Files\Autodesk\Maya2017\Python\Lib\site-packages
- C:\Program Files\Autodesk\Maya2017\devkit\other\pymel\extras\completion\py\maya
- C:\Program Files\Autodesk\Maya2017\Python\Lib\site-packages\pymel\core
- C:\Program Files\Autodesk\Maya2017\lib
- C:\Program Files\Autodesk\Maya2017\devkit\other\pymel\extras\completion\py
正常に設定できると,「maya.cmds.」のようなmaya pythonコードに対しても,Intellisenseが機能するようになります.
ただし,私の手元の環境では,Maya Python API 2.0,つまりOpenMayaやOpenMayaAnimに対してうまくIntellisenseが機能しませんでした.その際は,
1 2 | import maya.api.OpenMaya import maya.api.OpenMayaAnim |
ではなく,
1 2 | import maya.api._OpenMaya_py2 import maya.api._OpenMayaAnim_py2 |
のように API2.0 のモジュールを直接インポートすれば,とりあえずIntellisenseが機能するようです.もちろん,コーディング終了時には元のモジュールに戻すのがよいでしょう.
5. まとめ
Maya 2017におけるPython開発をVisual Studio 2017 Communityで行うための環境構築方法をまとめました.参考にしたウェブサイトではMaya2014あたりまでの言及しかありませんでしたが,最新のMaya2017でも動作することが確認できました.なお,大規模なツール開発等,実運用では色々と問題が生じるかもしれません.当研究室でも色々試していく予定ですので,そのあたりは折りをみてまとめたいと思います.