コントロールリグ ブループリント

コントロールリグがスクリプト可能なリギング システムであるのに対し、コントロールリグ ブループリントは、スクリプトによる機能を提供したり、リギング パラメータを設定したりできるアセットです。

Choose your operating system:

Windows

macOS

Linux

コントロールリグがスクリプト可能なリギング システムであるのに対し、 コントロールリグ ブループリント は、スクリプトによる機能を提供したり、リギング パラメータを設定したりできるアセットです。 コントロールリグ プラグインを有効にすると、 コンテンツ ブラウザ [Add New (新規追加)] ボタン (または右クリック コンテキスト メニュー) で [Create Advanced Asset (詳細なアセットを作成)]>[Animation (アニメーション)]>[Control Rig (コントロールリグ)] からコントロールリグ ブループリントを作成できます。

ControlRigBlueprint.png

このアセットを追加すると、親リグの選択を求められます。

ParentRig.png
通常は、基本クラスである [ControlRig] を選択して、 [Create (作成する)] をクリックします。 作成するコントロールリグ ブループリントはすべて、親リグとして割り当てることができます。 これにより、親に定義されている機能を新しいコントロールリグ ブループリントに継承できます。新しいコントロールリグ ブループリントに名前を付け、ダブルクリックして開くと、メイン コントロールリグ エディタが表示されます。

コントロールリグ エディタの UI

ControlRigWindow_2.png

  1. メニュー / メイン ツールバー - これらはブループリント エディタと同一です。アセットの保存、アセットを開く、さまざまなリギング エディタ ウィンドウの表示 / 非表示、コントロールリグ ブループリントのコンパイル、さまざまなクラス設定やクラスのデフォルト プロパティの割り当てといった、編集する際に必要な一般的なコマンドに簡単にアクセスできます。

  2. ビューポート - ビューポートは、アニメーション エディタ ビューポートに類似しており、さまざまなビューポート オプション、ビュー モード、表示オプション、キャラクター オプション、および LOD オプションを変更する機能があります。

  3. Rig (リグ)/Hierarchy (階層) - [Rig] タブでは、新しいリグ ユニットを追加できます。[Hierarchy] タブでは、階層として使用するスケルタル メッシュをインポートできます。 [Hierarchy] タブでは、右クリック コンテキスト メニューから、新しいジョイントの追加、ジョイント名の変更、ジョイントの削除もできます。

  4. Event Graph (イベント グラフ) /Rig Graph (リグ グラフ) - このイベント グラフは、ブループリント エディタが備えているイベント グラフに類似しており、実行時にはスクリプトを実行してパラメータを操作できます。 このリグ グラフは、さまざまな種類のアニメーション関連ノード ネットワークを設定できる点で、アニメーション ブループリントの AnimGraph に類似しています。 しかし、リグ グラフでは、ノードは「 リグ ユニット 」と呼ばれます。

  5. Details (詳細) / Preview Scene Settings (プレビューシーン設定) - この [Details] パネルでは (ブループリント エディタの [Details] パネルと同様に)、リグ ユニットと変数のプロパティ値の編集と変更ができます。 この [Preview Scene Settings] パネルでは、ビューポートでのシーンの見た目をすばやく変更できるツールと、アニメーション エディタの [Preview Scene Settings] タブと同様の機能にアクセスできます。

スケルタル メッシュ階層をインポートする

コントロールリグ システムで操作する対象がスケルタル メッシュの場合、最も短期間で使い始めることができる方法は、スケルタル メッシュ 階層 をコントロールリグ ブループリントにインポートすることです。

これを行うには、[Hierarchy] パネルを右クリックして、 [Import (インポート)] を選択します。 [Import] 展開メニューで、 [None (なし)] ドロップダウン ボックスをクリックし、インポートするスケルタル メッシュ階層を選択します。

ImportSkeletalMesh.png
選択したスケルタル メッシュに関連付けられているスケルトンを基に、システムによって階層が自動的に作成されます。 メッシュ エディタのコントロールリグ ウィンドウ ([Window (ウィンドウ)]>[Control Rig]) では選択したコントロールリグのマッピング設定を設定して、命名規則を設定できます。

ConfigureControlRig.png
スケルタル メッシュをインポートすると、そのメッシュのジョイント階層が表示されます。

JointHierarchy.png
ジョイントを右クリックして、追加のコンテキスト オプションを指定します。

JointRightClick.png
ジョイントのコンテキスト メニューでは、選択したジョイントの子として新しいジョイントの追加、ジョイントの削除、ジョイントの複製、ジョイント名の変更、および追加のメッシュをインポートして階層に追加ができます。

スケルタル メッシュをインポートして階層を生成した後、ビューポート内でスケルタル メッシュを表示するには、スケルタル メッシュを [Preview Mesh (プレビュー メッシュ)] として割り当てる必要があります。 これは [Preview Scene Settings] タブから行うことができます。

PreviewMesh.png

スケルタル メッシュ階層をインポートして、対応するプレビュー メッシュを割り当てた後は、[Compile (コンパイル)] ボタンをクリックしてブループリントをコンパイルする必要があります。 これにより、リグ グラフ内に作成した階層の参照を適切に取得して、リグ ユニットを使ってジョイントの操作を開始できます。

コントロールリグ グラフ

コントロールリグの階層を生成したら、 [Rig Graph] 内でジョイントを操作できます。ジョイントを操作するには、階層の参照を取得し、さまざまな リグ ユニット を使用してジョイントを目的どおりに動かします。右クリック コンテキスト メニューで [Rig Hierarchy Ref (リグ階層の参照)] を探します (コンテキスト メニューの [New Variable (新規変数)]>[Structure (構造体)] で見つけることもできます)。

RigHierarchyReference.png
[Details] パネルで変数の名前を変更できます。以下では 「Base_Hierarchy」 という名前にしています。

VariableRenamed.png
階層への参照を設定したら、さまざまな リグ ユニット を使用してジョイントを操作できます。

リグ ユニットの種類

リグ ユニットにはさまざまな種類がありますが、主に次の 2 カテゴリに分類されます。

  • オペレータ - データ型、数式、モーション システム (コンストレイント、FKIK、IK Spline など) から構成されます。

  • マニピュレータ - 開発者が外部ソースからトランスフォームを制御 (ジョイントのアニメートや操作) できるようにする特殊なリグ ユニットです。

グラフ内で右クリックしてコンテキスト メニューにアクセスすると、リグ ユニットの次のセクションが表示されます。

RigUnitSections.png

例 - TwoBoneIK/FK

キャラクターの両腕を設定して、それらの腕を動かしたいとします。 これは、階層の参照、 TwoBoneIK/FK (ジョイントを定義)、および コントロールリグ ユニット (ジョイントを操作) を使用して達成できます。

TwoBoneIK/FK リグ ユニットは [Transforms (トランスフォーム)] セクションにあります。

TwoBoneIK.png
TwoBoneIK/FK リグ ユニットでは、 Start Joint (開始ジョイント) End Joint (終了ジョイント) の定義と、 Hierarchy Ref (階層の参照) の割り当てができます。以下では、(Base Hierarchy という名前を付けた) Rig Hierarchy Reference 変数を接続しています。

TwoBoneIKJointSetup.png
この設定では、階層内の以下のジョイントを操作します。

3JointChain.png
ターゲットとして使用するトランスフォームは、 「End Effector (エンド エフェクタ)」 と呼ばれ、 TwoBoneIK/FK リグ ユニットに利用可能なピンがあります。 このトランスフォームは、専用の Control (コントロール) リグ ユニットによって操作されます。

以下では、 コントロール リグ ユニットを使用し、 [Result (結果)] ピンを TwoBoneIK/FK [End Effector] に接続しています。 また、このコントロールは右腕を動かすために使用するので、分かりやすいように、名前を「RightArm_Effector」に変更しています。

RightArm_Effector.png
これで、コントロールを選択して、ビューポートでウィジェットを動かすことでコントロールを操作できるようになりました。 腕の回転を制御するための [Pole Target (極ターゲット)] として、 (以下のビデオで行ったように) もう 1 つコントロールを追加することもできます。 [Pole Target] は位置のみを取得します。 [Result] の隣の展開アイコンをクリックすると、リグ ユニットの追加のパラメータを展開できます (これにより [Translation (変換)] ピンを使用して [Pole Target] に接続できます)。

ブループリントをコンパイルすると、(この例では) 腕が原点に戻ることが分かります。 コントロール リグ ユニットの初期トランスフォームは、 [Init Transform (初期トランスフォーム)] 情報を設定することで指定できます。

[Rig Hierarchy Ref] から [Get Joint Transform (ジョイント トランスフォームの取得)] を使用して、トランスフォーム情報取得元のジョイントを指定できます (例えば、この例では End Joint である hand_r)。 以下では、コントロール リグ ユニット Init Transform として、hand_r 初期 トランスフォーム データを使用しています。

GetJointTransform.png
この設定を行うとキャラクターの右腕を制御できるようになります。左腕を制御する場合は、このリグ ユニット ネットワークを複製して、Start/End Joint を左腕に変更してください。

クリックして拡大

例 - Apply FK (FK の適用)

個別のジョイントを制御する場合は、 Apply FK ノード、階層の参照、および コントロール リグ ユニットを使用します (TwoBoneIK/FK の例と同様です)。

NeckControl_ApplyFK.png

Apply FK リグ ユニットで、 [Global Space (グローバル空間)] にトランスフォームを適用しています。 ここで影響があるジョイントは neck_01 (キャラクターの首のジョイント) です。 コントロール リグ ユニットをトランスフォームとして追加することで、ビューポート内でウィジェットを使用してジョイントを操作できます。

Unreal Engine のドキュメントを改善するために協力をお願いします!どのような改善を望んでいるかご意見をお聞かせください。
調査に参加する
キャンセル