Maya Python API は C++ Maya API の正確なコピーではありません。統合のため、Python のバインドには変更を加えています。
MString および MStringArray クラスがない
Maya Python API からは、MString および MStringArray クラスを削除しました。Python にはすでに非常に堅牢な文字列の実装があるため、独自のものは必要ないからです。
Maya API では、メッセージを含む数箇所で void* ポインタを使用しています。Maya Python API では、void* ポインタの代わりに任意の Python オブジェクトを渡すことができます。
creator() 関数またはその他任意の関数プロキシ クラスを作成してそのクラスを Maya に返す場合、新しいオブジェクト上で OpenMayaMPx.asMPxPtr() を呼び出す必要があります。この呼び出しにより、オブジェクトの所有権が Mayaに移行します。この呼び出しを行わないと、Python が所有権をそのまま保持し、Maya がオブジェクトへのポインタを持っていても、オブジェクトのリファレンス解除と破壊を行う可能性があります。
C++ では、入力済みの引数を検索するため、引数パラメータ MPxCommand::doIt() を使用できます。Python ではこれは動作しません。代わりに、MSyntax および MArgParser クラスを使用して、スクリプトとして作成された MPxCommand 内で引数をサポートする必要があります。
Maya Python API呼び出しと Maya コマンド呼び出しを、同一のスクリプトで混在させることができます。Maya Python API 呼び出しでモデルを修正した後で「元に戻す」操作が適切にサポートされない場合、このようなスクリプトの「元に戻す」操作は正しくなりません。
これらのインタフェースを C++ 用に出荷している共有ライブラリと比較すると、唯一の違いは新しい OpenMayaMPx モジュールです。このモジュールには Maya が提供する任意のプロキシまたは MPx クラスへのバインドが含まれます。
Maya Python API のバインドは、Maya API の C++ インクルード ファイルを使用して生成しています。インクルード ファイルは Maya Python API でのプログラミングには必要ありませんが、バインドに含まれている機能と含まれていない機能を確認するのには便利です。C++ API のすべての項目がスクリプト可能なわけではありません。