| Since | 21.0 |
このコンポーネントは、キャラクタの首と頭のコントロールをセットアップして、キャラクタの様々なセグメント(またはパーツ)に対してループで実行することができます。 これは、Splineコンポーネントに似ています。
このファイルの例では、Ottoテストジオメトリに対してNeckリグコンポーネントを使用する方法を説明しています。
Neckコンポーネントは、下図に載せているコントロールを作成します。 これは、rootコントロール、root CV(制御頂点)、tip CV、tipコントロールの4つのコントロールを持つ接線スプラインをセットアップします:
デフォルトでは、CVは一番近い外側にあるコントロールの子になります。 そのため、root CVはrootコントロールの子になり、tip CVはtipコントロールの子になります。 rootコントロールは首のメインの親となり、中間コントロールと端点コントロールを使用することで、首と頭の回転をさらに微調整することができます:
端点コントロールのデフォルトの位置は頭の上方にありますが、そのピボット位置は頭の中央にあります。 End Control Offset パラメータを使用することで、端点コントロールの位置を変更することができます:
頭のみを回転させたい場合は、端点コントロールを使用してください。 頭の回転に合わせて首を捩じりたい場合は、tipコントロールを使用してください:
ビューポート内のメニューから、Neckコンポーネントの構成オプションにアクセスすることができます。
首を伸ばすには、 Settings タブの Add Stretch Control パラメータを有効にしてください。
これにより、Neckコンポーネントの
メニューにスライダ設定パラメータが追加され、首の伸縮を調整できるようになります:
パラメータ ¶
Name
このコンポーネントによって作成されるノードに追加する名前。 Segments を使用する場合、そのセグメント名もノード名に追加されます。
Settings ¶
Type
コントロールポイントから作成するカーブのタイプ。
Curve Order
カーブを構築するのに使用されるコントロールポイントの数。デフォルトで Curve Order が4に設定されているのは、首にはrootコントロール、root CV、tip CV、tipコントロールというコントロールポイントがあるからです。
Bezierカーブ(カーブのタイプは Type パラメータで設定されます)では、コントロールポイントの数がカーブの階数と同じである必要があります。複合カーブは、個々のカーブセグメント間でコントロールポイントを共有しているため、カーブセグメントが追加される度にさらにorder-1個のコントロールポイントが必要になります。この要件は、<number_of_control_points> % (order-1) == 1の方程式で表現することができます。詳細は、コントロールスプラインを参照してください
Pin Root
オンの時、ルートジョイントの方向をrootコントロールに拘束します(ルートジョイントは、rootコントロールによって駆動されるジョイントです)。
Pin Tip
オンの時、先端のジョイントの方向をtipコントロールに拘束します(先端のジョイントは、tipコントロールによって駆動されるジョイントです)。 サンプルは、Splineコンポーネントを参照してください。
Add Stretch Control
オンの時、Neckコンポーネントのメニューにスライダ設定パラメータが追加され、首の伸縮を調整できるようになります:
Stretch
首の長さを維持するかどうかを指定します。0に設定すると、首の長さが維持されます。1に設定すると、首はTipコントロールに従って伸びます。
Stretch Scale
ストレッチの量を制御します。この量を増やすと、ストレッチの効果が高まります。
Squash Scale
スカッシュ(押し潰し)の量を制御します。この量を増やすと、スカッシュの効果が高まります。
Keep Tip Scale
オンの時、首を引き伸ばしても首の先端のスケーリングは変更されません。オフの時、首を引き伸ばすと首の先端がスケールされます。
Note
スケーリングの効果を確認できるのは、 Stretch Scale または Squash Scale が1より大きい場合のみです。
Driven ¶
Segments
セグメントは、各首チェーンを分けるタグです。タグは、Attribute Adjust Array SOPを使用してスケルトンジョイントにセットアップすることができます。詳細は、リギング用スケルトンの準備を参照してださい。
Segments が空っぽの場合、Neckロジックは1回だけ実行されます。
Note
Segments パラメータはAPEXパスパターン(例えば、#<tag>関数)に対応していません。代わりに、このフィールドに直接タグ名を指定してください。
Driven
“neck_01 neck_02 neck_03 ”など駆動するTransformObjectノード。
このパラメータもAPEXパスパターンに対応しているので、このフィールドにタグ(例えば、
#neck)を指定することができます。
FK Transformコンポーネントの Tags パラメータにデフォルトで設定されているbindタグも指定することをお勧めします。FK Transformコンポーネントは通常、リグの構築を開始するのに使用される最初のコンポーネントです。bindタグを含めると、例えばneckタグなど、継承した可能性のある他のコントロールを含めないようにすることができます。つまり、このコンポーネントでは、 Driven を“#bind & #neck”に設定することができます。
Driver ¶
コントロール名が一意であることを確認してください。複数の首セットアップを作成する際に、名前の衝突を避けるためには、文字列“{segment}”を使用して首セグメントを指定します。例えばセグメントをneck_01という名前にした( Segments をneck_01に設定)場合、 Root Name を{segment}_root_ctrlに設定します。 Segments の値が文字列“{segment}”を置換するので、rootコントロールの名前はneck_01_root_ctrlという名前になります。
Root Name
rootコントロールの名前です。
Root CV Name
rootの接線CVの名前。
Mid Name
中間コントロールの名前。
Tip CV Name
tipの接線CVの名前。
Tip Name
tipコントロールの名前。
End Name
ヘッドコントロールの名前。 このコントロールは首に影響しません。
Root CV Offset
rootの接線CVに追加するオフセット。
Tip CV Offset
tipの接線CVに追加するオフセット。
End Control Offset
端点コントロールに追加するオフセット。
Parent ¶
Root
rootコントロールの親。空っぽの場合、rootコントロールはそれが関連付けられたTransformObjectノードの親に親子化されます。例えば、rootコントロールがノード
C_neck_02に配置され、C_neck_02の親がC_neck_01の場合、rootコントロールはC_neck_01の子になります。複数の背骨をセットアップしている場合、このフィールドは空っぽのままでも構いません。
また、スケルトンに親タグを設定し、その親タグと Segments タグを使用して各セグメントの親を取得することもできます。例えば、セグメントをneckという名前にして( Segments をneckに設定)、親ジョイントにneck_parentとタグ付けすると、 Root を{segment}_parentに設定することができます。 Segments の値が、文字列“{segment}”を置換するのに使用されます。
rootコントロールの親子化を解除するには、このパラメータにアンダースコア(“_”)を設定します。
このパラメータは、APEXパスパターンに対応しているので、このフィールドにタグ(例えば、#<tag>)を指定することができます。
Tip
tipコントロールの親。空っぽの場合、tipは Root に親子化されます。tipコントロールの親子化を解除するには、このパラメータにアンダースコア(“_”)を設定します。このパラメータは、APEXパスパターンに対応しているので、このフィールドにタグを指定することができます。
CV
CVの親。空っぽの場合、CVは一番近い外側にあるコントロールに親子化されます。CVコントロールの親子化を解除するには、このパラメータにアンダースコア(“_”)を設定します。このパラメータは、APEXパスパターンに対応しているので、このフィールドにタグを指定することができます。
Tags ¶
Shape ¶
APEX Configure Controls SOPにはコントロールの外観を変更するオプションがより多く用意されています。
Shape
コントロールの形状。 ここには、ビルトインのAPEXコントロールシェイプのどれかを設定することができます。
Color
コントロールシェイプのカラー。スケルトンからシェイプのカラーを継承するには、この値を(0, 0, 0)に設定します。
Translate
コントロールシェイプの移動。
Rotate
コントロールシェイプの回転。
Scale
コントロールシェイプのスケール。 スケルトンからシェイプのスケールを継承するには、この値を(0, 0, 0)に設定します。
| See also |