PR

【UE5】FKの設定方法

Unreal Engine 5

Unreal Engine 5のコントロールリグで、FK(ボーンの位置姿勢を直接操作する手法)を使ってモデルを動かす方法です。
ノードベースのリググラフを使って、処理を実装します。
FKでは操作するボーンと親ボーンは動かないので、ボーンを移動すると親子の位置関係がずれます。そのため、基本的にはボーンを回転させるために使います。

スポンサーリンク

1.コントロールの作成

ボーンを操作するためのコントロールを作成します。

コントロールの追加

リグ階層にコントロールを追加します。

  • コントロールリグのファイルを開き、「リグ階層」で、動かすボーンを右クリック
  • 「新規」の「新しいコントロール」を選択して、コントロールを追加

コントロールは、ボーンと同じ位置姿勢で作成されます。

リグ階層の変更

コントロールはボーンの子として作成され、ボーンが動くとコントロールも動いてしまうため、階層を変更します。

  • 「リグ階層」でコントロールを選択
  • Shift+P、または右クリックして「親から解除」で階層から分離

公式でも、最終的にコントロールをボーンの階層から切り離すことを推奨しています。

覚え書き

コントロールの形状変更

  • 「リグ階層」でコントロールを選択
  • 「詳細」の「形状のプロパティ」で、コントロールの形状と色を、「形状トランスフォーム」で、大きさを変更
スポンサーリンク

2.リググラフの作成

コントロールのTransform取得処理の実装

ボーンのTransformをコントロールの位置姿勢にあわせるための値として、コントロールのTransformを取得する処理を実装します。

  • コントロールを、「リグ階層」からリググラフにドラッグ&ドロップ
  • 「コントロールを取得」を選択して、コントロールを対象としたGet Transformノードを追加

ボーンのTransform変更処理の実装

コントロールのTransformに合わせて移動するように、ボーンのTransformを変更する処理を実装します。

  • コントロールで動かすボーンを、「リグ階層」からリググラフにドラッグ&ドロップ
  • 「ボーンを設定」を選択して、ボーンを対象としたSet Transformノードを追加
  • Get TransformノードのTransform出力を、Set TransformノードのValue入力に繋ぐ
  • Forwards SolveノードのExcute出力を、Set TransformノードのExcuteContext入力に繋ぐ

これで、コントロールのTransform情報を使って、ボーンをTransformを設定する処理が実行されます。

以上で、ボーンをコントロールを操作して動かす、FK操作ができるようになりました。

コメント

タイトルとURLをコピーしました