コントロールリグ ブループリント を作成したら、アニメーション ブループリント の AnimGraph 内の Control Rig ノードを使用して、コントロールリグ ブループリント内で指定したコンテンツによってアニメーション データを拡張できます。 これにより、アニメーション データとコントロールリグ ブループリントのコンテンツをブレンドしたり、コントロールリグ ブループリントのコンテンツを既存のアニメーション データの上に重ねたりといったタスクを達成できます。
以下の例は、コントロールリグ ブループリントを使用して、あるジョイントが別のジョイントの方向を向き、その動きを追跡するようにする方法を示しています。 コントローリグを作成すると、その Control Rig ノードを使用して、アニメーションを再生している既存のアニメーション ブループリントにコントロールリグのコンテンツを組み込むことができます。
手順
この例では、新規の [Third Person (サード パーソン)] ブループリント テンプレート プロジェクトを使用します。
-
プロジェクトでコントロールリグ プラグインを有効にした後、[Add New (新規追加)] ボタンをクリックし、[Animation (アニメーション)] で [Control Rig (コントロールリグ)] を選択します。
-
親リグとして [ControlRig] を選択し、[Create (作成する)] をクリックして任意の名前を付けます。
-
コントロールリグ ブループリント内の [Hierarchy (階層)] タブ内で右クリックし、[Import (インポート)] の下で、[SK_Mannequin] を割り当てます。
-
[Preview Scene Settings (プレビューシーン設定)] タブで、[SK_Mannequin] を [Preview Mesh (プレビュー メッシュ)] として割り当てます。
-
コントロールリグ ブループリントをコンパイルします。
-
グラフ内で右クリックし、Rig Hierarchy Ref 変数を作成します。
-
Rig Hierarchy Ref の [Details (詳細)] パネルで、[Variable Name (変数名)] を「Base_Hierarchy」に変更します。
これにより、階層への参照が作成されます。通常、Base Hierarchy のような関連性の高い名前に変更すると便利です。 -
出力ピンをドラッグし、Joint が hand_r、Type が Current に設定された Get Joint Transform ノードを使用します。
これにより、ターゲット ジョイントがそのジョイントの方向を向き、そのジョイントの現在のトランスフォーム値を取得するようになります。 -
グラフ内で右クリックして、Aim Constraint ノードを追加します。
-
ブループリントをコンパイルします。
-
以下に示すように Base_Hierarchy ノードと Get Joint Transform ノードを Aim Constraint に接続し、以下のように設定します。
Joint = head
Aim Vector Y = 1.0
Aim Target Weight = 1.0
ここで、頭のジョイントに対して、右手のトランスフォームの Y 軸に沿った方向を向くように指示しています。 -
コンテンツ ブラウザ で、[Content (コンテンツ)] > [Mannequin] > [Character] > [Mesh] の下の [UE4_Mannequin_Skeleton] の上で右クリックして、 [Create] > [Anim Blueprint (Anim ブループリント)] を選択し、任意の名前を付けます。
-
AnimGraph のアニメーション ブループリント内で、Control Rig ノードを (Control Rig Class を割り当てた状態で) Final Animation Pose に接続します。
-
ThirdPersonIdle アニメーションを追加して Control Rig に接続し、コンパイルします。
キャラクターがアイドル状態になり、右手の方向を見るようになります。 右手が動くと、キャラクターは自動的に頭を右手の方向に向けます (右手の方向を見ます)。 Transform Modify Bone ノードをグラフに追加してビューポート内で操作できるようにすると、さらにテストできます。 -
Transform Modify Bone ノードを Control Rig と Play ThirdPersonIdle アニメーションの間に追加します (変換ノードは自動的に作成されます)。
-
[Transform Modify Bone] の [Details] パネルで、[Bone to Modify (修正するボーン)] を [upperarm_r]、[Rotation Mode (回転モード)] を [Add to Existing (既存に追加)] に設定します。
-
アニメーション ブループリントをコンパイルします。
最終結果
ビューポート内で右腕を回転させると、頭が手の位置を追いかけるようになりました。 また、別のアニメーションに変更したり、[Rotation Space (回転空間)] を調整すると、異なる結果を達成できます。