今回はフェイシャルリグ関係で、モーフリンク (Morph Link) という機能を使ってみました

モーフを動かす時はモデルにモーフミキサーを読み込んで、モーフバーを動かして表情などを操作するんですが、ちょっと操作性が物足りない感じがあります

じゃっく

もう少し直観的に動かしたいな

そこで何か良いもの無いかな~と探して、使ってみたのがモーフリンクというものです

実際に組み込んで使ってみて、複数の表情を簡単に動かせることが確認できました

スライダーズというものも、画面上に簡易的なバー表示して操作するものでしたが、モーフリンクはより複雑なことができそうです

というわけで忘れないようにメモメモ( ..)φメモメモ

準備

モーフ付きモデルを用意

まずはモーフ付きのモデルが必要なので用意します

無ければいくつかモーフを作りますが、既に作ってある自作モデルを使うことにしました

頂点マップにモーフがあることを確認して、レイアウトにポイっと投げ込みます

これで準備OK

手順

それでは実際にモーフリンクを適用していきます

手順はこんな感じ

操作用の Null を用意

STEP1
パネルとコントローラー用の Null を用意

Null の作成画面を開いて二つ作ります

各 Null の設定
  • パネル:100mmのグリッド
  • コントローラー:10mmのリング

名前を付けて、編集からサイズと形状を決定して作成

もし勢い余ってそのまま Null を作ってしまった場合は、オブジェクトプロパティからアイテム形状を追加すれば大きさと形を変えられます

STEP2
親子付けと位置の調整

親子付けはシーン編集かモーションオプションから設定します

コントローラーをパネルの下に配置すればOKです

じゃっく

ショートカット E でもできます

パネルをつかんで見やすい位置に移動しておきます

STEP3
位置制限を付ける

このままだとコントローラーがどこまでもすっ飛んで行くので、位置の制限をかけます

モーションオプションの制御と制限タブに移動して、位置タブから設定

XYZ の位置制限にチェックを入れて移動範囲を記入します

じゃっく

単位がメートルのようなので、範囲はー0.05~0.05にしました

Z軸は手前や奥に移動しないように、最大と最小を0.0にしておきます

モデルにモディファイアを追加

STEP1
モーフミキサーを追加

モデル本体を選択して、オブジェクトプロパティを開きます

プリミティブタブのジオメトリタブ、「モディファイアの追加」から「モーフミキサー」を追加

じゃっく

下側にあります

STEP2
モーフミキサーを上に移動

「モーフミキサー」を追加しましたら上に移動しておきます

「モーフィング」の一個下です

なぜかといいますと、追加された位置のままだと正常に機能しなかったためです

こちらを少しご覧ください

ちょっと見えにくいですけど、涙モーフの位置がおかしなことになっています

本当は涙は目尻に置かれるはずです

正しい状態にするには、「モーフミキサー」を「モーフィング」の一個下に置かないといけません

じゃっく

最初直し方が全然分からなかった

モーフリンクを設定

STEP1
ビルダーを開く

次はグラフエディタを開いて、各アイテムのチャンネルから MorphGroup を探します

その中の blink モーフを選択

上のチャンネル枠にある黄色文字が選択されていることを確認して、「ビルダー」をクリック

STEP2
モーフリンクを選択

すると、「エクスプレッションビルダー」が立ち上がります

右上のコマンド、「ユーティリティファンクション」から「モーフリンク」を探して選択

STEP3
値を入力

英語で書かれているのでつい身構えてしまいますが、書いてあることはだいたいこんな感じです

  • Controller:モーフリンクをコントロールする駆動用のチャンネル
  • Control Min:コントローラーから最小値を入力
  • Control Max:コントローラーから最大値を入力
  • Morph Min:モーフリンクからモーフの最小値を出力
  • Morph Max:モーフリンクからモーフの最大値を出力
  • モーフは0.0~1.0で設定

コントローラーを下に動かした時にまばたきさせたかったので、コントローラーの最大値をー0.05にしています

あとは名前を blink にして、「エクスプレッション作成」をクリック

STEP4
モーフにエクスプレッションを適用

すると、名前と値が入力されます

チャンネル枠内の黄色文字のモーフが選択されていることを確認して適用

じゃっく

黄色文字の左隣に丸が付いたら適用された状態になっています

動作確認

そして、いざ動作確認すると・・・

・・・うん?

まばたきはできていますが、プラス方向にいったとたん恐怖映像の如く、目が開きまくっていますね・・・

じゃっく

うわぁっ怖っ!!

条件を追加

STEP1
名前を変更する

なんか失敗したので、ちょっと条件を加えます

プラス方向に進んだら何もしないという条件をつけたいので、まずは名前を blink_sub に変更

名前を変更したら、もう一度ビルダーを開きます

STEP2
条件を追加する

今度は条件ファンクションから条件を選びます

Greater Than か Less Than のどちらかですが、まばたきはマイナス方向でコントロールしているので、 Less Than を選択

STEP3
条件の値を入力する

条件式とその式に沿った結果を入れていきます

プログラミングを少しかじった方なら、なんとなく分かるかもしれません

もしY軸 < 0.0
  • 満たす場合:Input C を実行
  • 満たさない場合:Input D を実行

こんな感じなっています

なので、満たす場合は blink_sub を実行して、満たさないなら何もしないという意味で0.0を入れています

書き終わったら名前を改めて blink として、「エクスプレッション作成」をクリック

STEP4
モーフに再び適用する

もう一度同じように blink モーフに適用

じゃっく

今度こそ良いはず

動作の再確認

Y軸がプラス方向に行ってもおかしなことになっていないですね

成功です

じゃっく

うまくいってよかった

モーフを四つ入れた動画

ちょっと調子に乗って、4つのモーフをいっぺんに入れてみました

じゃっく

良い!

良い感じにできたと思います

まとめ

それでは今回のまとめです

まとめ
  • Null を使ってパネルなどを作る
  • Null の形などは後からでも変更可
  • モデルにモーフミキサーを追加する
  • モーフミキサーは上から二番目に置く
  • モーフリンクはグラフ編集から作れる
  • 意図しないモーフなら条件式を追加する

今回はモーフリンクを使って、モーフをコントロールしてみました

計算式を使うので少し難しく感じていましたが、ビルダーを使えばいくらか簡単にできることがわかりました

このモーフリンクを使えば、もっと細かいフェイシャルリグが作れそうです

じゃっく

いろいろ作って身に付けよう

これまであまりレイアウトの機能を触ったことが無かったので、ちょっと新鮮でした

スライダーズも初めて使ったときは、おぉっ!と感動しましたからね

モデリングが終わった後はレイアウトでの作業も増えると思うので、少しずつ機能を確認していきたいと思います

それでは、お疲れさまでした

おまけ

実はクランプトマップレンジという似たものがある

実はモーフリンクと似たものとして、クランプトマップレンジ (Clamped MapRange) というものもあります

書き方はモーフリンクとほぼ同じ

ただ、こちらはわざわざ条件式を書く必要がありません

自動的に0%~100%の範囲でモーフが働きます

じゃっく

こっちの方が楽かも?

クランプトマップレンジの方ができることが多いので、初めからこっち使っておけば良いのでは?と思ったり思わなかったり・・・

使い分けとしては、こんな感じになりそうです

それぞれの使い分け
  • モーフリンク:ー100%~100%のモーフを使いたい場合
  • クランプトマップレンジ:0~100% のモーフを使いたい場合

参考資料

使用ツール

3DCG
  • LightWave3D
動画
  • Bandicam
  • ScreenToGif
画像
  • CLIP STUDIO PAINT PRO