ヘア システムのヘアをそれ自体または他のオブジェクトと衝突させることができます。ヘアと衝突させるオブジェクトを設定する代わりに、またはそれに付け加えて、黙示的な衝突オブジェクトの役割を果たすヘアのコンストレイントを使用することもできます。これらの黙示的な衝突オブジェクトはシェルではなく空間領域であるため、ヘアがサーフェスにくっつくような場合に便利です。また、衝突の作成(Make Collide)などの衝突オプションはヘア システム全体に影響を与えますが、特定のヘア カーブに影響を与える衝突オブジェクト コンストレイントを設定することもできます。衝突コンストレイントとジオメトリを使った衝突を組み合わせると、衝突オブジェクトのサーフェスの精度を維持しつつ、強い衝突を作成できます。衝突球(Collide Sphere)および衝突立方体(Collide Cube)を使用した暗黙的な衝突オブジェクトの詳細については、ヘア コンストレイントのセットアップを参照してください。
注:
反復(Iterations) (ダイナミクス(Dynamics))により、衝突テストの回数は増加します。設定を 8 にすれば、4 の時の倍になります。これにより、衝突の結果が向上することがありますが、シミュレーションに要する計算が遅くもなります。反復(Iterations)の値を増やす場合、固さ(Stiffness)の値を低くして、埋め合わせる必要があります。
衝突の微調整
衝突させたサーフェスにヘアがくっついてしまった場合は、次のことを考慮してください。
- 鋭い、または開いたエッジは避けてください。丸い、閉じたオブジェクトの方がヘアにうまく衝突します。衝突は線ではなく、微小な点(パーティクル)で起きています。ですから狭いエッジでは点の頂点の隙間に入ってしまう可能性があります。ヘアに多くの CV があれば、その分うまく狭いエッジにも衝突します。ヘアの CV の数は、開始カーブ上の CV の数を毛根ノードのサンプル密度(Sample Density)にかけた数値で決まります。衝突上のサンプル数(Collide Over Sample)を 1 と 2 にすると、衝突時に中間点としての CV が余分に追加されます。
- 有効な衝突の幅がゼロの場合、ヘアがサーフェスを通り抜け難くなります。有効な衝突の幅は以下の値をとります。
束の幅(Clump Width) X 束の幅(Clump Width)スケール + ヘアの幅(Hair Width) + 衝突の幅のオフセット(Collide Width Offset)
衝突の幅のオフセット(Collide Width Offset)を絶対値の大きなマイナスの数(たとえば、-1000)にすれば、衝突の幅はいつでもゼロになります。これにより、ヘアのまとまりが半ばサーフェスに埋まります。しかし、ヘアはサーフェスを通り抜け難くなります。
- 衝突上のサンプル数(Collide Oversample)の値を上げると便利です。衝突上のサンプル数(Collide Oversample)の値が 2 より大きいと動作が異なります。値が 1 または 2 の場合、シミュレーション時の CV の間に新しいテスト ポイントが挿入されます。これは、エッジの幅が狭く、衝突をとらえられるだけの CV がカーブにない場合に便利です。値が 3 以上の場合、CV 中心を囲むリングにサンプル ポイントが追加されます。これは、幅の広いヘアのまとまりをあつかう場合にくっつきを避けるのに便利です。狭いエッジが幅がゼロのまとまりの隙間に入るのを避けるには、1 または 2 の値を使用します。この目的のためには、衝突の幅のオフセット(Collide Width Offset)の値をマイナスにしても良いでしょう。幅の広いまとまりをあつかう場合は、衝突上のサンプル数(Collide Oversamples)を 3 以上にしてみてください。
ヘアを地面と衝突させるには
- ヘア システムのアトリビュート エディタ(Attribute Editor)で、衝突(Collisions)セクションの地面に衝突(Collide Ground)をオンにします。「地面」は地表プレーン(またはグリッド)です。
- 必要に応じて、地表プレーンに関連する地面の高さ(Ground Height)の値を調整します。
ヘアをオブジェクトと衝突させるには
- ヘア システムを選択します。(ウィンドウ > アウトライナ(Window > Outliner))。
- ヘアと衝突させるオブジェクトまたはサーフェスを Shift キーを押したままクリックして選択します。
- ヘア > 衝突の作成(Hair > Make Collide)を選択します。衝突オブジェクトに geoConnector ノードが追加されます。
うまく衝突しない場合は、ヘア システムのアトリビュート エディタ(Attribute Editor)で衝突(Collide)がオンになっていることを確認します。
ヘアが衝突オブジェクトを突き抜けてしまう場合は、以下を試してみてください。
- 衝突オブジェクトの GeoConnector ノードのテッセレーション(Tessellation)の値を大きくする。
- hairSystemShape の衝突(Collisions)セクションで衝突上のサンプル数(Collide Over Sample)の値を大きくする。
ヘア同士を衝突させるには
- ヘア システムのアトリビュート エディタ(Attribute Editor)で、衝突(Collisions)セクションの自己衝突(Self Collide)をオンにします。
- 衝突の幅のオフセット(Collide Width Offset)を含むコリジョン設定を調整します。