Choose your operating system:
Windows
macOS
Linux
コントロールリグがスクリプト可能なリギング システムであるのに対し、コントロールリグ ブループリント は、スクリプトによる機能を提供したり、リギング パラメータを設定したりできるアセットです。 コントロールリグ プラグインを有効にすると、 コンテンツ ブラウザ の [Add New (新規追加)] ボタン (または右クリック コンテキスト メニュー) で [Create Advanced Asset (詳細なアセットを作成)]>[Animation (アニメーション)]>[Control Rig (コントロールリグ)] からコントロールリグ ブループリントを作成できます。
このアセットを追加すると、親リグの選択を求められます。
通常は、基本クラスである [ControlRig] を選択して、[Create (作成する)] をクリックします。 作成するコントロールリグ ブループリントはすべて、親リグとして割り当てることができます。 これにより、親に定義されている機能を新しいコントロールリグ ブループリントに継承できます。新しいコントロールリグ ブループリントに名前を付け、ダブルクリックして開くと、メイン コントロールリグ エディタが表示されます。
コントロールリグ エディタの UI
メニュー / メイン ツールバー - これらはブループリント エディタと同一です。アセットの保存、アセットを開く、さまざまなリギング エディタ ウィンドウの表示 / 非表示、コントロールリグ ブループリントのコンパイル、さまざまなクラス設定やクラスのデフォルト プロパティの割り当てといった、編集する際に必要な一般的なコマンドに簡単にアクセスできます。
ビューポート - ビューポートは、アニメーション エディタ ビューポートに類似しており、さまざまなビューポート オプション、ビュー モード、表示オプション、キャラクター オプション、および LOD オプションを変更する機能があります。
Rig (リグ)/Hierarchy (階層) - [Rig] タブでは、新しいリグ ユニットを追加できます。[Hierarchy] タブでは、階層として使用するスケルタル メッシュをインポートできます。 [Hierarchy] タブでは、右クリック コンテキスト メニューから、新しいジョイントの追加、ジョイント名の変更、ジョイントの削除もできます。
Event Graph (イベント グラフ)/Rig Graph (リグ グラフ) - このイベント グラフは、ブループリント エディタが備えているイベント グラフに類似しており、実行時にはスクリプトを実行してパラメータを操作できます。 このリグ グラフは、さまざまな種類のアニメーション関連ノード ネットワークを設定できる点で、アニメーション ブループリントの AnimGraph に類似しています。 しかし、リグ グラフでは、ノードは「リグ ユニット」と呼ばれます。
Details (詳細)/Preview Scene Settings (プレビューシーン設定) - この [Details] パネルでは (ブループリント エディタの [Details] パネルと同様に)、リグ ユニットと変数のプロパティ値の編集と変更ができます。 この [Preview Scene Settings] パネルでは、ビューポートでのシーンの見た目をすばやく変更できるツールと、アニメーション エディタの [Preview Scene Settings] タブと同様の機能にアクセスできます。
スケルタル メッシュ階層をインポートする
コントロールリグ システムで操作する対象がスケルタル メッシュの場合、最も短期間で使い始めることができる方法は、スケルタル メッシュ 階層 をコントロールリグ ブループリントにインポートすることです。
これを行うには、[Hierarchy] パネルを右クリックして、[Import (インポート)] を選択します。 [Import] 展開メニューで、[None (なし)] ドロップダウン ボックスをクリックし、インポートするスケルタル メッシュ階層を選択します。
選択したスケルタル メッシュに関連付けられているスケルトンを基に、システムによって階層が自動的に作成されます。 メッシュ エディタのコントロールリグ ウィンドウ ([Window (ウィンドウ)]>[Control Rig]) では選択したコントロールリグのマッピング設定を設定して、命名規則を設定できます。
スケルタル メッシュをインポートすると、そのメッシュのジョイント階層が表示されます。
ジョイントを右クリックして、追加のコンテキスト オプションを指定します。
ジョイントのコンテキスト メニューでは、選択したジョイントの子として新しいジョイントの追加、ジョイントの削除、ジョイントの複製、ジョイント名の変更、および追加のメッシュをインポートして階層に追加ができます。
スケルタル メッシュをインポートして階層を生成した後、ビューポート内でスケルタル メッシュを表示するには、スケルタル メッシュを [Preview Mesh (プレビュー メッシュ)] として割り当てる必要があります。 これは [Preview Scene Settings] タブから行うことができます。
スケルタル メッシュ階層をインポートして、対応するプレビュー メッシュを割り当てた後は、[Compile (コンパイル)] ボタンをクリックしてブループリントをコンパイルする必要があります。 これにより、リグ グラフ内に作成した階層の参照を適切に取得して、リグ ユニットを使ってジョイントの操作を開始できます。
コントロールリグ グラフ
コントロールリグの階層を生成したら、[Rig Graph] 内でジョイントを操作できます。ジョイントを操作するには、階層の参照を取得し、さまざまな リグ ユニット を使用してジョイントを目的どおりに動かします。右クリック コンテキスト メニューで [Rig Hierarchy Ref (リグ階層の参照)] を探します (コンテキスト メニューの [New Variable (新規変数)]>[Structure (構造体)] で見つけることもできます)。
[Details] パネルで変数の名前を変更できます。以下では「Base_Hierarchy」という名前にしています。
階層への参照を設定したら、さまざまな リグ ユニット を使用してジョイントを操作できます。
リグ ユニットの種類
リグ ユニットにはさまざまな種類がありますが、主に次の 2 カテゴリに分類されます。
オペレータ - データ型、数式、モーション システム (コンストレイント、FKIK、IK Spline など) から構成されます。
マニピュレータ - 開発者が外部ソースからトランスフォームを制御 (ジョイントのアニメートや操作) できるようにする特殊なリグ ユニットです。
グラフ内で右クリックしてコンテキスト メニューにアクセスすると、リグ ユニットの次のセクションが表示されます。
例 - TwoBoneIK/FK
キャラクターの両腕を設定して、それらの腕を動かしたいとします。 これは、階層の参照、TwoBoneIK/FK (ジョイントを定義)、および コントロールリグ ユニット (ジョイントを操作) を使用して達成できます。
TwoBoneIK/FK リグ ユニットは [Transforms (トランスフォーム)] セクションにあります。
TwoBoneIK/FK リグ ユニットでは、Start Joint (開始ジョイント) と End Joint (終了ジョイント) の定義と、Hierarchy Ref (階層の参照) の割り当てができます。以下では、(Base Hierarchy という名前を付けた) Rig Hierarchy Reference 変数を接続しています。
この設定では、階層内の以下のジョイントを操作します。
ターゲットとして使用するトランスフォームは、「End Effector (エンド エフェクタ)」と呼ばれ、TwoBoneIK/FK リグ ユニットに利用可能なピンがあります。 このトランスフォームは、専用の Control (コントロール) リグ ユニットによって操作されます。
以下では、コントロール リグ ユニットを使用し、[Result (結果)] ピンを TwoBoneIK/FK の [End Effector] に接続しています。 また、このコントロールは右腕を動かすために使用するので、分かりやすいように、名前を「RightArm_Effector」に変更しています。
これで、コントロールを選択して、ビューポートでウィジェットを動かすことでコントロールを操作できるようになりました。 腕の回転を制御するための [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 初期 トランスフォーム データを使用しています。
この設定を行うとキャラクターの右腕を制御できるようになります。左腕を制御する場合は、このリグ ユニット ネットワークを複製して、Start/End Joint を左腕に変更してください。
クリックして拡大
例 - Apply FK (FK の適用)
個別のジョイントを制御する場合は、Apply FK ノード、階層の参照、および コントロール リグ ユニットを使用します (TwoBoneIK/FK の例と同様です)。
Apply FK リグ ユニットで、[Global Space (グローバル空間)] にトランスフォームを適用しています。 ここで影響があるジョイントは neck_01 (キャラクターの首のジョイント) です。 コントロール リグ ユニットをトランスフォームとして追加することで、ビューポート内でウィジェットを使用してジョイントを操作できます。