コントロールリグは、ソルブの方向 と呼ばれる複数の方法で評価されます。これらはコントロールリグのリグ グラフ内で作成されます。これらのツールを使ってリグ ロジックを複数のソルブの方向、つまり ソルバ に分割することで、リグの受信データで利用して、リグを共有したり、アニメーションをデベロッパーの制御下に戻したり、この動作をデバッグしたりするためのワークフローを可能にできます。
このドキュメントでは、コントロールリグで使用可能なソルブのさまざまな方向の概要や、それらの使用方法、それらの機能で実現できるワークフローについて説明します。
前提条件
- コントロールリグ エディタ について理解している。
- シーケンサー について理解しており、コントロールリグ キャラクターをシーケンサーに追加する方法 も理解している。
フォワード ソルブ

フォワード ソルブ (Forwards Solve) は、コントロール、変数、および他のリグ要素を含むスケルトンの制御に使用するソルブの方向です。フォワード ソルブはコントロールリグの主要な方向で、シーケンサーおよびアニメーション ブループリント内でコントロールリグをアニメートする際に使用します。
すべてのコントロールリグ アセットには、デフォルトでリグ グラフ内に Forwards Solve ノードが含まれています。このノードから、コントロールや変数、およびその他のリグ要素を通じたスケルトンのボーンへの影響に基づいてロジックが作成されます。この方法では、ボーンに影響を及ぼすコントロールが「フォワード (前方)」に向かって動作します。

フォワード ソルブをプレビューする
フォワード ソルブは、ビューポート におけるデフォルトのプレビュー モードです。これは、ツールバー のソルブ方向ボタンを [Forwards Solve] に設定することで確認できます。アニメーション ブループリントと同様に、フォワード ソルブは、レベル内のエディタの状態に関係なく、継続的に実行されます。

有効なソルブの方向に応じて、リグ グラフ内でハイライト表示される実行ワイヤーが変わります。たとえば、フォワード ソルブが有効な場合は、Backwards Solve からの実行ワイヤーがより薄く表示されます。

バックワード ソルブ

バックワード ソルブ (Backwards Solve) は、スケルトンからのコントロールの制御に使用するソルブの方向です。フォワード ソルブとは 逆 に、シーケンサーでアニメーション シーケンスからのアニメーションをコントロールリグにベイクする際に使用します。
リグ グラフ内でバックワード ソルブ ロジックを作成するには、Backwards Solve ノードを作成する必要があります。コントロールリグ グラフ 内を右クリックし、[Events (イベント)] > [Backwards Solve] を選択します。

このノードから、スケルトンのボーンからのコントロールへの影響に基づいてロジックが作成されます。この方法では、ボーンの影響を受けるコントロールが「バックワード (後方)」に向かって動作します。

バックワード ソルブをプレビューする
バックワード ソルブの動作は ビューポート 内でプレビューできます。プレビューするには、ツールバー にあるソルブの方向の ドロップダウン メニュー を開き、[Backwards Solve] をクリックします。これにより、フォワード ソルブではなく、リグ グラフからのバックワード ソルブ ロジックがビューポートで実行されます。

この逆のコントロールリグ動作をより適切にプレビューするには、コントロールリグの [Preview Scene Settings (シーンのプレビュー設定)] パネルで、キャラクターで再生するアニメーションを指定します。[Preview Controller (プレビュー コントローラー)] を [Use Specific Animation (特定のアニメーションを使用)] に設定し、Animation プロパティでアニメーションを選択します。これで、再生されるアニメーションにコントロールが一致するようになります。

バックワード ソルブをプレビューする際は、ビューポートの枠が 黄色 になります。この色 (およびその他の色) は、[Editor Preferences (エディタの環境設定)] にある [Control Rig Editor (コントロールリグ エディタ)] で変更できます。

アニメーションをコントロールリグにベイクする
バックワード ソルブの主な使用目的は、Unreal Engine でアニメーションをさらに変更できるよう、アニメーション シーケンスをコントロールリグにベイクすることにあります。
これを行うには、アニメートされたキャラクターがシーケンサー内にあること を前提として、そのキャラクター トラックを右クリックして [Bake To Control Rig (コントロールリグにベイク)] を選択し、ベイク先の コントロールリグ アセット を選択します。

対象のコントロールリグ アセットのリグ グラフ内で Backwards Solve ノードが使用されていない場合は、そのコントロールリグを [Bake To Control Rig] メニューで選択することはできません。
ベイク処理に関連するオプションを指定できるダイアログ ウィンドウが開きます。

名前 | 説明 |
---|---|
Export Transforms (トランスフォームをエクスポート) | トランスフォーム データをコントロールにベイクします。 |
Export Curves (カーブをエクスポート) | AnimCurve データをコントロールにベイクします。これには、バックワード ソルブ ロジックを評価する際の AnimCurve も含まれます。 |
Record in World Space (ワールド空間で記録) | ワールド空間の絶対座標でベイクします。 |
Evaluate All Skeletal Mesh Components (すべてのスケルタルメッシュ コンポーネントを評価) | ベイク時にすべてのスケルタルメッシュ コンポーネントを評価します。通常、他のスケルタルメッシュ コンポーネントを含むブループリントを使用している場合は、このオプションを有効にすることをお勧めします。 |
Warm Up Frames (ウォーム アップ フレーム数) | ベイク処理を行う前に評価するフレームの数です。これは、評価前にセトルするまでの時間を必要とするポスト プロセス アニメーション ブループリント エフェクトがある場合に便利です。 |
Delay Before Start (開始前の遅延) | ベイク処理プロセスを開始する前に遅延させる表示レート フレームの数です。これは、評価前に繰り返し実行する必要のあるポスト プロセス アニメーション ブループリント エフェクトがある場合に便利です。 |
Reduce Keys (キーを削減) | これを有効にすると、ベイク プロセスの実行後に 単純化 プロセスが実行され、許容量に基づいて冗長なキーフレームが削除されます。 |
Tolerance (許容範囲) | この 許容範囲 の値が大きいほど、フィルタされるカーブが元のものから変化することが可能になります。そのため、[Reduce Keys (キーを削減)] が有効な場合は、除去されるキーフレームの数がより多くなります。 |
[Create (作成)] をクリックして、アニメーション シーケンスをコントロールリグにベイクします。完了すると、キーフレームとともにコントロールリグ トラックがタイムラインに表示されます。これらのキーフレームは、ベイク元のアニメーション全体に対応するものです。

コントロールリグ セクション を右クリックして [Import Anim Sequence Into This Section (このセクションにアニメーション シーケンスをインポート)] からアニメーションを選択することで、アニメーション シーケンスをコントロールリグ キーフレームとして直接インポートすることもできます。アニメーションはシーケンサー プレイヘッドを基準にインポートされます。

コンストラクション イベント

ブループリント同様に、コンストラクション イベント も作成できます。このイベントは、コントロール上での変数の初期化や初期位置の設定など、準備ロジックの実行に使用されます。コンストラクション イベントは、コントロールリグの初期化後のステージで一度だけ実行されます。
リグ グラフ内でコンストラクション イベント ロジックを作成するには、Construction Event ノードを作成する必要があります。コントロールリグ グラフ 内を右クリックし、[Events (イベント)] > [Construction Event (コンストラクション イベント)] を選択します。

このノードから、リグ要素の初期状態に及ぼす影響に基づいてロジックが作成されます。これには、リグの共有を可能にする、各ボーンに対するコントロールの初期オフセットの定義などを含めることができます。さらに、変数の初期値を定義したり、ボーンの初期位置を変更したりすることも可能です。

リグ要素をスポーンする
コンストラクション イベントの他の主な目的の 1 つは、この初期化フェーズでリグ要素をスポーンすることです。これにより、新しい コントロール、ボーン、Null をスポーンしてプロシージャルなコントロールリグを作成し、リグ グラフ ロジックを使用して初期化することができます。
Spawn ノードを作成するには、リグ グラフで右クリックし、Dynamic Hierarchy (動的階層) カテゴリから Spawn ノードの 1 つをクリックします。次のノードを追加できます。

名前 | 説明 |
---|---|
Spawn Bone | 階層に新しい ボーン を作成します。 |
Spawn Null | 階層に新しい Null を作成します。 |
Spawn Animation Channel | 階層に新しい アニメーション チャンネル を作成します。アニメーション チャンネルは、アニメーション チャンネルまたはカスタム属性を提供するために使用される コントロール の タイプ です。 |
Spawn Control | 階層に新しい コントロール を作成します。 |
アニメーション チャンネル または コントロール をスポーンする場合、そのプロパティの型を指定する必要があります。これを行うには、Initial Value ピンを右クリックして、Wildcard ドロップダウン メニューから型を選択します。

Spawn ノードをコンストラクション イベントに接続すると、新しい要素が [Hierarchy (階層)] パネルに表示され、ビューポートにも通常どおり作成されたように表示されます。すべてのスポーンされた要素名は、スポーンされていない要素と区別するために黄色で表示されます。

Spawn ノードは、現在、コンストラクション イベントでのみ機能します。
また、スポーンされた要素を右クリックして、[Select Spawner Node (Spawner ノードを選択)] をクリックすると、この要素をスポーンするために使用されるノードがフレーム表示されます。これにより、複雑なグラフの中でスポーン ノードを簡単に特定することができます。

非スポーン要素とは異なり、スポーンされた要素の初期値や設定は読み取り専用で、[Details (詳細)] パネルではなく、ノード上で定義する必要があります。これは、Initial Value ピンおよび Settings ピンを展開し、プロパティを編集することで行うことができます。また、これらにプロパティや変数を接続して、他のロジック ソースか制御することも可能です。

コントロールリグで作成できるスポーンされた要素の数には制限があります。これは、大規模なリグを作成したり、For Loop ロジックを使用すると、この制限に達する可能性があります。デフォルトでは、この制限は 128 に設定されていますが、[Class Settings (クラス設定)] を有効にして、Procedural Element Limit プロパティを変更することで変更することができます。

コンストラクション イベントをプレビューする
コンストラクション イベントの動作は ビューポート 内でプレビューできます。プレビューするには、ツールバー にある [Solve Direction (ソルブ方向)] ドロップダウン メニューを選択して、[Construction Event (コンストラクション イベント)] をクリックします。これにより、フォワード ソルブではなく、リグ グラフからのコンストラクション イベント ロジックがビューポートで実行されます。コンストラクション ロジックをデバッグする際は、このモードが便利です。

コンストラクション イベントを有効にすると、ボーンの初期位置とビューポートからの null を編集できるようになります。

コンストラクション イベントをプレビューする際は、ビューポートの枠が 赤色 になります。
バックワードとフォワード

バックワードおよびフォワード プレビュー モードでは、最初にバックワード ソルブが実行されて、次にフォワード ソルブ リグ ロジックが実行されます。その結果、ビューポート内の アニメーションをコントロールリグにベイクする プロセスに似た動作になります。通常は、ベイク処理プロセスをデバッグして、ボーンとコントロールが正常に機能していることを確認する場合にこのモードを有効にします。
バックワードおよびフォワードの動作は ビューポート 内でプレビューできます。プレビューするには、ツールバー にある [Solve Direction (ソルブ方向)] ドロップダウン メニューを選択して、[Backwards and Forwards] をクリックします。これにより、リグ グラフからのバックワードおよびフォワード ソルブ ロジックの両方がビューポートで順番に実行されます。

バックワードとフォワードをプレビューする際は、ビューポートの枠が 青色 になります。