🐍

blenderでのspline ikのやり方メモ

2024/01/10に公開

しっぽを滑らかに動かすために Blender(v3.1.0) で Spline IK という機能を使ってみました.その時の設定方法のメモです.

モデルの準備

代表例として,こんな感じの単純な円柱とボーンを用意します.今回はこの円柱を4つのボーンで動かします.円柱とボーンは AutoWeightで親子づけしておきます.

通常のIK

Spine IKを使う前に通常のIKではどうなるかを試してみます.

やってみると,こんな感じのカクカクした曲がり方になってしまいました.通常のIKは腕や足といった明確な関節があるもの向けになっているので,しっぽや触手のような関節がわかりにくいものには向きません.また,ボーンが一直線になりやすくため特異点に入りやすく,挙動が不安定になります.

Spline IK

ではここから Spline IKを仕込んでいきます.円柱とボーンはAutoWeightで親子づけした状態に戻って始めます.
ベジェ曲線を追加して,ボーンの位置と大きさに合わせます.この時ベジェ曲線の膨らんでいる方が頭側になるようにしてください.


ベジェ曲線を変形させて,ボーンに沿わせるようにします.さらに今回は中間に制御点を追加します.

続いて,ボーンにベジェ曲線を制御点に合わせてIK用のボーンを追加します.このボーンは通常のIKボーンと同じように分離しておきます.

ここで,先端のボーンに Spline IK を追加します.

すると,なぜかボーンが伸びます!

これは Chain Length を実際のボーンの数に変えると直ります

ここから Spline IK 用のボーンとベジェ曲線の制御点をHookで紐づけていきます.これはややこしいので動画でお見せします.

手順はこんな感じです.

  1. 後で邪魔になるので,円柱を隠す(Hide, H-key)
  2. Pose Mode に変更
  3. 後でベジェ曲線を選択する時に邪魔になるボーンを隠す
  4. Spline IK 用のボーンを選択する
  5. Object Mode に切り替えて,Shift を押しながらベジェ曲線を選択して Edit mode に入る
  6. ボーンに対応する制御点を選択して,hook を設定する(成功するとベジェ曲線のModifierにHookが追加される)

あとはすべてのIKボーンに対してベジェ曲線の制御点と紐づけて,Pose modeでグリグリ動かすだけです.

お土産

サンプルのblend ファイルです
spline_ik_demo.blend

References

Discussion