今回はIK/FK切り替えスイッチを、どうやって作るのか調べてみました
LightWave には2種類リグプリセットが用意されています
- Rhiggit (ver2024以降)
- Genoma (ver2024以前)
そのプリセットの中には、IK/FK の切り替えスイッチのようなものがありました
LightWave でどうやって作るのか調べてみましたが、いつものようにまったく情報がありません

じゃっく
悲しき事よ・・・
そこで Genoma の中身をなんとなく覗いてみたところ、切り替えスイッチを発見
少しずつ手探りで作っていった結果、思ったより簡単に作ることができました
今後のために情報共有のつもりで記録を残していきます
IK/FK 切り替えスイッチとは
ボーンの動かし方を切り替えるスイッチ

まずはこちらをご覧ください
スイッチを動かすと IK用のNull と FK用のNull が切り替わっています
このリグは Genoma というリグプリセットから作ったものです
古いプリセットリグですが、こちらに IK/FK の切り替えスイッチがありました
このスイッチが自分でも作れるようになったら、ボーンの扱いがより楽になりそうです

じゃっく
将来的には自分でリグを組んでみたい
中身を確認してみた
エクスプレッションで制御していた

まずグラフ編集を開いて、中身を確認
大量の文字列があって思わず圧倒されましたが、どうやらこのエクスプレッション (Expression) という機能で制御しているようです
黄色の文字列はうろ覚えですが、おそらく変位系の何かかなと予想

じゃっく
モーフの中身も黄色の文字列でした
オブジェクトディゾルブの数値で制御していた

次はオブジェクトプロパティのレンダリングタブを確認
すると、オブジェクトディゾルブ (Object Dissolve) という項目のグラフ編集が有効になっていました
切り替えスイッチを動かしてみると数値が変化して、100%になると消失します

じゃっく
ディゾルブは消える、溶けるという意味だそうな
どうやらこんな感じになっているようです
- 非表示:100%
- 表示:0%~99%
言い換えると0か1かで表示の切り替えをしているとも考えられます
手順
大体分かったので、さっそく IK/FK の切り替えスイッチを作ってみます
以下手順です
Genoma の中身を見ながら作りましたが、だいたいこんな感じになるはずです
実際にリグを組むわけじゃないですが、組んだ想定で切り替えスイッチを作っていきます
Null を用意する

まずは Null を三つ作っていきます
分かりやすいように名前と Null の形状を決めます
- FK_Null:ボール
- IK_Null:ボックス
- Switch_Null:リング

じゃっく
いろんな形状があるのでお好みで
※おまけに Null の再編集のやり方を残しました
Switch_Null を設定する

Switch_Null でコントロールするのですが、一方向にしか動かさないので制限をかけます
モーションオプションを開いて、今回はヘディング制限にチェック
範囲は0.0°から90.0°にしました

じゃっく
ついでに動かせる回転軸もヘディングだけにします
IK と FK の Null を設定する

IK_Null と FK_Nullのどちらかを選択して、 オブジェクトプロパティを開きます
レンダリングタブへ移動
オブジェクトディゾルブの隣にある E をクリックして、グラフ編集を有効にします

グラフ編集の中身を確認すると、 IK_Null に Dissolve が追加されているのが確認できます
Switch_Null で IK/FK をコントロールするので、Switch_Null へ移動
移動直後だとチャンネルが大量に表示されますが、Rotation.H をクリックして単一にします

右下のエクスプレッションタブに移動して、制御名と数式を入れていきます
まずは IK_Null 用から
- 名前:IK_Switch
- 数式:([Switch_Null.Rotation.H])/90
この 90 となっている数字は、先ほど制限をかけたヘディングの最大角度です
Switch_Null の角度が0°~89°の時は表示させたいので、この数式になっています
文字列が長くて入力が大変な場合は、左上のチャンネル名から「エクスプレッションに追加」を実行することで、簡単に入力することができます

じゃっく
入力が終わったら複製を押して、FK_Null 用を作ります

複製を押すと名前に Clone が入るので、名前を FK_Switch に変更
数式も FK_Null 用に変更します
- 名前:FK_Switch
- 数式:(90-[Switch_Null.Rotation.H])/90

じゃっく
(1-([Switch_Null.Rotation.H]/90)) でも大丈夫です
うまく入力ができていると複製ボタンの上にある、エクスプレッションに作ったものが入っています

各アイテムのチャンネルタブから IK_Null を開いて、IK_Null.Dissolve を選択します
エクスプレッションタブで、名前が IK_Switch になっていることを確認して適用

FK_Null も同じように、FK_Null.Dissolve 探して適用します

適用したものはエクスプレッションタブに表示されます
これで設定が完了

じゃっく
実際に動かしてみよう
完成

動かしてみたのがこちらです

じゃっく
動いた~
うまく切り替わっているのが分かります
これ作り方も分かったので、将来リグを組むときに役に立ちそうです
まとめ
では、今回のまとめになります
- 数式結果が0か1かで判定している
- スイッチはグラフ編集から設定できる
- エクスプレッション機能を使っている
- 切替はオブジェクトディゾルブでやっている
今回は IK/FK の切り替えスイッチの作り方を残してみました
文字列が多くて難しい印象でしたが、プリセットリグがあったおかげで思ったより簡単にできました

じゃっく
ただ数式で0か1で表示判定しているだけでした
今回作ったのは IK/FK 切り替え用ですが、時間経過でオブジェクトの表示・非表示にも使えそうです
今後もいろいろ調べていきたいと思います
それでは、お疲れさまでした
おまけ
Null を再編集する

Null の形状をもう一度設定したいときは、オブジェクトプロパティ内のアピアランスタブ、「カスタムオブジェクト追加」から「アイテム形状」を追加します
これで形状や色・名前を変えることができます
一方で、もう少し文字のサイズや位置が変えられたら良いのにとも感じました
使用ツール
- 3DCG
- LightWave3D
- 動画
- Bandicam
- ScreenToGif
- 画像
- CLIP STUDIO PAINT PRO