nDynamic 衝突

 
 
 

一部の nucleus オブジェクト プロパティは nDynamic 衝突の強さと精度に作用します。たとえば、衝突の強さ(Collide Strength)では、nucleus オブジェクトの衝突によって生成されるフォースの量を調整することや、nCloth とパッシブ衝突オブジェクトで選択した頂点を衝突させないように除外することができます。nClothShape ノードの厚み(Thickness)は、nCloth とその衝突ボリューム間の距離を定義します。nParticleShape ノードのノードの自己衝突の幅スケール(Self Collide Width Scale)は、同じ nParticle オブジェクトから放出されるパーティクル間の衝突距離を定義します。nucleus ノードの衝突最大反復回数(Max Collision Iterations)は、Maya Nucleus ソルバが nucleus オブジェクトの衝突を解決しようとするシミュレーション ステップ単位の最大回数を定義します。押し出し(Push Out)トラップ チェック(Trapped Check)、および重複部分の押し込み(Crossover Push) nClothShapeの各アトリビュート、相互貫通の解消によって nCloth 衝突を改良しようとします。

関連項目

パッシブ オブジェクトとの衝突

シーンのポリゴン メッシュからパッシブ オブジェクトを作成し、相互作用させる nCloth や nParticle と同じ Maya Nucleus ソルバに割り当てることができます。パッシブ オブジェクトは nucleus オブジェクト と相互に作用できますが、内部の Maya Nucleus ソルバのプロパティと外部フォースはこれらに影響しません。パッシブ オブジェクトを作成すると、シーン ビューでメッシュにパッシブ オブジェクト ハンドルが表示され、nRigidShape タブがアトリビュート エディタに表示されます。パッシブ オブジェクト ハンドルを使用すると、パッシブ オブジェクトの nRigidShape ノードをすばやく選択でき、これがアトリビュート エディタの現在のタブの選択項目になります。

パッシブ オブジェクトを使用すると、クロス オブジェクトがクロス以外のオブジェクトと接触するときのリアルな動作を作成できます。たとえば、nCloth シャツを着ているキャラクタの場合は、キャラクタの胴体をパッシブ オブジェクトにすることができます。アニメーション時にキャラクタが肘を曲げると、nCloth はキャラクタの腕と接触したように、リアルに動作します。nParticle では、パッシブ オブジェクトを使用すると、飛び散る火花やしぶきを上げる液体など、放出されるパーティクルを偏向させるサーフェスを作成できます。凹領域のあるモデリングしたパッシブ オブジェクトは、nParticle のボリュームで埋めることができます。

パッシブ オブジェクトとその他の nucleus オブジェクトの間で衝突を発生させるには、個々のノードの衝突(Collisions)プロパティで衝突(Collide)アトリビュートをオンにしておく必要があります。 さらに、各ノードの衝突(Collisions)セクションの衝突フラグ(Collision Flag)ドロップ ダウン リストを使用して、衝突する nCloth オブジェクトとパッシブ オブジェクトのコンポーネント(頂点、エッジ、またはフェース)を設定できます。

パッシブ オブジェクト衝突をより詳細に制御する場合は、衝突の無効化(Disable Collision)または衝突ペアを除外(Exclude Collide Pairs)のコンストレイントを使用して、衝突へのコンポーネントの追加、または衝突からのコンポーネントの除外が可能です。nConstraint > 衝突の無効化(nConstraint > Disable Collision)nConstraint > 衝突ペアを除外(nConstraint > Exclude Collide Pairs)を参照してください。押し出し(Push Out)トラップ チェック(Trapped Check)重複部分の押し込み(Crossover Push)の各nClothShape または nRigidShape アトリビュートを使用すると、パッシブ オブジェクトの相互貫通を解決できます。

衝突作成の詳細については、「nCloth 衝突を作成および編集する」および「nParticle 衝突プロパティを設定する」を参照してください。

nCloth、nParticle、nHair 間の衝突

nCloth、nParticle、および nHair オブジェクトが同じ Maya Nucleus ソルバに割り当てられている場合は、それらのオブジェクト間に衝突と相互作用を作成できます。 同じソルバに割り当てられた nucleus オブジェクトは、同じようにそのソルバのプロパティの作用を受けます。たとえば、ソルバによって風のフォースが生成されると、nucleus オブジェクトは風のフォースと同じ方向にアニメートされます。 ただし、質量(Mass)揚力(Lift)など、オブジェクトの個々のアトリビュートによってこれらのオブジェクトは異なった反応を示すため、nucleus オブジェクトが相互に衝突する方法にも作用します。

nucleus オブジェクト間に衝突を発生させるには、対応するノードの衝突(Collide)アトリビュートをオンにしておく必要があります。 さらに、nCloth および nHair では、衝突(Collisions)セクションの衝突フラグ(Collision Flag)ドロップダウン リストを設定することで、nParticle と衝突させる nCloth オブジェクトのコンポーネント(頂点(Vertex)エッジ(Edge)、またはフェース(Face))または nHair コンポーネント(頂点(Vertex)およびエッジ(Edge))を設定できます。

既定では、同じ Nucleus ソルバに属するすべての nParticle、nCloth、nHair、パッシブ衝突オブジェクトは互いに衝突します。シーン内のすべての nucleus オブジェクトを衝突させないようにするには、オブジェクトを作成する前か後に異なる nucleus ソルバに割り当てます。また、衝突の無効化(Disable Collision)衝突ペアを除外(Exclude Collision Pairs)を使用して、nucleus オブジェクトが互いに衝突しないようにすることもできます。衝突の無効化(Disable Collision)コンストレイントと衝突ペアを除外(Exclude Collision Pairs)コンストレイントを参照してください。

自己衝突

nCloth では、頂点やフェースなどの nCloth オブジェクトのコンポーネント間で自己衝突が発生します。自己衝突は、アニメートされた nCloth が nCloth 自身に接触するときの、クロスの相互作用をシミュレートする場合に必要です。たとえば、nCloth カーテンのパネルをカーテン レールに沿って開く場合、パネルは揺れながら折り畳まれていき、それに連れてクロスが変形します。ほかにも、風が静まったときに旗がしなだれる様子や、ダンサーが向きを変えるときに、ゆったりしたスカートが触れ合う様子を想像してみてください。

nParticle では、自己衝突は、同じ nParticle オブジェクトに属する個々のパーティクル間で発生します。nParticle と他の nucleus オブジェクト間の衝突と同様に、自己衝突もエネルギーの交換や移動を伴います。nParticle の自己衝突は、リジッド オブジェクト間の相互作用の概算に使用できます。たとえば、nParticle を含むジオメトリをインスタンス化して、ジオメトリを互いに衝突させることができます。

nHair では、自己衝突がヘア システムのダイナミック カーブ間で発生します。

自己衝突を発生させるには、nClothShape または nParticle のアトリビュート エディタ(Attribute Editor)タブの衝突(Collisions)セクションで自己衝突(Self Collide)アトリビュートをオンにする必要があります。さらに、nClothShape タブの衝突(Collisions)セクションの自己衝突フラグ(Self Collision Flag)ドロップ ダウン リストで、自己衝突で使用される nCloth のコンポーネント(頂点(Vertex)頂点エッジ(VertexEdge)頂点フェース(VertexFace)完全なサーフェス(Full Surface))を設定できます。nHair では、自己衝突フラグ(Self Collision Flag)頂点(Vertex)またはエッジ(Edge)のいずれかに設定できます。自己衝突最大反復回数(Max Self Collide Iterations)アトリビュートと自己衝突の幅スケール(Self Collide Width Scale)アトリビュートを使用して、nCloth オブジェクトと nParticle オブジェクトの自己衝突の精度も調整できます。

衝突と nucleus ノード

Maya Nucleus ソルバは、反復によって nucleus オブジェクト衝突の適切な動作を取得します。反復回数を増やすと、オブジェクト衝突の精度は向上し、シミュレーションのスピードは低下します。nucleus オブジェクト衝突と自己衝突に対して、Maya Nucleus ソルバが実行できる反復回数をクランプするには、nucleus ノードの衝突最大反復回数(Max Collision Iterations)アトリビュートまたは nClothShape ノードと nParticleShape ノードの自己衝突最大反復回数(Max Self Collide Iterations)アトリビュートを設定します。nHair では、hairSystemShape ノードの自己衝突最大反復回数(Max Self Collide Iterations)アトリビュートを設定します。

nucleus オブジェクトの精度を上げるには、Maya Nucleus ソルバが使用するサブステップ数を増やします。サブステップは、Maya Nucleus ソルバがシミュレーションを解決して、オブジェクトの衝突をフレーム単位で計算する回数を定義します。サブステップを調整して、シミュレーション時間を分割して計算セグメントにする方法をコントロールできます。複数のソルバ反復をサブステップ単位、フレーム単位に実行できます。サブステップは、高速で移動するオブジェクトのすばやい衝突など、フレーム単位で 1 回の計算だと失敗してまうような場合に最も便利です。nucleus のアトリビュート エディタタブのソルバ アトリビュート(Solver Attributes)セクションにあるサブステップ(Substeps)アトリビュートを使用して、Maya Nucleus ソルバが使用するサブステップ数を設定できます。

これらのアトリビュートの詳細については、ソルバ アトリビュート(Solver Attributes)精度設定(Quality Settings)を参照してください。

衝突の強さ(Collide Strength)

衝突の強さ(Collide Strength)アトリビュートを使用すると、nucleus オブジェクトが互いに衝突したときに発生する力の強さを指定できます。衝突の強さ(Collide Strength)で、nCloth、nParticle、nHair、パッシブ オブジェクトが互いに完全に衝突するのか、部分的に衝突するのかをコントロールできます。既定値の 1 ではオブジェクトが完全に衝突し、0 ~ 1 の間の値では完全な衝突状態が緩和されます。衝突の強さの値が 0 の場合、オブジェクトの衝突を無効にしたときと同じ結果になります。

nCloth アトリビュート ペイント ツール(Paint nCloth Attributes Tool)を使用すると、 nCloth やパッシブ衝突オブジェクトに頂点単位で衝突の強さの値をペイントできます。衝突の強さの値をペイントすると、衝突の無効化(Disable Collision)コンストレイントを作成しなくても、選択した頂点の衝突のフォースを無効化または抑制できます。

注:

nCloth を衝突させない領域(衝突の強さ: 0)をペイントする場合、ペイントにソリッド ブラシ(Solid brush)または正方形ブラシ(Square brush)を使用します。これにより、ペイントした領域が完全に黒くなり、衝突の強さの値を確実に 0 にできます。ガウス ブラシ(Gaussian brush)またはソフト ブラシ(Soft brush)を使用すると、サーフェスが完全に黒くなりません。完全に黒くなっていない領域では衝突の強さの値が 0 より大きくなってしまい、衝突が生じます。

詳細については、衝突の強さ(Collide Strength)を参照してください。

nParticle には衝突の強さのスケール(Collide Strength Scale)ランプがあり、パーティクル単位で衝突の強さをマップできます。内部のパーティクル単位のランプを使用すると、半径(Radius)質量(Mass)または存在時間(Age)などのプロパティに衝突の強さをマップできます。これにより、個々の nParticle のサイズ、質量または存在時間によって nParticle 衝突の強さが変わるエフェクトを作成できます。詳細については、衝突の強さのスケール(Collide Strength Scale)nParticle 内部ランプとパーティクル単位のアトリビュートを参照してください。

衝突レイヤ

衝突レイヤを使用して、同じ Maya Nucleus ソルバを共有する複数のオブジェクト間の衝突を整理できます。アトリビュート エディタ(Attribute Editor)タブの nClothShape、nParticleshape、および hairSystemShape の衝突レイヤ(Collision Layer)アトリビュートを使用して、nCloth オブジェクトまたは nParticle オブジェクトが属する衝突レイヤを指定できます。同じ衝突レイヤ上にある nCloth オブジェクトと nParticle オブジェクトは正常に衝突します。ただし nucleus オブジェクトが異なるレイヤにある場合、小さい値のレイヤにあるオブジェクトは大きい値のレイヤのオブジェクトよりも優先順位が高くなります。

たとえば、衝突レイヤ 0.0 上の nCloth オブジェクトは衝突レイヤ 1.0 上の nCloth オブジェクトを押し込み、次に衝突レイヤ 2.0 上の nCloth オブジェクトを押し込みます。この衝突の優先順位は、アトリビュート エディタ(Attribute Editor)タブ上の衝突レイヤ範囲(Collision Layer Range)アトリビュートで設定した範囲内で発生します。

衝突レイヤ範囲では、2 つの nucleus オブジェクトを衝突させるための距離を指定できます。2 つのオブジェクトの衝突レイヤ値の差が衝突レイヤ範囲よりも小さい場合、オブジェクトは衝突できます。たとえば、オブジェクト A の衝突レイヤ値が 2、オブジェクト B が 5 の場合、衝突レイヤ値の差は 3 です。したがって、衝突レイヤ範囲値が 3 より小さい場合のみ、衝突を発生させることができます。

衝突レイヤの使用の詳細については、衝突レイヤを設定するにはを参照してください。

注:

nucleus オブジェクトは、同じ衝突レイヤまたはより値の大きいレイヤにあるその他の nucleus オブジェクトのみと衝突します。