今回はリグ周りにある機能について
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:リング

じゃっく
いろんな形状があるのでお好みで
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 かで判定している
- エクスプレッションという機能を使っている
- 表示と非表示はオブジェクトディゾルブで行っている
文字列が多くて難しい印象でしたが、思ったより簡単にできました

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

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