グローバルな位置、オブジェクト、またはアクターのゴールが定義する特定の方向を常に指すように、デフォーマの軸をコンストレイントすることができます。コンストレイント対象のデフォーマのこの軸は、定義されたターゲットを常に向くため、通常の方向コンストレイント同様、デフォーマの向きに影響を与えます。
たとえば、テニスの試合中にアクターの目がボールの動きを常に追うようにアクターの頭をコンストレイントしたり、腕が特定のオブジェクトを指すようにコンストレイントしたりできます。
リグ プロキシの階層は、腕、脚、上半身などブランチ内の複数のデフォーマをコンストレイントするときに重要になります。リグ プロキシでデフォーマが正しく親になっていることを確認してください。その後で、そのブランチに作用するように親デフォーマをコンストレイントすることができます。詳細については、「アクターのリグを修正する」を参照してください。
[Crowd Look At Constraint]コンパウンドを使用することで、アクターのリグ プロキシにあるデフォーマの向きをコンストレイントして特定の位置を指すようにできます。指すものは、オブジェクトでも、単にグローバル空間の位置でもかまいません。
次のイメージでは、競技場の中で跳ねている赤いボールの動きに合わせて動くようにアクターの頭がコンストレイントされています。
シミュレーション ポイント クラウドのスケルトン シミュレーション ICE ツリーで、[Crowd Look At Constraint]コンパウンドを取得し、[ロコモーションを設定する](Set Locomotion)ノードまたは[Set Stadium Animation]ノードの下の ICETree ポートにプラグインします。
[Get Data]ノードで、コンストレイントするデフォーマへの参照を設定します。
これは通常、頭蓋骨に設定されますが、アクターの胴を回転させるスパイン デフォーマなど、別のデフォーマ(親デフォーマも含め)を使用することもできます。
「アクターのリグを修正する」の説明に従ってリグ プロキシを表示させると、適切なデフォーマを特定することができます。
[Get Data]ノードの Out Name 出力を[Crowd Look At Constraint]コンパウンドの[Proxy Deformer Name]ポートにプラグインします。
親デフォーマをコンストレイントする場合は、子デフォーマにもコンストレイントが適用されるように、[Crowd Look At Constraint]コンパウンドのプロパティ エディタで[子コンペンセイション変換](Child Compensation Transformation)オプションがオフになっていることを確認してください。
別の[Get Data]ノードで、デフォーマのコンストレイントとして使用する位置を指定します。たとえば、あるオブジェクトについてグローバルな位置(たとえば(ball.kine.global.pos)を設定することができます。
このノードの Value 出力を[Crowd Look At Constraint]コンパウンドの[Target Position]ポートにプラグインします。
単にオブジェクトのないグローバルな位置を使用する場合は、コンストレイント コンパウンドのプロパティ エディタでターゲット位置として XYZ の値を入力します。
[ローカル ベクトル](Local Vector)の XYZ 値は、ターゲット位置を指すデフォーマの軸に設定します。
3D ビューでリグ プロキシのデフォーマを選択し、ローカル モードで移動ツールを有効にすることにより、どのベクトルがターゲット位置に向いているかを確認することができます。次のイメージでは、Z 軸がローカル ベクトルとして使用されています。
[ゴールを向いた群集](Crowd Look At Goal)コンパウンドを使用して、アクターのリグ プロキシにあるデフォーマの向きが、アクターの現在のゴールを指すようにコンストレイントできます。これは通常、ゴール オブジェクトに設定されますが、壁の終了ポイントなど仮のゴールを使用することもできます。
次のイメージでは、初めにアクターが最初のゴールに頭を向けます。ゴールの半径内を通過すると、今度は次のゴールに頭を向けます。
あるゴールに向けてデフォーマをコンストレイントする手順は、オブジェクトや位置のコンストレイント(上記参照)の場合とほぼ同じです。ただし、アクターの現在のゴールが自動的に使用され、ゴールを定義する必要がない点が異なります。
シミュレーション ポイント クラウドのスケルトン シミュレーション ICE ツリーで、[ゴールを向いた群集](Crowd Look At Goal)コンパウンドを取得し、[ロコモーションを設定する](Set Locomotion)の下の ICETree ポートにプラグインします。
[Get Data]ノードの Out Name 出力を[Crowd Look At Constraint]コンパウンドの[In Proxy Deformer Name]ポートにプラグインします。
親デフォーマをコンストレイントする場合は、子デフォーマにもコンストレイントが適用されるように、[ゴールを向いた群集](Crowd Look At Goal)コンパウンドのプロパティ エディタで[子コンペンセイション変換](Child Compensation Transformation)オプションがオフになっていることを確認してください。
アクターの頭が完全に一回転することがないように、[最大角](Max Angle)を使用してデフォーマの回転制限を設定することもできます。