スマート コリジョンはコリジョン デフォメーションの 1 つで、マッスル デフォーマの一部です。このコリジョンでは、コリジョンの領域と、処理方法を決定するための cSmartCollide プレーン ノードを設定することができます。単純な平面コリジョン エフェクトになりますが、より精度の高い正確なメッシュ同士のコリジョンに切り替えることもできます。
コリジョンを提供するほか、cSmartCollide ノードと変形では、基本的なスキニング エフェクトを増大させるその他のウェイト タイプも使用できます。これらのウェイトは、余分なジョイントやマッスルを使用せずに、メッシュ部分のバルクまたはバルジ アウト、リンクル エフェクトの作成、ポイントのスライドなど、ジョイントの位置でより適切な変形が行えるようにします。
たとえば、cSmartCollide ノードは、2 つのジョイントが一緒に回転しているメッシュの部分をバルジ アウトするウェイトを提供します。この結果、実際のマッスルを使用するというオーバーヘッドなしに、指のようなものにすばやくボリューム エフェクトを加えることができます。
スマート コリジョンは、Maya マッスルの提供する 3 種類のコリジョン手法の中で最も高速です。
スマート コリジョン ノードの主な用途の 1 つに、スキニングで発生する一般的な問題の解決があります。実際にコリジョンを起こさずに、スマート コリジョンを使用できます。マッスル スマート コリジョン ノードにはいくつかの動きに関するアトリビュートがあります。これらのアトリビュートはウェイト付けされたポイントに適用されるモーションの強さや量をコントロールするもので、それぞれ対応するウェイト マップが存在します。たとえば、バルク A(bulkA)/バルク B(bulkB) アトリビュートは、ペイント可能なスマート バルク(Smart Bulk)ウェイトに関連しています。
2 つのジョイントをアラインすると、ペイントされたウェイトやアトリビュートは多かれ少なかれ、メッシュに影響を与えます。つまり、動きのウェイトのエフェクトは、ジョイントの回転に基づいて「トリガ」されます。B ジョイントが A ジョイントに向かって回転すると、エフェクトは増大します。各ポイントは、ペイントされたウェイトに基づいてアトリビュートごとに調整されます。たとえば、バルク 1.0 でペイントされたウェイトには、そのポイントが「領域」ウェイト A または B のどちらに含まれているかに応じて、バルク A(Bulk A)または バルク B(Bulk B)アトリビュートの値が掛けられます。ポイントがオリジナルの「領域」ウェイトに含まれていない場合、変形はされません。
ウェイトの大半では、ジョイントが一緒に回転している側面では、その反対側よりも多くのポイントが移動されるということに注意しておくことが重要です。たとえば、指を内側に曲げる場合、メッシュ全体の周りにペイントされているとしても、バルク(Bulk)ウェイトは主に指の「内側」部分に影響を与えます。このようにして、脊椎や腹部全体などキャラクタの周囲にウェイトを適用できますが、実際に膨らむ領域が発生するのは、その方向にジョイントを回転させたときのみです。この減衰角度を設定するには、マッスル スマート コリジョン ノードの最小角度(angleMin)アトリビュートと最大角度(angleMax)アトリビュートを使用します。この減衰角度は、暗示的にジョイントの回転に基づいて 2 つのジョイントを二分割するように定義されます。
動きのオプションの他、スマート コリジョン ノードは平面コリジョン、またはメッシュ-メッシュ コリジョンも提供します。平面化またはコリジョンされる領域のウェイトとこのコリジョンに基づいてボリューム化または膨らませる領域をペイントできます。
コリジョン アトリビュートの詳細については、 cMuscleSmartCollide ノードを参照してください。
作成と接続が完了したら、各マッスル スマート コリジョン ノードのウェイトを設定する必要があります。これは手動、またはデフォルト ウェイト(Default Weights)ツールを使って行います。スマート コリジョン ノードには主に、メッシュのスキン結果のモーションに影響するウェイトと、実際のコリジョンに関係するウェイトとアトリビュートの 2 つの機能があります。たとえば、ポイントの移動に影響するバルクまたはスライド ウェイトがあります。これは、「つまむ」など必要のないスキニング アーティファクトの削除に役立ちます。これらのツールをすべて使用するためには、ポイントのセットまたは「領域」を 2 つウェイト付けして、デフォーマがこれらの領域を区別できるようにする必要があります。