近接ラップ(Proximity Wrap)デフォーマを使用したグローバル スケーリング

このトピックでは、近接ラップ(Proximity Wrap)の位置が proximityWrap の inputGeometry のデフォメーションに影響を与える方法を制御する方法について説明します。

ドライバの頂点は、次の 2 つの方法で移動できます。

上の例では、青いプレーンがドライバで、緑色のトーラスに影響を与えています。青いプレーンの頂点は、モーフ デフォーマとクラスタ デフォーマによって変形されます。

モーフ デフォーマは、プレーンにベンドを作成しますが、スケールや回転は行いません。クラスタ デフォーマは、頂点を移動してジオメトリを視覚的に「スケーリング」しますが、ドライバはこれが実際にスケーリングを表すものとは認識していないことに注意してください。ドライバのトランスフォームにより、スケーリングと移動のもう 1 つのレベルが追加されます。

移動した頂点のみを使用すると、トーラスはフラット化されます

ドライバが移動した頂点のみを使用する場合、トーラスはプレーンに沿ってストレッチしますが、元の高さは維持されるため、フラット化されます。これは、近接ラップ(Proximity Wrap)では実際のトランスフォーム情報が使用されず、移動されたドライバの頂点のみが使用されるためです。

ドライバがトランスフォームを考慮するようにする場合は、アトリビュート エディタ(Attribute Editor)の近接ラップ(Proximity Wrap)設定のドライバ(Driver)領域で、トランスフォームをデフォメーションとして使用(Use Transform As Deformation)オプションを無効にします。(近接ラップ(Proximity Wrap)オプションの「ドライバ アトリビュート(Driver Attributes)」を参照してください)。

上記の例でトランスフォームをデフォメーションとして使用(Use Transform As Deformation)をオフにすると、トーラスはドライバによってスケーリングされます。ただし、クラスタ デフォーマで追加された「スケーリング」にトーラスが反応することはありません。

トランスフォームをデフォメーションとして使用(Use Transform As Deformation)をオフにすると、トーラスはドライバによってスケーリングされますが、クラスタ デフォーマではスケーリングされません

これに対処するには、近接ラップ(Proximity Wrap)に追加情報を提供します。この操作は、2 つの方法で行うことができます(両方を組み合わせて使用することもできます)。
方法 1
1 つ目の方法では、暗黙的トランスフォームの行列を指定します。ノード エディタ(Node Editor)で、クラスタ ハンドルのワールド行列(World Matrix)アトリビュートを近接ラップ(Proximity Wrap)のドライバ クラスタ行列(Driver Cluster Matrix)アトリビュートに接続して、暗黙のトランスフォームに関する情報を提供します。
注: 行列をアトリビュートに接続して、移動元の位置を指定することができます。ドライバ クラスタ レスト行列(Driver Cluster Rest Matrix)アトリビュートは、レスト トランスフォームとドライバ クラスタ行列(Driver Cluster Matrix)の現在のトランスフォームを提供します。これらの間の相対的なモーションが、proximityWrap の暗黙的トランスフォームとして使用されます。
方法 2

2 つ目の方法では、単純な均一スケール値を指定します。ドライバの暗黙的なスケーリング値が 2.5 の場合は、スケール補正(Scale Compensation)アトリビュートを使用して proximityWrap デフォーマにこの値を設定できます。この設定は、proximityWrap デフォーマにグローバルに設定してすべてのドライバに適用することも、ドライバごとに個別に設定することもできます。

左: 移動した頂点のみ使用、右: すべてのトランスフォームを使用。