Maya の Python
 
 
 

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

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

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

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

Python コマンド リファレンス

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

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

バージョン

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

外部リソース

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

Maya 環境を Python 内および Python 用で初期化する

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

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

注:maya.utils.executeDeferred() を使用すると、Maya シーンが初期化されるまでコード実行を遅延させることができます。詳細については、 maya.utilsを参照してください。
  1. 次のフォルダに userSetup.py という名前のファイルを作成します。
    • Windows: <ドライブ名>:\Documents and Settings\<ユーザ名>\My Documents\maya\<Version>\scripts
    • Mac OS X: ~/ライブラリ/Preferences/Autodesk/maya/<バージョン>/scripts
    • Linux: ~/maya/<バージョン>/scripts
  2. userSetup.py ファイルに、起動時に Maya に実行させるコマンドを入力します。たとえば、次のように入力します: impo t maya.cmds as mc
    注:ファイルは必ず正しい拡張子(.py)で保存してください。

Python パスに項目を追加する

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

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

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

import sys sys.path.append( '/Users/jdoe/maya/Scripts' )

MEL と Python のインポート

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

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