Maya アプリケーションでの Python のサポートの他に、Maya ではスタンドアローン型 Python インタプリタからの Python モジュールの使用もサポートしています。これはバッチ処理や、Python を使用する別のアプリケーション(MotionBuilder や Composite など)から Maya の機能にアクセスする場合に便利です。
Autodesk では、Maya の機能を読み込むために適切に構成されたスタンドアローン型 Python インタプリタを提供しています。次の場所から、mayapy 実行可能ファイルを実行します。
¥bin フォルダ内から mayapy を開始する代わりに、MAYA_LOCATION の絶対パスを指定する必要があります。
Python インタプリタがロードされたら、Maya をロードして初期化する必要があります。これには、以下をウィンドウに入力します。
import maya.standalone maya.standalone.initialize( name='python' )
すべての Maya ライブラリをロードしてシーンを初期化するため、このコマンドの実行にはかなりの時間がかかります。
初期化ルーチンはパラメータを 1 つだけ(name)取りますが、このパラメータはオプションです。name パラメータは Maya にアプリケーションの名前を伝えます。name の既定値は python です。
Maya がロードされ初期化されると、Maya の機能がすべて使用可能になるはずです(maya.cmds、maya.OpenMaya など)。ただし、Python インタプリタ内での Maya の実行は、Maya をバッチ モードで実行することに相当します。そのため、UI コマンドの無効化を含む通常のすべての Maya バッチ モードでの制限が存在します。
Maya 内では PYTHONHOME 環境変数が設定されますが、外部インタプリタを使用している場合、この変数は、Maya 外ではクリアされます。
try: import maya.standalone maya.standalone.initialize() except: pass
Maya の Python インタプリタ内にいる場合、initialize() コールが投げた例外が無事受け取られます。
Maya の出荷時に同梱されるものとは別の Python インタプリタから Maya を使用することも可能です。ただし、Maya に同梱されている Python と同じバージョン番号を使用することをお勧めします。別のインタプリタを使用するには、適切な環境を設定することが必要です。
Python インタプリタの環境を設定するには
Mac OS X では、MAYA_LOCATION がアプリケーション バンドルの位置(../files/Maya.app/Contents)を指し示すように設定してください。
スクリプトなしで環境を設定するには
1. ../files/Maya.app/Contents/MacOS を DYLD_LIBRARY_PATH に追加して、Python が Maya の共有ライブラリを検索できるようにします。
2. ../files/Maya.app/Contents/Frameworks を DYLD_FRAMEWORK_PATH に追加して、Maya が依存しているフレームワークを Python が検索できるようにします。
3. MAYA_NO_BUNDLE_RESOURCES を何らかの値に設定します。これにより、メイン バンドルを検索する代わりに MAYA_LOCATION を介してリソースを検索するよう Maya に指示します (Maya をこの方法でバッチで実行すると、メイン バンドルは Maya のメイン バンドルではなくなります)。