LightWaveのエクスプレッションであるClamped MapRangeという機能の使い方を覚える
今回はLightWaveの機能の一つ、エクスプレッションの中にあるClamped MapRangeの使い方について調べていきます。
普段LightWaveはモデラーばかり使っていますので、レイアウトについてはおまけ程度しか知りません。
ただ将来的には自分でリグを組んで遊んでみたい。
まずは関連する機能を覚えていきます。
キャラクターのリギングで欠かせないのがコントローラーを使ったフェイシャルリグではないでしょうか。
ジョイスティックリグとも呼ばれるようです。
ただLightWaveでフェイシャルリグを作る方法がほとんど情報として残っていません。(情報がかなり古かったり、それっぽいものはあったりしたけどなんか違う)
結果的には公式ドキュメントに関連情報があったので、それを自分の中でかみ砕いて理解した内容を書いていきます。(“lightwave expression joystick" と検索すると出てきます)
はじめに
オブジェクトを用意
まずはモーフ付きのオブジェクトを用意します。
ちょっと雑ですが、確認用なのでこんな感じでOKです。
とりあえず4つのモーフを作りました。
オブジェクトを保存したらレイアウトに飛ばします。
レイアウト
パネル用Nullを配置
オブジェクトの隣にコントローラー用のパネルをNullオブジェクトから作ります。
名前はとりあえずWindowとしました。
大きさは適当です。
操作用Nullを配置
次に操作用のNullを用意します。
形はなんでも良いですが、今回は円形で名前はStickとしました。
Windowを親、Stickを子にします。
Windowには触れたくないのでカギ(ロック)をかけておきました。
設定
モーフミキサーを追加
次はモーフの入っているオブジェクトのプロパティを開いて “モディファイア追加" からモーフミキサーを追加します。
追加した直後だとモーフミキサーは下段に配置されますが、思った通りの結果にならなかった過去があるので、ボーンより上の段に動かしておきます。(モディファイアの順番は重要)
グラフエディタ
モーフがあるオブジェクトを選択した状態でグラフエディタを開きます。
その中に “MorphGroup" というのがあるので探して、ダブルクリックでチャンネルを表示させます。
そしてモーフの “ball" を選択した状態で右画面にある “ビルダー" を開きます。
Clamped MapRangeを設定
ビルダーを開いて上部右端にあるExpression Builder Basicからユーティリティファンクション→Clamped MapRangeというものがあるので、それをクリックすると画像のような画面に切り替わります。
簡易的な意味としては
- Controller – 操作用Nullをどちらの方向に動かすか
- Input Min – 操作用Nullの入力最小移動量
- Input Max – 操作用Nullの入力最大移動量
- OutputMin – モーフに与える出力最小量
- OutputMax – モーフに与える出力最大量
こうゆうことだと思います。(英語で書いてありますがほぼそのまんま)
設定の流れ
設定の流れは動画のようになります。
- オブジェクトを選択
- モーフチャンネルを選択
- ビルダーを開く
- Expression Builder Basicを開く
- ユーティリティーファンクションを開く
- Clamed MapRangeを開く
- Controllerに操作用Nullを動かす方向のチャンネルを選択
- 操作用Nullの移動量の最小と最大を入れる
- 選択中オブジェクトのモーフの最小と最大を入れる
- 有効をクリックして名前入力
- エクスプレッション作成をクリック
- モーフが選択されていることを確認して適用
動画では+X軸方向に移動したらモーフするようにしていますので、動かすと球体になることが確認できました。
移動範囲の設定
エクスプレッションを設定したばかりだと操作用のNullがどこまでもいってしまうので、移動量に制限をかけてみます。
操作用Nullを選択してモーションオプションを開きます。
その中に “位置" タブの中にあるXとZにチェックをいれて範囲制限をかけます。
これで操作用Nullは指定した範囲内でだけ動くようになりました。
モーフテスト
ボックス
ボールに入っていた4つのモーフに対して設定したのがこちら。
スムーズにモーフの切り替えができていることが確認できました。(びよ~んびよ~ん)
表情
顔のモーフにもClamped MapRangeを適用していました。
こちらも問題なくいけました。
これならやりたかったフェイシャルリグの構築ができるかも。
ちなみにノードでも同じようなことができるっぽいです。(ただよく分からなかった・・・)
だいぶ先になるかと思いますが、その内やってみたいと思います。
また一歩前進した。
以上です。
お疲れさまでした。
使用したツール
- GIF:Screen to GIF
- モデリング:LightWave 2024.1.0