BLOGブログ

2025.07.02UEUE5UE/ 初心者向けUE/ Animation

[UE5] Control Rig Metadata を使ってみる

執筆バージョン: 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がより便利に感じられます。

是非使ってみてください。