Maya の Python

Python のスクリプティングは、単純なコマンドの実行や、プラグインの開発などの Maya の多くのタスクに使用できます。さまざまなタスクを対象とするいくつかの異なる Maya 関連ライブラリが用意されています。次に、Maya に付属している Python ライブラリの概要を示します。

maya.cmds
MEL コマンドの Python ラッパーであり、MEL の代わりに使用することができます。詳細については、「Python を使用する」と「 Python コマンド リファレンス.
pymel.core
Pymel は、 サード パーティによって開発された、MEL の代替ラッパーです。Maya に付属していますが、オートデスクによってサポートされません。このライブラリのコマンドは、 maya.cmds の手続き型のアプローチとは異なる構成で、オブジェクト指向のアプローチをとります. 詳細については、「PyMEL の使用法」と「 PyMEL リファレンス.
maya.OpenMaya
Maya C++ API の Python ラッパーで、Python API 1.0 と呼ばれます。プラグインの開発と、MEL によって公開されていない機能を必要とするその他のタスクに最適です。公開されたクラスを理解するには、概念的なトピックと Maya 開発者ヘルプ. 詳細については、 Maya 開発者ヘルプの「Maya Python API 1.0」を参照してください。
maya.api.OpenMaya
Maya C++ API の Python ラッパーで、Python API 2.0 と呼ばれます。このラッパーは Python API 1.0 よりもパフォーマンスが高く、"Python らしい" API です。まだ開発中の新しい API なので、1.0 で公開されているすべてのクラスは使用できません。詳細については、 Maya 開発者ヘルプの「Maya Python API 2.0」と「Maya Python API 2.0 プリファレンス」を参照してください。

maya.cmds を使用する

Autodesk Maya は、以前 MEL コマンドを使用していた場所ではすべて Python スタイルのスクリプティングをサポートしています。Python スクリプティングを Maya に実装することで、MEL により提供される一般的な Maya コマンドに同じようにアクセスできます。つまり、spherels などすべてのビルトイン Maya コマンドに Python からアクセスできます。

MEL スクリプトとして書かれたコマンド(実際には MEL グローバル プロシージャ)には、MEL にアクセスするコール(maya.mel.eval)を使用してアクセスします。詳細については、MEL と Python の通信を参照してください。

PySide のバージョン 2.0 は Maya に含まれています。これは、Python 2.7 と Maya Qt のバージョン 5.6.1 で構築されています。

注: 通常は対応する Python コマンドがありますが、Python では使用できない特定の MEL ビルトインがあります。このようなビルトインには、数学関数(abssincos など)や文字列関数(matchgmatchtokenize)があります。(MEL ビルトイン関数のセットは MEL ランタイム ライブラリと見なされます)。

Python は、類似の機能を提供する豊富な標準モジュールを備えています。使用可能な関数とこれらの関数の Python スクリプトでの使用方法の詳細については、Python のマニュアルを参照してください。

Maya 2018 の PyQt を構築する

Autodesk Maya 2018 の PyQt を構築する場合は、Microsoft 2015 Visual Studio Update 3 のコンパイラを使用する必要があります。

PyQt モジュールのコピーを構築する方法については、autodesk.com/maya-docs-jpn の「PyQt」セクションを参照してください。

Python コマンド リファレンス(Python Command Reference)

MEL コマンド リファレンスに似た Python コマンド リファレンスがあります。すべての Python コマンドの詳細については、Maya ヘルプ(Maya Help)の『Python コマンド リファレンス』を参照してください。

このヘルプには、ヘルプ > Python コマンド リファレンス(Help > Python Command Reference)を選択するか、Maya ヘルプを開く(ヘルプ > Maya ヘルプ(Help > Maya Help))ことによりアクセスできます。ヘルプが表示されたら、ナビゲーション フレームの最下部にある CommandsPython をクリックします。

バージョン

Maya をインストールすると、同時に Python もインストールされます。Maya はサポートするすべてのプラットフォームで Python バージョン 2.7.11 を使用します。Maya 用のスタンドアローン型 Python シェルは Windows では mayapy.exe、Linux と Mac OS X では mayapy という名前です。

外部リソース

リファレンス マテリアルとリソースを含む Python 入門の詳細については、以下を参照してください。

Maya 環境を Python で Python 用に初期化する

Maya は起動する度に、userSetup.py ファイルのすべての Python コマンドを実行します。このファイルを使用して、作業環境を設定したり、maya.cmds モジュールの読み込みなどの頻繁に使用する Python コマンドを実行したりすることができます。

userSetup.py スクリプトは Maya の初期化およびセットアップ フェーズ時に実行されるので、このスクリプトでは、作業環境をセットアップし、Maya 機能への依存性を持たないコマンドだけが正常に実行されます。

注:

maya.utils.executeDeferred() を使用すると、Maya シーンが初期化されるまでコード実行を遅延させることができます。詳細については、maya.utils を参照してください。

  1. 次のフォルダに userSetup.py という名前のファイルを作成します。
    • Windows: <ユーザのフォルダ>\My Documents\maya\<バージョン>\scripts
    • Mac OS X: ~/Library/Preferences/Autodesk/maya/<バージョン>/scripts
    • Linux: ~/maya/<バージョン>/scripts
  2. userSetup.py ファイルに、起動時に Maya に実行させるコマンドを入力します。たとえば、import maya.cmds as mc と入力します。
    注:

    ファイルは必ず正しい拡張子(.py)で保存してください。

Python パスに項目を追加する

Python のパスに項目を追加するには、次のいずれかを行います。

  1. PYTHONPATHMaya.env ファイルまたは作業環境で設定してから Maya を実行します。
  2. Maya が実行を開始したら、userSetup.py またはその他のスクリプトの sys.path にアペンドします。

次に sys.path にアペンドする例を示します。

import sys sys.path.append( '/Users/jdoe/maya/Scripts' )
注: userSetup.py が起動時に自動的に実行されるようにするには、Python の初期パス(sys.path)に配置する必要があります。Python の既定のパスは、環境変数 PYTHONPATH を設定することで追加できます。

MEL と Python の読み込み

パスに MEL スクリプトがある場合は、同じ名前を含む任意の 1 つのグローバル プロシージャにアクセスする前に、このスクリプトをソースにする必要はありません。ただし、Python ではまずスクリプトを明示的に読み込んでから、スクリプトに含まれる任意のクラスや関数にアクセスする必要があります。

# This will access the function "bar" in the file "foo.py"
import foo
foo.bar()