今回はBlenderのrigifyで、スプラインIKの尻尾リグを作っていきます。
完成はこんな感じ。Blender4.0を使用。モデルは以前の記事で作ったネコ。
というのも、rigifyはデフォルト設定で作った尻尾はFKしかないという罠がある。どーしてもアニメーションが作りづらく、スプラインIKに作り替える事に。
その制作過程を書いていきます。
ちなみにスプラインIKの方はFK/IK切り替え機能がついてるので、アニメーション的には完全上位互換です。(なぜこれがデフォルトじゃないんだ)
・これから新しくリグを作る場合
・既にFKで作った尻尾をスプラインIKに作り変える場合
両方について説明します。
スプラインIKの作り方・直し方
どちらの場合でも必要な基本操作。メタリグにスプラインIKの設定を入れる。
ポーズモードでメタリグの尻尾付け根を選択して
ボーンプロパティ > Rigify Type > Rig type の欄で設定。
③Middle Controls 間のコントローラーの数
④Manual Aquash & Stretch で尻尾が伸びなくなる(伸ばしたい場合はStretch To Fitを選択)
⑤FK Controls に☑を入れることでFKにも切り替えられる
この設定でメタリグのGenerate Rigを押すと尻尾がスプラインIKで生成される。
これから新規でリグを作る場合は、
今から作るメタリグにこれを設定します。あとは普通にウェイト調整すれば完成ですね。
既にFKの尻尾リグをスプラインIKに作り替える場合は、
シーンに残ってるメタリグに上記の設定をしてGenerate Rigボタンを押せば、元のリグに上書き更新される。
※ただし尻尾以外の全身も更新されるので注意。
メタリグ消しちゃったよーという場合や、
尻尾以外更新したくないんだけどという場合は、
尻尾だけのスプラインIKリグを作って体のリグに合体します。
そのやり方を書いていきます。
シーンにメタリグが無い場合・尻尾だけ作り替えたい場合の修正方法
直し方を先にざっくり説明すると
- FK尻尾と同じ形のメタリグを作って
- 尻尾だけのスプラインIKリグを生成して
- 体リグにスプラインIKリグを合体
という流れ。
①FK尻尾と同じ形のメタリグを作る
修正したいリグと同じ形・本数のボーンを作ります。
今回はボーン4本の尻尾で説明します。
まずは新しい猫骨のメタリグをシーンに追加。
オブジェクトモードで 追加 > アーマチュア > animals > cat
↑猫以外にも馬骨や犬骨がありますが、尻尾しか使わないのでどれでもいいです。
最初から尻尾の設定がある程度入ってるので単一ボーンから作るより楽。
この猫骨はボーン表示を最前面にしておくのがおすすめ。
猫骨の尻尾部分を使います。尻尾以外は要らないので消します。
編集モードで尻尾以外のボーンを選択してdeleteキー >ボーン で削除。
尻尾だけ残りました。
そうしたらこれをリグの尻尾と同じ形に整形します。
ウェイトが振られてるDEF骨(DEF-〇〇という名前のボーン)に合わせていきます。
DEF骨はボーンコレクションに入ってるので目のマークを押して表示します。いったんDEF以外は非表示にする。ビューポート表示の「最前面」にも☑を入れておくとモデルより手前に表示されて見やすい。
※blender3.Xの場合DEF骨はここ👇に入ってます
次に編集モードで尻尾メタリグの関節を動かして、DEFレイヤーのボーンに重ねます。トレースするイメージですね。
このとき頂点スナップをONにしておくとDEFボーンにピタッと位置合わせしてくれる(磁石マークのやつ)。完全に同じ形にしたい場合は必須。
ボーンが捻れてないか確認
ボーンを動かしてるうちにロールがねじれてる事があるので確認しておく。
それぞれ対応するDEFボーンと同じ数値に合わせます。
以上でFK尻尾と同じ骨格のボーンができたので
こいつにスプラインIKの設定を入れていきます。
②尻尾だけのスプラインIKリグを作成
ポーズモードで尻尾付け根を選択して
ボーンプロパティ > Rigify Type > Rig type の欄でスプラインIKを設定。
(内容は最初に説明したのと同じ)
続いて生成オプションも設定。
オブジェクトプロパティ > Rigify > 詳細設定 > Rig Name の欄で生成するリグ名を記入します。ここでは「NewRig」にしてます。
そしてGenerate Rigを押すとスプラインIKの尻尾リグが生成される。
尻尾だけのスプラインIKリグができた
次はこれを体リグに移植します。
③スプライン尻尾を体リグに移植
要らないパーツを削除して、必要なものだけ残して移植します。体リグのFK尻尾は要らないので削除。
体リグからFK尻尾を消す
レイヤーからDEF骨を非表示、体リグのコントローラーを表示に戻しておく。
体リグのコントローラー
・tail.001~004
・tweak_tail.001~004
・tail_master.001
を選択して deleteキー > ボーン で削除。
(消すのは編集モードなんですが選択はポーズモードの方が選択しやすい)
不要なMCH・ORG・DEFの尻尾ボーンも消す。
👇ここで3Dビューに表示。
・ORG-tail.001~004
・MCH-ROT-tail
・DEF-tail.001~004 を消します
編集モードでこれらのボーンを選択 > deleteキー >ボーン で消えます。
スプラインIKのRootをリネーム
スプラインIK尻尾のルートボーン名「root」を、わかりやすい別の名前に変更します。
(ルート名を変えないと、後で体リグと合体したときコンストが外れまくって直すのが面倒だったので名前変えて雑に対処してます)
最終的に削除するので名前は何でもいいですが今回は「root.SplineIK」にリネーム。
体とスプライン尻尾を1オブジェクトにまとめる
オブジェクトモードで体リグ→スプライン尻尾リグ の順番で選択して オブジェクト > 統合
体とスプライン尻尾が1つのオブジェクトに合体!
見た目は完成リグと同じになりました。
しかし実際にポーズつけてみると、モデルが動かなくなってる…
統合で体リグが消滅したため、ウェイトのターゲットが迷子になったようです。
なのでウェイトのターゲットを再指定してあげます。
ウェイト対象を再指定する
モデルを選んで、アーマチュアのモディファイアー > オブジェクト の欄に統合後のリグを指定します。
※統合前のリグ名に戻したいんだけどという人は、リグを元の名前にリネームしてからモディファイアーのオブジェクトを指定してください。
これでモデルが動くようになりました。
が、腰が動くと尻尾が置き去りに…
これはモデルやウェイトではなく、ボーンの親子階層がおかしくなってるので直します。
ボーンの親子階層を修正
親:腰
子:尻尾
になるように階層を修正します。
適当に腰らへんの骨を親にしても一応動くんですがここではrigify基準の階層にします。
編集モードで
①DEF-tail.001
②tail.master
③ORG-spine の順番で選択して、Ctrl+P キー > オフセット保持
こんな風にORG-spineのフォルダにDEF-tail.001とtail.masterが入ってるみたいな構造になってれば成功。
元スプラインIKのルート「root.SplineIK」はもう使わないので消してOK。
編集モードで選択 > Deleteキー > ボーン で削除する。
これで尻尾が腰といっしょに動くようになりました。
今度こそ完成!
あとがき
今回はチクチク調べながら探りながら直したので
もしかしたらこれより効率良いやり方やアドオンがあるのかもしれない。(なんかもっといい方法があったら追記します)
今回は自分がrigifyの構造を探る意味もあって敢えてアドオンは使わず直してみました。
そして思ったのは
リグが完成したと思ってもメタリグは消さない方がいい
ハイ、もうしません
後で修正するのが面倒なのでメタリグは残しておくか、別シーンにバックアップした方がいいです。