久しぶりのアニメーション関連の記事( ・`ω・´)
今回はコントロールリグで顔をふくらませてみましょう!
コントロールリグAddDeformerを活用します。
実際に動かしてみたのは下記動画になります!!
よければチャンネル登録お願いしますm(_ _)m
※UE5.5.4の新機能になります。
※書き間違え等あればコメントください!
※実際に動作させたのはこちらになります。
プラグインの有効化
今回deformの動作を行う際にプラグインのAnimatorKitを使います。
左上の Edit → plugin からプラグインの画面を開きます。

プラグインの画面で「Animator」で検索して、
「Animator kit」にチェックを入れて再起動します。

これで必要な設定は完了です。
実際に処理を作っていきましょう~
ControlRigやdeformerの設定の説明
今回はグレイマンのコントロールリグを作成して、
頭を伸び縮みさせる動きやコントローラーを作成していきます。
まずは伸縮するためのdeformerの設定である、
Deformer Graphをコンテンツブラウザの右クリックメニューから追加します。

追加が完了したらDeformerGraph用の処理を追加していきます。
画面の説明ですが左下のタブが2つあります。
Palette → 各種設定の変数や情報などのタブ
Explorer → グラフやコンポーネントの情報などのタブ
今回はExplorerの方を活用します。
コンポーネントのスケルタルメッシュをドラッグアンドドロップします。

まずスケルタルメッシュから皮膚のようなメッシュを取ってきます。
「Skinned」で検索して「Skinned Mesh」を選択します。

続いてPositionピンから伸ばして「sq」して、
「SquashStretch」を選択して追加します。
このSquashStretchを使用して伸ばしたり縮めたりします。

続いて伸び縮みした結果のポジションを正規化するために、
Positionピンを選択してからドラッグして、
「normal」で検索から「ComputeNormalsTangents」を選択して追加します。

最後にOut Positionピンを選択してドラッグして、
「write」で検索から「Write Skinned Mesh」を選択して追加します。

以上がメインの処理になります。
すべてつなげた結果が下記の画像の状態になります。

続いて各種変数を追加していきます。
左下のほうの「VALIABLES」の右側にある+ボタンで追加します。

今回下記4つの変数を作成します。
Transform → OriginTransform(原点の情報)
Length → Length to Deform(変形する長さ:今回は20で設定)
Stretch → Stretch Factor(伸び縮みする要素:0~1の値)
Bias → XY/Z Bias(各種方向の調整値:0~1の値)
上記変数をそれぞれ接続してあげます。

今度はどのBoneに対して適応するのか設定します。
グラフ上を右クリックして「skin weights」と検索して、
「Skin Weights as Vertex Mask」を選択して追加します。

上記の「Skin Weights as Vertex Mask」のみだと、
どの箇所に追加すればよいのかわからないので、
Boneの名前を指定するために設定を行います。
グラフ上を右クリックして、
「name」で検索して「Name Array Constant」を選択します。

「Name Array Constant」の値を("head")と入力します。
こうすることでスケルタルメッシュのheadを指定できます。
そして「Skin Weights as Vertext Mask」を、
「Squash Stretch」の「Weight Map」に繋げていきます。

これでDeformerGraphの方は完成なので、
今度はControlRigの方を作成していきます。
スケルタルメッシュを右クリックして、
「Create」から「ControlRig」を選択します。

コントロールリグの編集画面を開いたら、
骨の構造内にコントローラーを作成します。
「head」階層を右クリックして「New」から
「New Control」を選択します。

「Neck」にもコントローラーを追加しておきます。
そしてhead側のコントロールの見た目も変更します。
「Shape」を「RoundedSquare_thin」に変更して、
y角度を90度に変更しておきましょう。

続いて「Fowards Solve Graph」で右クリックして、
「adddef」で検索をかけて「AddDeformer」を選択します。

「Add Deformer」を選択して「Deformer Graph」に、
先ほど作成したDeformer Graphを指定します。
指定したら「Add Deformer」を右クリックからRefresh Variablesを選択します。

更新したら「Add Deformer」の方に幾つか変数ができるので、
それに合わせて「head_ctrl」を右クリックして、
「New Animation Chanel」を選択して複数パラメータを作成します。

今回はLengthとBiasの変数を作成しました。

実際にノードを配置していきましょう。
まず「neck_01_ctrl」をドラッグして、「GetControl」を選択します。

続いて「head_ctrl」をドラッグして、「Get Rerative Transform」を、
各種変数はドラッグして、「Get Animation Channel」を選択します。


それらを駆使して下記の様に設定します。
設定したら各種変数を下記の数値に設定します。
neck_01_ctrl → CurrentのRotatorのYを-90に設定
Length → Currentで50に設定
Bias → Currentで0.4~0.6の間の値
上記の状態で動かすとか下記動画のようにhead_ctrlの上下に、
動かして伸び縮みを設定することが可能になります。

以上で設定方法は以上になります。
各種変数や位置はシーケンスで操作可能だったりするので、
こちらはコントロールリグの操作の話になるので割愛します。
別で記事を作るはあるかもしれません。
※要望がありましたらコメントください。
最後に
久しぶりのアニメーションやコントロールリグ関連の記事でした。
まだまだアニメーション周り・UE固有の動作など、
紹介できていないのも多いので、
引き続き紹介していけたらと考えております。