今回はフェイシャルリグ関係で、モーフリンク( Morph Link )という機能を使ってみました
モーフを動かす時はモデルにモーフミキサーを読み込んで、モーフバーを動かして表情などを操作します
ただ、ちょっと操作性が物足りない感じがあります

じゃっく
もう少し直観的に動かしたい
そこで何か良いもの無いかな~と探して、使ってみたのがモーフリンクというものです
実際に組み込んで使ってみましたが、複数の表情を簡単に動かすことができました
スライダーズ( Sliders )というものも、画面上に簡易的なバー表示して操作するものでしたが、モーフリンクはより複雑なことができそうです
というわけで忘れないようにメモメモ( ..)φメモメモ
準備
モーフ付きモデルを用意

まずはモーフ付きのモデルが必要なので用意します
無ければいくつかモーフを作りますが、既に作ってある自作モデルを使うことにしました
頂点マップにモーフがあることを確認して、レイアウトにポイっと投げ込みます
これで準備 OK
手順
それでは実際にモーフリンクを適応していきます
手順はこんな感じ
Null を用意

Null の作成画面を開いて二つ作ります
- パネル:100mm のグリッド
- コントローラー:10mm のリング
名前を付けて、編集からサイズと形状を決定して作成

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

シーン編集かモーションオプションから親子付けを設定します
コントローラーをパネルの下に配置

じゃっく
ショートカット E でもできます
パネルをつかんで見やすい位置に移動しておきます

このままだとコントローラーがどこまでも飛んで行くので、位置の制限をかけます
モーションオプションの制御と制限タブに移動して、位置タブから設定
XYZ の位置制限にチェックを入れて移動範囲を記入します

じゃっく
単位がメートルのようなので、範囲は -0.05~0.05 にしました
Z 軸は手前や奥に移動しないように、最大と最小を 0 にしておきます
モデルにモディファイヤを追加

モデル本体を選択して、オブジェクトプロパティを開きます
プリミティブタブのジオメトリタブ、モディファイヤの追加から「モーフミキサー」を追加

じゃっく
下側にあります

モーフミキサーがを追加しましたら上に移動しておきます
モーフィングの一個下です
なぜかといいますと、追加された位置のままだと正常に機能しなかったためです

こちらを少しご覧ください
ちょっと見えにくいですけど、涙モーフの位置がおかしなことになっています
正しい状態にするには、モーフミキサーをモーフィングの一個下に置かないといけません

じゃっく
最初直し方が全然わからなくて途方に暮れました
モーフリンクを設定

グラフエディタを開いて各アイテムのチャンネルから MorphGroup を探します
その中の blink モーフを選択
上のチャンネル枠にある黄色文字が選択されていることを確認して、ビルダーをクリック

すると、エクスプレッションビルダーが立ち上がります
右上のコマンドからモーフリンク( Morph Link )を探して選択

英語で書かれているのでつい身構えてしまいますが、書いてあることはだいたいこんな感じです
- Controller:モーフリンクをコントロールする駆動用のチャンネル
- Control Min:コントローラーから最小値を入力
- Control Max:コントローラーから最大値を入力
- Morph Min:モーフリンクからモーフの最小値を出力
- Morph Max:モーフリンクからモーフの最大値を出力
- モーフは 0.0 ~ 1.0 で設定
コントローラーを下に動かした時にまばたきさせたかったので、コントローラーの最大値を -0.05 にしています
あとは名前を blink にして、エクスプレッション作成をクリック

すると、名前と値が入力されます
チャンネル枠内の黄色文字のモーフが選択されていることを確認して適応

じゃっく
黄色文字の左隣に丸が付いたら適応された状態になっています
動作確認

そして、いざ動作確認すると・・・
・・・うん?
まばたきはできていますが、プラス方向にいったとたん恐怖映像の如く、目が開きまくっていますね

じゃっく
わぁっ怖いっ!!
条件を追加

なんか失敗したので、ちょっと条件を加えます
プラス方向に進んだら何もしないという条件をつけたいので、まずは名前を blink_sub に変更
名前を変更したら、もう一度ビルダーを開きます

今度は条件ファンクションから条件を選びます
Greater Than か Less Than のどちらかですが、まばたきはマイナス方向でコントロールしているので、 Less Than を選択

条件式とその式に沿った結果を入れていきます
プログラミングを少しかじった方なら、なんとなく分かるかもしれません
- 満たす場合:Input C を実行
- 満たさない場合:Input D を実行
こんな感じなっています
なので、満たす場合は blink_sub を実行して、満たさないなら何もしないという意味で 0 を入れています
書き終わったら名前を改めて blink として、エクスプレッション作成をクリック

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

じゃっく
今度こそ良いはず
動作の再確認

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

じゃっく
うまくいってよかった
モーフを四つ入れた動画
ちょっと調子に乗って四つのモーフをいっぺんに入れてみました
良い感じにできたと思います
まとめ
それではまとめです
- モデルにモーフミキサーを追加する
- モーフミキサーはモーフィングより一個下に置く
- モーフリンクはグラフ編集のビルダーから作れる
- 意図しないモーフが入ったら条件式を利用することも考える
こんな感じでしょうか?
今回はモーフリンク( Morph link )を使って、モーフをコントロールしてみました
計算式を使うので少し難しく感じていましたが、ビルダーを使えばいくらか簡単にできることがわかりました
このモーフリンクを使えば、もっと細かいフェイシャルリグが作れそうです

じゃっく
いろいろ作って身に付けよう
それでは、お疲れさまでした
おまけ
実は Clamped MapRange という似たものがある

実はモーフリンクと似たものとして、クランプトマップレンジ( Clamped MapRange )というものもあります
書き方はほぼモーフリンクと同じです
ただ、こちらはわざわざ条件式を書く必要がありません

じゃっく
自動的に 0%~100% の範囲でモーフが働きます
クランプトマップレンジの方ができることが多いので、初めからこっち使っておけば良いのでは?と思ったり思わなかったり・・・
使い分けとしては、こんな感じになりそうです
- モーフリンク:-100%~100% のモーフを使いたい場合
- クランプトマップレンジ:0~100% のモーフを使いたい場合
参考物
使用したソフト
- 3DCG
- LightWave3D
- 画像
- CLIP STUDIO PAINT PRO
- 動画
- Bandicam
- ScreenToGif