このセクションでは、ディペンデンシー グラフ(DG)について紹介します。さらに、Maya API を拡張して統合するプラグインを記述するために、Maya API を使用する方法についても説明します。
ディペンデンシー グラフは Maya の中核です。適用した操作と順番が記録された、シーンのコンストラクション ヒストリが保持されています。グラフは一連の相互接続されたノードで構成されており、各ノードは単一の操作または単一の計算セットをカプセル化しています。各ノードは、明確に定義された特定の入力データ セットを受け取り、そのデータに基づいて計算を実行し、1 つまたは複数の出力値を生成します。ノード、接続、およびディペンデンシー グラフの仕組みに関する背景情報については、「ディペンデンシー グラフについて」を参照してください。
Maya API を使用して、受信データに基づいてカスタム操作を実行する、独自のカスタム ディペンデンシー グラフ ノードを作成できます。記述する各種ノードは、基本的な MPxNode クラスから派生するクラスによって表され、ディペンデンシー グラフに接続するために必要なメイン インタフェースを提供します。また、Maya API は、MPxNode から派生する他の複数のベース クラスも提供しますが、このクラスは異なる用途に対する動作に特化しています。たとえば、カスタム デフォーマを実装するために、MPxNode の代わりに MPxDeformerNode からカスタム ノード クラスを派生させることができます。Maya は、カスタム ノードが組み込みタイプのデフォーマを処理するときと同じ方法で、カスタム ノードを処理します。これらの基本クラスの説明については、「ベース ディペンデンシー ノード クラス」を参照してください。
すべてのノード クラスは、いくつかのアトリビュート**を設定する必要があります。アトリビュートでは、ノードが受け取る入力データのタイプおよびノードが生成する出力データのタイプを定義します。詳細については、「アトリビュートとプラグ」および「複雑なダイナミック アトリビュート」を参照してください。
各ディペンデンシー グラフ ノードの主な処理は、通常、その仮想メソッド compute() 内で実行され、使用するカスタム クラスに実装する必要があります。実装を記述する場合の注意点については、「ディペンデンシー グラフ ノードに compute()メソッドを実装する」を参照してください。Maya は、専用データ ブロック内の各ノードに関連するデータをすべて保持し、ノードの出力値を再計算する必要があるたびにこのメソッドに渡します。ハンドルを使用して、このブロックから入力データを読み込み、出力データをブロックに書き込みます。詳細については、「データ ブロックを使用する」を参照してください。
新しいタイプのディペンデンシー グラフ ノードを定義するプラグインの操作例については、「ディペンデンシー ノードの基本例」および「より複雑なディペンデンシー グラフの例」を参照してください。