コントロールリグでスプラインをビルドして、使用することで、スケルタル階層に関係なく動的プロシージャルなモーションを作成することができます。スプラインを使用すると、触手、とげ、蛇など、手足に必要なコントロール数を減らして、より複雑なポーズを作成することができます。
このドキュメントでは、リグでのスプラインの作成および使用方法の概要を説明します。
前提条件
- 尾などスプラインに適したジョイント構造を持つスケルタル メッシュのコントロールリグ アセットを作成していること。この実行方法の詳細については、「コントロール リグ クイックスタート」を参照してください。
- コントロール の作成と位置決めの方法を理解していること。
スプラインの作成
コントロールリグでスプラインを作成するには、スプラインを構成するために使用される任意の平行移動ポイントを指定します。一般的な設定では、これらのポイントは コントロール のトランスフォーム情報に基づいています。
まず、リグ グラフを右クリックして、Spline From Points を選択し、Spline From Points ノードを作成します。

次に、スプラインでポイントを定義するために使用されるリグ要素を作成します。この例では、4 つのコントロールを作成して、触手の長さに沿って均等に分散します。コントロールの数が、チェーン内のボーンの数に一致している必要はありません。

次に、リグ グラフでルート リグ要素を参照し、Spline From Points ノードの 追加 (+) ボタンをクリックして、配列に最初のスプライン ポイントを追加します。要素参照の Transform ピンを展開して、Translation ピンを Points ピンの入力に接続します。

次に、スプラインを形成するために使用するすべてのリグ要素のスプライン ポイントを追加します。Spline From Points ノードでスプライン ポイントを接続する順番が、スプラインの方向と一致していることを確認する必要があります。

コントロールリグのスプラインは、スプラインを適切に作成するためには、4 つ以上のポイントが必要です。
これで、スプラインを視覚的に表示する Draw Spline ノードを使用して、スプラインをプレビューすることができます。このノードを作成するには、グラフで右クリックして、Draw Spline を選択し、Spline From Points の Spline ピンを Forwards Solve の Execute イベントに接続します。ビューポートでコントロールを操作すると、スプラインの動作がプレビューされます。

スプラインをボーンに適用する
作成できたら、スプラインをジョイント チェーンに適用できます。
まず、グラフで右クリックして、Fit Chain on Spline Curve を選択して、Fit Chain on Spline Curve ノードを作成します。

次に、[Rig Hierarchy (リグ階層)] パネルからスプラインに含めるボーンを複数選択してリグ グラフにドラッグし、[Create Item Array (アイテム配列を作成)] を選択します。この操作では、選択順序が重要で、結果として得られるボーン配列がスプラインのポイントと同じ順序になるようにする必要があります。

最後に、Rig Element 配列を Items ピンとSpline From Points の Spline ピンに接続して、Execute イベントがコントロールリグ ロジック チェーンに接続されていることを確認します。

これで、スプラインがボーン チェーンに反映されます。

スプラインのプロパティ
Spline From Points ノードでは、次のプロパティを使用できます。

名前 | 説明 |
---|---|
Points | スプラインを構成するために使用される位置情報。ポイントは、単一の配列を使用できます。または、追加 (+) ボタンをクリックして個々の平行移動ピンを使用して作成できます。 |
Spline Mode | 使用するスプラインのタイプ。次のいずれかを選択できます。
|
Samples Per Segment | このプロパティは、スプラインの近似精度を制御します。数値が大きいほど、スプラインがより正確で滑らかになります。数値が小さいほど、スプラインがギザギザで表示が不正確になります。パフォーマンス上の負荷はサンプル数が増えるほど増大するため、この数値を大きくしすぎないようにすることをお勧めします。 |
Compression | スプラインの長さを縮小する場合に、スプラインが圧縮を行う必要のある量。 |
Stretch | スプラインの長さを伸ばす場合に、スプラインが伸ばす必要のある量。 |
Spline (Output) | このノードの結果として得られるスプライン。 |
Fit Chain on Spline Curve ノードでは、次のプロパティを使用できます。

名前 | 説明 |
---|---|
Items | 指定された スプライン に位置合わせするためのリグ要素の配列。 |
Spline | 位置合わせする スプライン のカーブ。 |
Alignment | 位置合わせされた要素をスプラインの長さいっぱいまで伸ばすかどうか。
|
Minimum | カーブで使用する最小 U 値。U は、結合されたすべてのコントロール ポイント間の正規化された (0 ~ 1) 比率です。 |
Maximum | カーブに使用する最大 U 値。U は、結合されたすべてのコントロール ポイント間の正規化された (0 ~ 1) 比率です。 |
Sampling Precision | このプロパティは、スプラインの近似精度を制御します。数値が大きいほど、スプラインがより正確で滑らかになります。数値が小さいほど、スプラインがギザギザで表示が不正確になります。このプロパティは、Spline From Points の Samples Per Segment プロパティを上書きします。パフォーマンス上の負荷はサンプル数が増えるほど増大するため、この数値を大きくしすぎないようにすることをお勧めします。 |
Primary Axis | チェーンに沿って整列したメジャー軸。シンプルな設定では、このプロパティを無視することができます。 ただし、通常は、アイテム チェーンの進行方向となるように設定することをお勧めします。 |
Secondary Axis | チェーンに沿って整列したマイナー軸または「上方向」軸。シンプルなセットアップでは、このプロパティを無視することができます。ただし、通常は、ポール ベクターが使用されている場合は、その方向に設定することをお勧めします。 ![]() |
Pole Vector Position | オプションのポール ベクター コントロールの位置。これは、Secondary Axis が設定されている場合に限り効果があります。 |
Rotations | スプライン全体に加算的に適用される回転の配列。 |
Rotation Ease Type | 各回転要素間で使用するイージング タイプ。 |
Weight | カーブに要素を適用する場合の係数。 |
Propagate to Children | リグ要素の変更をすべての子要素に再帰的に適用するかどうか。 |
Splines ノード
コントロールリグ グラフで使用できる Spline ノードは以下のとおりです。
名前 | 画像 | 説明 |
---|---|---|
Closest Parameter From Spline | ![]() |
指定スプラインと位置から最近接 U 値を取得します。 |
Draw Spline | ![]() |
プレビュー用にスプライン カーブをビューポートに表示します。Color、Thickness、および Sample Detail を制御するプロパティが含まれています。 |
Fit Chain on Spline Curve | ![]() |
アイテムの配列に沿って指定されたスプラインを適合させます。このノードは、通常、スプラインを含むバックワード ソルブを実行するときに使用されます。 |
Fit Spline Curve on Chain | ![]() |
リグ要素のチェーンをスプラインに適用します。 |
Get Length Of Spline | ![]() |
スプラインの長さを取得します。 |
Parameter At Length Percentage | ![]() |
指定した長さの比率でスプラインの U 値を返します。 |
Position From Spline | ![]() |
U 値で指定されたスプラインに沿った位置を返します。 |
Set Spline Points | ![]() |
スプラインの現時点での既存のポイントを新しい値に設定し、新しいスプラインを出力します。 |
Spline From Points | ![]() |
平行移動ポイントの配列からスプラインをビルドします。 |
Tangent From Spline | ![]() |
U で定義されたスプラインに沿ったポイントの接線角度を返します。 |
Transform From Spline | ![]() |
指定した 上方向 と ロール に基づいて、指定した スプライン と U 値からトランスフォームを返します。 |