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

モーフを動かす時はモデルにモーフミキサーを読み込んで、モーフバーを動かして表情などを操作します

ただ、ちょっと操作性が物足りない感じがあります

じゃっく

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

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

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

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

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

準備

モーフ付きモデルを用意

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

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

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

これで準備 OK

手順

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

手順はこんな感じ

Null を用意

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

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

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

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

じゃっく

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

STEP2
親子付けと位置の調整

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

コントローラーをパネルの下に配置

じゃっく

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

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

STEP3
位置制限を付ける

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

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

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

じゃっく

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

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

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

STEP1
モーフミキサーを追加

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

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

じゃっく

下側にあります

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

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

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

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

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

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

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

じゃっく

最初直し方が全然わからなくて途方に暮れました

モーフリンクを設定

STEP1
ビルダーを開く

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

その中の blink モーフを選択

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

STEP2
モーフリンクを選択

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

右上のコマンドからモーフリンク( Morph Link )を探して選択

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 を入れています

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

STEP4
モーフに再び適応する

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

じゃっく

今度こそ良いはず

動作の再確認

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

成功です

じゃっく

うまくいってよかった

モーフを四つ入れた動画

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

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

まとめ

それではまとめです

モーフリンクを使えば表情操作が楽になる
  • モデルにモーフミキサーを追加する
  • モーフミキサーはモーフィングより一個下に置く
  • モーフリンクはグラフ編集のビルダーから作れる
  • 意図しないモーフが入ったら条件式を利用することも考える

こんな感じでしょうか?

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

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

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

じゃっく

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

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

おまけ

実は Clamped MapRange という似たものがある

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

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

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

じゃっく

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

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

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

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

参考物

使用したソフト

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