コンストレイントを使用して、ヘア カーブをスタイリングします。たとえば、コンストレイントはヘアを後ろにまとめたりポニーテイルにするときの髪留めの役割を果たします。作成できるコンストレイントには、輪ゴム(Rubber Band)、スティック(Stick)、トランスフォーム(Transform)、ヘア対ヘア(Hair to Hair)、毛束(Hair Bunch)、衝突球(Collide Sphere)そして衝突立方体(Collide Cube)などさまざまな種類があります。コンストレイントの種類については、ヘアのコンストレイントの種類を参照してください。最後の 2 つは黙示的な衝突コンストレイントで、他の種類のコンストレイントとは違った効果をもたらします。詳細については、衝突ヘア コンストレイントの扱いを参照してください。
コンストレイントを作成すると、選択したヘア カーブに影響を与えるようにコンストレイントが設定されます。これらのヘア カーブの ID は、hairConstraint ノードのカーブのインデックス(Curve Indices)アトリビュートに保存されます。ID は、ヘア システム上のヘアのインデックス(UV グリッドのロケーション)を示します。
開始フレームでは、シミュレーションによって、コンストレイント ノードの位置に最も近いコンストレイント対象カーブ上のポイントが定義されます。現在のフレームがこの開始フレーム以前の場合は、コンストレイント ノードと接続点を最も近いポイントの更新に移動できます。シミュレーションを再生するときには、コンストレイントはカーブ全体ではなく、このポイントの最初の集合に対して作用します。コンストレイントの種類によって、このポイントの集合をシミュレートする方法が決まります。
これにより、シミュレーションの開始時にはコンストレイントによってヘアにフォースがまったく適用されず、シミュレーションが進むにつれてコンストレイントされるようになります。一般的に、コンストレイントは、ヘアの開始位置とシェイプをモデリングおよび定義した後に適用します。シミュレーション開始フレームのモデルの位置を編集したり、異なるシーン向けに設定する場合は、開始フレームのヘアに対する相対的な位置が変わらないように、あるヘアの毛根ノードまたはオブジェクト トランスフォームのコンストレイントをグループ化した方がよい場合があります(コンストレイントは、毛束コンストレイントを除いて、常に開始位置との相対関係で定義されるため)。
コンストレイントは、ポイントの集合にフォースを適用することで機能します。適用されるフォースの量は、コンストレイントの固さアトリビュートによってスケールされます。下回るとポイントへのコンストレイントの関連付けが失われるしきい値を定義する粘着の強さ(Glue Strength)アトリビュートもあります。ポイントは、開始フレームでコンストレイントに接着されます。コンストレイントによって適用されるフォースがこの粘着の強さを超えると、コンストレイントが失われ、そのポイントはシミュレーションの残りの部分ではコンストレイントされなくなります。粘着の強さが 1 の場合、粘着力が無限に強く、コンストレインが失われることはありません。シミュレーションの半ばでコンストレイントをスナップするのに必要な強さは加減が難しく、適切なポイントでコンストレイントが失われるように(0 と 1 の間の)粘着値をいくつか試してみる必要がある場合があります(必要に応じて、1 から 0 までの間で粘着の強さをアニメートすることもできます)。
コンストレイントは、選択した各カーブの 1 つのポイントだけに作用するため、同一のカーブ集合の異なる位置に複数のコンストレイントを適用し、カーブの複数のポイントをコンストレイントした方がいい場合もあります。
開始フレームでゼリーの固まりにポイントをコンストレイントしているようなものです。スティック(Stick)コンストレイントと違い、回転されたり、スケールされたりすると、コンストレイント ノードがコンストレイント対象のポイントに沿って引っ張られます。コンストレイント ノードの変形は、事実上このゼリーの固まりのトランスフォームというわけです。これは、肩のような接触点に沿ってヘアが流れ落ちるようにコンストレイントする際に便利です。またこれを利用して、手でつかんだり、ねじったときのヘアをシミュレートすることもできます。コンストレイントのスケールをアニメートすると、ヘアをまとめたり、分けたりすることができます。
黙示的な衝突オブジェクトとして動作する球または立方体を挿入します。必要に応じて球または立方体をトランスフォームします。詳細については、衝突ヘア コンストレイントの扱いを参照してください。
他のヘアのコンストレイントとは異なり、衝突球(Collide Sphere)と衝突立方体(Collide Cube)は、ヘアの特定の CV だけではなくヘア全体に作用します。ジオメトリとの衝突に比べて、このようなオブジェクトにはいくつかの利点があります。
一般的には、トランスフォーム ジオメトリでグループ化されたこれらのコンストレイントをいくつか使用して、頭部や肩などの衝突部分のジオメトリ シェイプに近づけます。有機オブジェクトの場合は、複数の球を使用してそのうちのいくつかを楕円にスケールすることもあるでしょう。鋭角なエッジの場合は球では起こり得ない安定性の問題が発生することもありますが、壁や平坦なサーフェスには衝突立方体が最適です。ただし、衝突立方体(Collide Cube)コンストレイントの固さ(Stiffness)の値を低くすると、立方体のエッジがスムーズになる傾向にあります。
また、非常に不均等にスケールされた球では、ポイントがエッジに向かってスライドしてしまう問題(ほとんどの湾曲部分)が起きる可能性があります。これは、不均等にスケールされた立方体では発生しません。