カスタム トランスフォームの概要
 
 
 

Maya API には、カスタム トランスフォーム ノードの作成と操作が可能なプロキシ クラスが用意されています。カスタム トランスフォームは、Maya API の詳細な利用方法です。トランスフォーム ノードは DAG(Directed Acyclic Graph)ですべてのシェイプ(Shape)ノードやジオメトリ ノードの上になければならないため、Maya の標準的なトランスフォーム ノードは非常に重要です。しかし、カスタム トランスフォームを使用すると、Maya のトランスフォーム ノードをさらに細かく制御できます。

Maya のトランスフォーム ノード(カスタム トランスフォームを含む)は Maya の DAG ノードから派生しており、他の DAG ノードのグループ化や変換を行う場合に使用します。トランスフォーム ノードは、トランスフォーム ノードの下に DAG ノードをいくつでも持つことができます。DAG ノードがトランスフォーム ノードではない場合、この DAG ノードはトランスフォーム ノードの子でなければなりません。

トランスフォーム ノードには、Maya のその他のノードと同様に、入力と出力アトリビュートが含まれています。最も重要な入力アトリビュートは移動(translate)回転(rotate)、およびスケール(scale)で、変換行列が最も重要な出力アトリビュートです。

カスタム トランスフォームを使用するには、次のクラスについて理解しておく必要があります。

カスタム トランスフォームを使用するには、MPxTransform API クラスから新しいクラスを派生させる必要があります。MPxTransform クラスは、MPxTransformationMatrix クラスと組み合わせて使用します。MPxTransform から派生させたクラスと提供された MPxTransformationMatrix を使用して新しいカスタム トランスフォームを実行することができます。MPxTransform クラスおよび MPxTransformationMatrix クラスには、新しいトランスフォームの機能を優先的に提供する仮想メソッドが含まれます。これらのクラスで利用できる仮想メソッドを使用すると、Maya の標準的なトランスフォームに対する適切なデフォルト動作を実現できます。

これらのクラスを同時に表示する場合、使用可能なメソッドに存在する平行部分に注意する必要があります。たとえば、MPxTransform::scaleTo()MPxTransformationMatrix::scaleTo() です。これらのクラスでは、DG ノードと変換行列は区別されます。ノード メソッド MPxTransform::scaleTo()MPxTransformationMatrix::scaleTo() を呼び出し、処理を実行して結果を返します。MPxTransform::scaleTo() はこの結果を取得して、ノードに格納します。カスタム トランスフォームに新しいアトリビュートを追加するには、同様の方法を行う必要があります。