執筆バージョン: Unreal Engine 5.5
|
はじめに
今回の記事では、Control RigのMetadataノードについてご紹介します。
Control RigのMetadataノードはUE 5.1から付いた機能で、生成したControlなどをBoneのMetadataとして保存し参照させることができます。
主にプロシージャルなControl Rigを生成するフローで役に立つ機能です。

では、Control Rigの生成とMetadataの基本的な使い方を簡単な例を通して見ていきましょう。
なお、本記事ではControl Rigのサンプルとして CR_Mannequin_BasicFootIK を使用しています。

Controlの生成と設定
簡単な例としてMannequinのpelvisに対してControlを生成し、pelvis自体を動かせるようにしてみましょう。

Construction Event
新規Controlを生成するためにConstruction Eventを追加します。
このEvent内でControlの生成を行います。

SpawnControl
Controlを生成するにはSpawnControlノードを使います。
ノードを追加し、Construction Eventに接続しましょう。

早速エラーが出ますが、これはInitial Valueがないためです。
Initial Valueを右クリックしてTransformを選ぶとエラーが消えます。

pelvisの位置にControlのギズモを出したいので、Boneから値を取得してきましょう。
ItemノードからBone: pelvisの参照を取り、Get TransformからOffset Transformへと繋ぎました。

Controlが生成されているか確認します。
Rig Hierarchyタブを見てみると、末尾に色付きでNewControlが追加されています。
これは動的に生成されたものを示しています。

ビューポートで見てみると、正しくpelvisの位置にControlが追加されていますが、このままではメッシュの内部に埋まっていて見えません。

Shapeの変更
そこでControlの見た目を変更してわかりやすくします。
Spawn ControlのSettings内にControlの見た目 (Shape) を変えられるオプションがあります。

上図のようにCircle_Thickに変更し、Transformも調整してみました。
これで生成したControlをビューポート上で確認でき、操作もしやすくなります。

Nameの変更
ついでに、NewControlとなっている名前もわかりやすく変えておきましょう。
ItemノードのName出力からConcatノードで接尾辞を付けられます。

これでどのControlなのか判別しやすくなりましたね。

Set Item Metadata
それでは、この生成したControlをpelvisのMetadataとして保存し、後の処理で使いやすくしましょう。
Spawn Transform Controlノードの次にSet Item Metadataノードを追加し、下図のように接続します。

Set Item Metadata内のNameはデフォルトでNoneになっていますが任意の名前を付けられます。
ここではわかりやすくcontrolとしました。
これでConstruction Eventは完了です。
Forwards Solve Event
次にControl経由でpelvisを動かせるようにしていきましょう。
Forwards Solve イベントに処理を書いていきます。
今回使用しているCR_Mannequin_BasicFootIKでは、すでにForwards Solve内にIKの処理が書かれています。

追加するpelvisの動きもIKへ反映したいので、これらの処理の前に追加しましょう。
冒頭のSequenceノードの前かSequenceの処理をずらした位置に次のノードを置くことにします。
Set Transformノードでpelvisの値を設定します。

Set TransformのValueには先程のConstruction Eventで生成したControlの値を設定しましょう。
ここでMetadataを使います。
次図ではGet Item Metadataノードを使い、ItemノードからplevisのMetadata (Name: control) を取得し、
そのControl (pelvis_ctrl) のTransform値をBoneへ設定しています。

これでビューポートのpelvis_ctrlを操作すると、キャラクターのpelvisを直接動かすことができるようになりました。

Control Rigの生成とMetadataの基本的な使い方は以上になります。
まとめ
この記事では、Metadataを使ったControl Rigについてご紹介しました。
今回は単一Boneのシンプルな例でしたが、階層構造を持った複雑なRigになってくるとMetadataがより便利に感じられます。
是非使ってみてください。