元記事:blender.org - Spline IK



Spline IK



Spline IK は、Bone のチェーンをカーブに沿わせる Constraint です。Spline IK は Curve によるゆるやかな影響力と、美しく満足できる形状の達成、Bone による予想しやすく統一されたコントロールにより、リギングする人達の道具箱になくてはならない便利なツールとなっています。

特にしっぽや触手、背骨などのような柔軟な体の部分、また、ロープのような、生物以外のアイテムのリギングにも適しています。




Spline IK を用いたリグを使用して得たポーズ。デモファイルのダウンロード



使用方法


基本設定

Spline IK Constraint は厳密には「インバースキネマティクス」メソッド(IK Constraint)ではなく、「フォワードキネマティクス」メソッド(通常の Bone のポージング)です。
しかし、複数のオブジェクトで複数の Bone 上での操作ができない、他のすべての Constraint が評価された後で評価されるなどの、IK Constraint の特性をいくつか共有しています。
もし標準の IK チェーンと Spline IK チェーンの両方が、一つの Bone に同時に効果を与える場合、標準の IK チェーンが優先されることに注意して下さい。そもそもそのようなセットアップは、その結果のコントロールが非常に難しいため最も避けるべきものではありますが。

Spline IK の設定を行うには、一組のつながった Bone のチェーンと、これらの Bone を束縛するための Curve が一つ必要です。

1. チェーン内の最後の Bone を選択し、Properies エディタ内の Bone Constraint タブから、'Spline IK' Constraint を追加します。

2. 'Chain Length' に、Curve によって影響を受けるチェーンの Bone 数(開始点から選択されている Bone までを含む)を設定します。

3. 最後に、'Target' フィールドにコントロールする Curve を設定します。

おめでとうございます。Bone チェーンがカーブによってコントロールされるようになりました。


いいセットアップのための Tips


[wiki]-最適なデフォームを行うには、各 Bone を大体同じ長さにし、あまり長くしすぎず、Curve により合わせやすくします。
また、Stretch が OFF になっている場合に特に気が付きやすいと思われる、Curve のするどく曲がっている場所での問題を最小限にするため、 Bone をある程度 Curve の形状に沿って作成し 'rest pose' の形状としておくのが理想です。

-Curve のコントロールには、Hook(具体的には2.5の新機能である Bone Hook)を使用し、Curve のコントロールポイントごとに一つの Hook でコントロールすることをおすすめします。一般的に Curve にはわずかなコントロールポイントだけで事足りるでしょう(例:1つにつき3から5の Bone で適切にコントロールできます)。

-Path がそこから抽出できるなら、使用される Curve のタイプは問題にはなりません。Follow Path Constraint から使用する時も同様です。実際には Hooks から要求されるコントロールのレベルに依存しています。

-リグを設定する際、現時点では(Curve をコントロールするための)コントロール Bone を、Meshのデフォームに使用される Aramature とは別の Armature に持たせる必要があります(つまり、デフォームリグに Spline IK チェーンを含めるということ)。
これは Blender の依存グラフが依存の解決をオブジェクト単位でしかできず、単一オブジェクト上にあるコントロール Bone と Curve、Spline IKのついた Bone により、偽の「循環依存」ができてしまうのを回避するためです。
[/wiki]

セッティングとコントロール


Roll(ロール)コントロール

Spline IK チェーンの 'twist' もしくは 'roll' をコントロールするには、チェーン内の Bone を自身のY軸で回転する、標準的な方法を適用できます。例えば、シンプルにチェーン内の Bone を Bone の Y軸で回転し、そのポイントから先のチェーンの Roll を調整します。Copy Rotation Constraint を Bone に使用することもできます。

Offset(オフセット)コントロール

'Chain Offset' オプションを ON にすることで、Bone チェーン全体を3D空間内の任意のポイントに移動させたまま、その Curve の形状に沿わせることができます。

デフォルトでは、このオプションはOFFになっており、移動していない場所で Bone が Curve に沿うようになっています。

Thickness(厚み)コントロール

チェーン内の Bone の厚みは Constraint の 'XZ Scale Mode' 設定を使用することでコントロール可能です。この設定はチェーン内の各 Bone の X、Z軸によるスケーリング処理に使用する方法を決定します。

以下のモードがあります。
[wiki]-''None'' - このオプションは X 軸と Z 軸のスケーリング値を1.0のままにします。
-''Volume Preserve'' - X 軸と Z 軸のスケーリング値を、 Y 軸のスケーリング値(Bone の長さ)の逆数にし、Bone の体積を保持します。

-''Bone Original'' - このオプションは標準の方法で評価された後の X 軸と Z 軸のスケーリング値を単純に使用します。
[/wiki]
これらのモードに加え、'Use Curve Radius' オプションがあります。このオプションを ON にした場合、その Curve 上の、各 Bone の終端が位置する場所の複数のポイントの Radius値の平均が、X 軸と Z 軸のスケーリング値を導出するのに使用されます。

これにより、上記のモードを使用して処理されたスケーリングエフェクトを、必要に応じて自由に調整することが可能になります。


元記事:blender.org - Spline IK