Autodesk® Maya® はオープン プロダクトです。つまり、Autodesk 社外の方でも、既存の機能の変更やまったく新しい機能の追加が実施できます。Maya は、以下のいくつかの方法で修正できます。
MEL の紹介については、『MEL とエクスプレッション』マニュアル、Python の同等のインタフェースについては『Python』マニュアルを参照してください。これらのマニュアルでは、Maya API と Python API の技術的な面を紹介しています。
Maya APIは、Maya への内部アクセスを提供する C++ API で、Microsoft® Windows®、Linux®、Apple® Mac OS® X などのプラットフォームで使用できます。API を使用して、Maya の機能を拡張するプラグイン、または Maya モデルをアクセスし、操作するコンソール アプリケーションなどのスタンドアローンの 2 つのコード リソースを実装することができます。
API 開発キットの例の多くは、C++ と Python の両方のソース コードで提供されています。両方のバージョンを Maya に同時にロードするために、Python プラグインのコマンドとノードの前には「sp」をつける規則を採用しました(たとえば、spHelix など)。ユーザが、この規則に従う必要はありません。
ダイナミック ライブラリを使用する場合、開発に使用したオペレーティング システムにより、プラグインの構築と名前付け方法にさまざまな制約が課されます。プラグインに使用するファイル拡張子は以下のとおりです。
また、プラグインと API アプリケーションの作成ルールは、プラットフォームによって異なります。その規則については、本書の後半で説明します。
Maya API は、Maya インストール パッケージの開発キットに入っています。プラットフォームによっては、デフォルトでは Maya のインストール プログラムにより開発キットがインストールされません。したがって、インストール プロセスで、開発キットのインストールを指定する必要がある場合があります。開発キットには、インクルード ファイル、ライブラリ、サンプルの主要な 3 つのコンポーネントが含まれます。
開発キットは、Maya とインタフェース接続するヘッダー ファイルを提供します。これらのヘッダー ファイルは、include/maya ディレクトリにあります。Maya のヘッダー ファイル名は、通常、接頭辞 M で始まります。特定の種類のヘッダー ファイルでは、M の後の 2 文字がヘッダー ファイルの種類を示します。Fn は関数セット、It はイニシエータ、Px はプロキシ クラスです。この命名規則については、後で詳しく説明します。
この API は、Maya のさまざまな機能領域に対応するライブラリのセットとしてパッケージ化されています。ライブラリは以下のとおりです。
OpenMaya—ノードとコマンドを定義して、それらをプラグインに組み立てするための基本的なクラスが含まれています。
OpenMayaUI—マニピュレータ、コンテキスト、およびロケータなどのユーザ インタフェース エレメントを新規作成するために必要なクラスが含まれています。
OpenMayaAnim—デフォーマおよびインバース キネマティクス(IK)などのアニメーション用のクラスが含まれています。
OpenMayaFX—Autodesk® Dynamics™ のクラスが含まれています。
OpenMayaRender—レンダリング機能の実行に必要なクラスが含まれています。
これらのライブラリは共有ライブラリなので、多数のプラグインが同時に使用できます。ライブラリは、lib ディレクトリにあります。
ビルド > <MayaAPI>.exe のビルド(Build > Build <MayaAPI>.exe)(<MayaAPI> は、Maya API アプリケーションの名前)を選択して、プラグインをビルドします。
Maya API のサンプルは devkit ディレクトリに保管されています。このディレクトリには、applications フォルダと plug-ins フォルダが含まれます。applications フォルダにはスタンドアローン API アプリケーションのサンプルが、plug-ins フォルダには Maya API プラグインのサンプルが入っています。スタンドアローンやプラグインの構築に使用される手法は、プラットフォームによって異なります。ほとんどの場合、Makefiles が使用されます。Windows および Mac OS X には、提供されているサンプルの大半を構築するための IDE ソリューションが用意されています。
Maya Python API のサンプルは、Maya 開発キットのplug-ins/scripted フォルダで見つかります。
Maya のインストール DVD にはコンパイル済みのプラグイン バイナリとアプリケーション バイナリは入っていません。ユーザがビルドする必要があります。開発キットのサンプルのビルドについて詳しくは「ビルド環境を設定する」を参照してください。
Maya API に関しては、さまざまなマニュアルが用意されています。提供されているマニュアルは以下のとおりです。
この Maya API の技術的基礎知識には、Maya Python API のセクションが含まれています。また、このクラス定義マニュアルは C++ と Maya Python API の両方の開発アプローチについての情報が含まれているので、両方の開発で使用します。
これらのリソースには、Maya ヘルプ( ヘルプ > Maya ヘルプ(Help > Maya Help))からアクセスできます。
Maya API は C++ API なので、以下を理解しておくことが最善でしょう。
さらに、プラグイン、またはスタンドアローンを構築するときには、そのリリースに対して推奨されているコンパイラ、およびリンカを使用する必要があります。この情報については、API の「新機能」、またはこのマニュアルの プラグインおよびアプリケーションの構築に関する基礎知識を参照してください。