XSIのシミュレーション
ヘア > ヘアの作成と削除 > スタイリング > ダイナミクスの適用 > レンダヘアの調整 > 髪色の設定
  Hairプロパティ > Generalタブ > Effectsタブ > Dynamicsタブ > Presetsタブ
   その他 Hair Generator Operator > Hair Dynamics Operator > Hair Renderer シェーダ

ダイナミクスの適用とは
ヘアにフォースや障害物を適用するには、先にダイナミクスを適用する必要がある。ヘアにダイナミクスを適用すると、フォースや障害物を適用したり、エミッタオブジェクトの動き(速度)にあわせてヘアを動かすことができる。
ヘアのスタイリングツールのパラメータにはアニメーションアイコンが付いているものがあるが、それらのアニメーションとダイナミクスを一緒に作用させることはできない。また、ダイナミクスオペレータが有効になっていると、ヘアのスタイリングをすることはできない。ダイナミクスを適用したヘアに対してスタイリングをする場合は、ダイナミクスオペレータをミュートしてから行う。
ダイナミクスを適用し、フォースや障害物でヘアに変化をつけた後でダイナミクスオペレータをFreezeすると、スタイリングにも利用できる。


ダイナミクスを適用するには
1. ヘアオブジェクトを選択する。
カーブから作成したヘアの場合は、もとのカーブではなくヘアカーブを選択する。
2. Hairパネルから Create > Dynamics
Hair
オブジェクトのオペレータスタック内に、Hair Dynamics Operator が作成される。
3. HairプロパティのDynamicsタブで、ダイナミクスに対するヘアの反応の仕方を設定する。
4. ヘアエミッタオブジェクトを動かすかアニメーションをつける。
5. フォースや障害物を設定する。


ヘアにフォースを適用するには
1. ヘアオブジェクトを選択する。
カーブから作成したヘアの場合は、もとのカーブではなくヘアカーブを選択する。
2. Hairパネルから Modify > Environment > Apply Force
3. フォースオブジェクトをPickする。
4. 必要であれば、Hair Dynamics Operatorで各フォースのウェイト値を設定する。(0にするとフォースの影響なし)


ヘアに障害物を設定するには
1. ヘアオブジェクトを選択する。
2. Hairパネルから Modify > Environment > Set Obstacle
3. 障害物オブジェクトをPickする。
4. HairプロパティエディタのGeneralページでHair Collisionオプションを設定する。
5. 障害物オブジェクト内のobstacleプロパティを設定する。
☆カーブから作成したヘアには障害物を設定することができない。


障害物の設定についてのポイント
障害物として使用できるのは、ポリゴンオブジェクトやNURBSサーフェイスオブジェクトのみ。インプリシットオブジェクトやヘアオブジェクトは障害物として使用することはできない。
障害物オブジェクトは、静止していてもアニメートされていてもかまわない。デフォームアニメーションがある場合には、障害物オブジェクト内のobstacleプロパティで、Animatable Deformations(オブジェクトの変形アニメーションに対応)にチェックを入れることを忘れずに!
ダイナミクスを適用しなくてもヘアに障害物を設定することができる。この場合は、スタイリングツールとしての使用。
ヘアエミッタオブジェクトそのものを、ヘアの障害物として使用することができる。
障害物オブジェクトは単純な形の方が計算が軽くなるので、障害物オブジェクトが複雑な形状の場合には、代わりに似た形の単純な形状のオブジェクトを作成して障害物オブジェクトとして使用するとよい。(エミッタオブジェクトに拘束し、レンダリングはしないように設定する。)
キャラクタの体が一体になっている場合などは、衝突しない部分(胴や足など)も障害物として計算するので、処理が大幅に遅くなる。必要な部分だけをポリゴン抽出(Extract Polygons)し、障害物として設定するなど工夫をするとよい。(エミッタオブジェクトに拘束し、レンダリングはしないように設定する。)
障害物オブジェクトには、十分な大きさでかつヘアが交差しないように、閉じたオブジェクトを使用する。サイズとしては、障害物が、ヘアの最も長いガイドヘアのセグメント長(ヘアの15セグメントの1つ)よりも大きくなるようにする。
サブディビジョンサーフェイスからヘアをエミットする場合に、サブディビジョンサーフェイス自体を障害物として設定することができない。この場合には、サブディビジョンレベルに分割されたオブジェクトを作成し(Create > Poly.Mesh > Subdivision)、新しく作成されたオブジェクトを障害物として設定する。(エミッタオブジェクトに拘束し、レンダリングはしないように設定する。)
obstacleプロパティFriction(摩擦)およびElasticity(弾性)は、障害物とヘアの衝突の計算には使用されない。
障害物を設定した後でヘアのCollision Typeを変更したい場合は、まずヘアをフリーズする必要がある。衝突タイプを変更すると、ヘアに対してトポロジが変更されたとみなされる。


シミュレーションのキャッシュについて
ダイナミクスを適用すると、ヘアオブジェクトのオペレータスタック内に Hair Dynamics Operetor が作成される。このオペレータで、シミュレーションキャッシュの保存や読み込みの設定をする。
キャッシュをファイルに保存すると、高速な再生が可能になる。また、シミュレーションを逆再生することができるようになる。
デフォルトでは、キャッシュ無し(Live)に設定されている。詳細はこちら
キャッシュはデフォルトでは現在のプロジェクトのSimulationフォルダに保存されるようになっているが、変更可能。シーンを新しいプロジェクトに保存する場合には、キャッシュはコピーしてくれないので、自分でコピーする。