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

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

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 (キャラクターの首のジョイント) です。 コントロール リグ ユニットをトランスフォームとして追加することで、ビューポート内でウィジェットを使用してジョイントを操作できます。

Select Skin
Light
Dark

Welcome to the new Unreal Engine 4 Documentation site!

We're working on lots of new features including a feedback system so you can tell us how we are doing. It's not quite ready for use in the wild yet, so head over to the Documentation Feedback forum to tell us about this page or call out any issues you are encountering in the meantime.

We'll be sure to let you know when the new system is up and running.

Post Feedback