今回は Null を使って基本的な IK を組んでみました
モデルにボーンが入っていて、ウェイトも適切に設定してあれば最低限の動きを付けることはできます
その場合はひたすら動かしてキーを打ちを繰り返してアニメーションを作るわけですが、これがまあ大変
もの凄い時間がかかります
IK が入っていると
- 足の位置を固定したい
- 特定の場所に手を置きたい
という場合、直感的に動かすことができるので、めちゃ便利
そこで LightWave での IK の組み方を調べると、まあ・・・古いながらも出てきます

じゃっく
意外と情報が残っていて、ちょっとうれしくなる自分
しかしながら、日本語の解説がほぼありません
こればっかりは、もうしょうがない
シェアが違うんで
とりあえず公式が出してくれている動画をぼーっと視聴
おかげで基本的な IK は組むことができました
今回はその作り方をメモっていきます
準備
テスト用に組んだボーンを用意

画像のようにモデラーでボーンを組んで、レイアウトでパパっと親子付けをしました
ボーン構造は MMD のものに寄せています
レイアウトで親子付けをすると回転軸が変わるので、全てのボーンに対して「中心点回転記録」を実行
回転角度を初期化します
バージョン 2024 以降なら、リグツールボックス内の RPR で一括実行ができるようになったので、ちょっと楽になりました

じゃっく
ありがてぇ
手順
ここから実際に IK を組んでいきます
手順はこのようになりました
IK コントローラーを用意する

最初にIK コントローラー用の Null オブジェクトを作ります
ショートカットは Ctrl+N
編集から形だとかサイズ・色を決めて、OK で作成
とりあえず形状はボックス型にして、名前を leg_IK_L にしました

このコントローラーを足首の関節に設置するわけですが、移動中に Alt を押しながら足首ボーンに近づければ、ペトッとくっついてくれます
これで設置完了
各ボーンに IK を設定する

太もものボーンを選択して、IK を設定していきます
設定はこんな感じ
- ヘディング制御:IK
- ピッチ制御:IK
- バンク制御:キーフレーム
バンク制御だけ、デフォルトの「キーフレーム」にしています
ちなみに全ての軸に IK を適用させた場合は、 MMD の IK の挙動に近い感じになりました

ひざにも IK を適用させます
- ヘディング制御:キーフレーム
- ピッチ制御:IK
- バンク制御:キーフレーム
ここはピッチ回転(緑色の輪っか)のみの影響で十分なので、一つだけです
IK コントローラーを付ける

次にゴールオブジェクトを設定
IK コントローラーです
最初この「ゴールオブジェクト」が一体何なのか、本当に意味不明でした

じゃっく
なんなんゴールオブジェクトって???
やってて分かったのですが、言い換えるならこれは
ゴールオブジェクト= IK が伝わる末端部分・終点部分
です
なので、この設定をしていないとボーンに IK を適用していても、何も反応ありません
IK を設定したボーンから見たら

じゃっく
どこが IK の終点なん???
といった感じなんだと思います
そんなわけで、ゴールオブジェクトは leg_IK_L に設定

設定すると画像のように線がぴょんと出てきます
よく分からない場所から伸びていますが、これは後で直します

IK コントローラーを動かすと、とりあえず IK は機能していることが分かります
ただ、移動させすぎるとびょ~んと点線が伸びちゃって不格好
その場合は「ゴールを吸着」を有効にすれば、本来あるべき場所に留まるようになります
IK の開始地点を変更する

次は IK の開始地点を変更
これは太ももの親である下半身( lower_body )の、「子孫の IK 効果を及ぼさない」を有効にすれば OK
ただ、これも単語が意味不明過ぎて、初見じゃ???過ぎて分かりませんでした

じゃっく
これじゃ 分からんって
これはたぶんですが、選択しているボーンを親としてみた場合、子ボーンからやってくる IK の影響を受けない・受け取らないという意味だと思います
なので、もう少しかみ砕いて言うと
「子孫の IK 効果を及ぼさない」=このボーンの先から IK の効果が入るよ
という考えになりそうです

じゃっく
もっと分かりやすくしてくださいな・・・
ひざのフリップを修正する

とりあえず IK の大まかな設定ができたので、軽く動作確認
すると、ひざがフリップフリップ

じゃっく
あぁ~ぉ⤵
あらぬ方向に曲がっちゃっています

これは角度制限を使えば抑えることができるので、設定を変更
ひざのモーションオプションを開いて、ピッチ制御を有効にして角度範囲を決めます
とりあえず
- 最少:0°
- 最大:170°
という設定にしました

もう一度 IK コントローラーを動かして確認
OK 大丈夫そう
動作確認

最後にあちこち動かして、最終的な動作確認をします
たぶん大丈夫です
変なフリップもないですし、プルプルもしていません

IK の設定に問題がなさそうなら、後は触れたくないボーンにカギを付けたり、コントローラーに色を付けたりして保存します
これで基本的な IK の設定が完了しました

じゃっく
また一つ新しいことを覚えたぞ
まとめ
それでは今回のまとめ
- Null オブジェクトを使って IK をコントロール
- 「ゴールオブジェクト」は IK が伝わる末端部分
- 「子孫の IK 効果を及ぼさない」は以降のボーンから IK を開始
今回は Null オブジェクトを使って、基本的な IK を組んでみました
作っているモデルのボーン構造が参考にした動画と違うので少し心配でしたが、何も問題なく普通に組むことができて良かったです
IK と聞くと複雑なイメージがありましたが、実際は
- IK を適用させるボーンを指定
- IK を開始させるボーンを指定
- IK を終了させる Null を指定
の三つの要素のみで成っているようで、できてしまえば想定よりも簡単だったように思えます
基本、太ももとひざに IK を入れて、コントローラーを足首に置けば問題無し
代わりに問題だったのが、機能名称ですかね
ゴールとか子孫とか・・・あれは分からんのよ
何とかならなかったのかな~と、考えてしまいます
何度か作って慣れていきますよ
というわけで、お疲れさまでした~
参考資料
使用ツール
- 3DCG
- LightWave3D
- 動画
- Bandicam
- ScreenToGif
