アルゴンUE4/UE5開発日記

UE4/UE5の機能やプラグインを紹介します。初心者や中級者向けになってます!!

【UE5】ControlRigのDeformerで伸び縮みさせる

久しぶりのアニメーション関連の記事( ・`ω・´)

今回はコントロールリグで顔をふくらませてみましょう!
コントロールリグAddDeformerを活用します。

実際に動かしてみたのは下記動画になります!!
よければチャンネル登録お願いしますm(_ _)m

※UE5.5.4の新機能になります。
※書き間違え等あればコメントください!
※実際に動作させたのはこちらになります。

プラグインの有効化

今回deformの動作を行う際にプラグインのAnimatorKitを使います。

左上の Edit → plugin からプラグインの画面を開きます。

EditからPluginの追加

プラグインの画面で「Animator」で検索して、

「Animator kit」にチェックを入れて再起動します。

Animator kitのプラグイン追加

これで必要な設定は完了です。

実際に処理を作っていきましょう~

・目次に戻る

ControlRigやdeformerの設定の説明

今回はレイマンのコントロールリグを作成して、
頭を伸び縮みさせる動きやコントローラーを作成していきます。

まずは伸縮するためのdeformerの設定である、
Deformer Graphをコンテンツブラウザの右クリックメニューから追加します。

DeformerGraphの追加

追加が完了したらDeformerGraph用の処理を追加していきます。
画面の説明ですが左下のタブが2つあります。
Palette各種設定の変数や情報などのタブ
Explorerグラフやコンポーネントの情報などのタブ

今回はExplorerの方を活用します。
コンポーネントスケルタルメッシュをドラッグアンドドロップします。

スケルタルメッシュの追加

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

Skinned Meshの追加

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

SquashStretchの追加

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

ComputeNormalsTangentsの追加

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

WriteSkinnedMeshの追加

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

すべてをつなげた結果

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

変数の追加の+ボタンの場所

今回下記4つの変数を作成します。

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

各種ノード接続

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

Skin Weight as Vertex Maskの追加

上記の「Skin Weights as Vertex Mask」のみだと、
どの箇所に追加すればよいのかわからないので、
Boneの名前を指定するために設定を行います。

グラフ上を右クリックして、
「name」で検索して「Name Array Constant」を選択します。

Name Arrayの追加

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

各種ノードを接続した最終結果

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

ControlRigの作成

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

headのコントロールの追加

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

コントロールの追加と角度の追加

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

AddDeformerの追加

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

Deformerの設定など

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

各種パラメータを作成

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

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

NeckのControlからノード取得

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

head_Ctrlから値を取得

Get Animation Channelを取得

それらを駆使して下記の様に設定します。

コントロールリグが完成した状態設定したら各種変数を下記の数値に設定します。
neck_01_ctrl CurrentのRotatorのYを-90に設定
Length Currentで50に設定
BiasCurrentで0.4~0.6の間の値

上記の状態で動かすとか下記動画のようにhead_ctrlの上下に、
動かして伸び縮みを設定することが可能になります。

実際に動かした状態

以上で設定方法は以上になります。

各種変数や位置はシーケンスで操作可能だったりするので、
こちらはコントロールリグの操作の話になるので割愛します。
別で記事を作るはあるかもしれません。
※要望がありましたらコメントください。

・目次に戻る

最後に

久しぶりのアニメーションやコントロールリグ関連の記事でした。

まだまだアニメーション周り・UE固有の動作など、

紹介できていないのも多いので、

引き続き紹介していけたらと考えております。

・目次に戻る