通常、中程度または長いヘアを作成する場合は、ヘアと衝突する障害物を設定する必要があります。障害物との衝突に影響するのはガイドヘアのみなので、必ず障害物とガイドヘアが衝突するようにします。そうでないと、効果が見られません。
短いへア、ファー、丈の短い草などの場合は、ヘアエミッタオブジェクトの動作によって、障害物オブジェクトが不要な場合もあります。髪の長い人物の頭部を作成する場合は、肩や首を障害物として選択する必要があります。また、動物が小麦畑の中を走る様子を作成する場合は、その動物は小麦から見た障害物となります。
障害物として使用するオブジェクトの設定に関するヒントをいくつか紹介します。
ポリゴンやNURBSサーフェイスオブジェクトは障害物として使用できますが、インプリシットオブジェクトやヘアオブジェクト(つまり髪束そのもの)は障害物として使用できません。障害物オブジェクトは静止していてもアニメートされていてもかまいません。
ヘアエミッタオブジェクトそのものを、ヘアの障害物として使用できます。たとえば、髪の長いキャラクタの頭と肩を、ヘアの障害物として選択します。
サブディビジョンサーフェイスからヘアをエミットさせようとしている場合(「サブディビジョン サーフェイスにヘアを生やす」を参照)、そのサブディビジョンサーフェイス自体は、ヘアの障害物として直接使用することはできません。
ヘアの障害物のサーフェイスを分割するには、細分割されたポリゴン メッシュを作成し([モデル]ツールバーから[作成](Create) [ポリゴン メッシュ](Poly. Mesh)[サブディビジョン](Subdivision)を選択)し、そのサブディビジョン レベルを障害物に必要なレベルに設定します。次に、この細分割されたポリゴンメッシュを障害物として設定します(非表示にすることもできます)。
ポリゴンを障害物として使用して、より正確な衝突を作成したい場合があります。つまり、NURBSサーフェイスオブジェクトと異なり、ポリゴンのポイントが直接サーフェイスにある状態です。
十分な大きさで、かつヘアが交差しないように閉じた障害物オブジェクトを使用します。障害物は、最も長いガイドヘアのセグメント長(たとえば、ヘアの15セグメントの1つ)よりも大きくなければなりません。
たとえば、ガイドヘア全体の長さが10単位であっても、障害物の半径が0.5単位しかないと、帽子のつばを障害物として使用するのと同様、あまり効果的ではありません。
障害物オブジェクトは単純なものにします。たとえば、ヘアを衝突させる対象が複雑なキャラクタである場合は、ヘアが実際に衝突するボディジオメトリだけを障害物として使用します(つまり、通常は下半身や腕を含める必要がありません)。
そうしないと、含まれたエレメントがすべて衝突の一部として計算され、処理が大幅に遅くなります。たとえば、背中から首にかけてのポリゴンにのみタグを付け、それらのポリゴンを抽出して、衝突の障害物として使用することができます。
単純なプロキシオブジェクトを使用して、複雑な障害物オブジェクトの代わりにします。たとえば、キャラクタの胴の比率に合わせてスケーリングされた単純な球体を、障害物オブジェクトとして使用します。このプロキシは、実際の障害物オブジェクトに拘束した後で、非表示にしたりレンダリング対象外として設定できます。
アニメートされた障害物が、あるフレームから次のフレームに大きく動く場合は、ヘアがすり抜ける可能性があります。前述したとおり、オブジェクトの大きさが十分で、かつ閉じていれば、この問題を回避できます。
シミュレーション内の最初のフレームで障害物とガイドヘアが接触しないようにしてください。接触すると、衝突が正しく計算されない場合があります。
通常ならばヘアにダイナミクスを適用します(ダイナミクスを使ってヘアを動かす参照)が、障害物は、ダイナミクスなしで使用することによりスタイリングツールとして使用できます(障害物をヘアに近づけても、その障害物の中にヘアが入り込みません)。
作成したい衝突のタイプに応じて、[Hair]プロパティエディタの[一般]で[ヘア衝突]オプションを設定します。
[平均の球(高速)](Average Sphere (fast))は、衝突検知のために障害物オブジェクトの周りに球体を作成し、計算を速めます。このオプションは、[Obstacle]プロパティエディタの設定を無効にします。
[正確(低速)](Exact (slow))は、衝突検知のために障害物オブジェクトの実際の形を使用します。衝突検知はたいていの衝突で使用が望まれます。このオプションは、正確な結果が得られますが、計算時間は長くなります。また、このオプションは、[Obstacle]プロパティエディタの設定を無効にします。
[XSI(高速, 荒い)](XSI (fast, rough))は、[Obstacle]プロパティエディタの設定値に基づいて障害物の衝突を検出する唯一の方法です(以下を参照)。たとえば、[障害物タイプ]が[実際の形状]で、障害物に[プッシュ長さ]値が設定されていれば、衝突が考慮されています。この方法では、計算はかなり速く、選択した[実際の形状]と同じくらい正確です。
[ヘア]ツールバーから[修正](Modify) [環境](Environment) [障害物の設定](Set Obstacle)を選択します。
ヘアの障害物として動作するオブジェクトを、シーン内で1つまたは複数選択します。セッションの選択を終了するには、右クリックします。
表示される[Obstacle]プロパティエディタ(「[障害物]プロパティ エディタ」(「プロパティ リファレンス」)を参照)で、衝突の動作を制御する一般パラメータと物理的パラメータを設定します。