コントロールリグで強固なリグを作成する場合に使用される主要な要素は、コントロール、ボーン、Null です。それらの各要素は幅広く応用でき、完全なリグを作成するために併用することができます。
このドキュメントでは、コントロール、ボーン、Null の概要を示し、それらを使用するためのシンプルなワークフローの例を示します。
前提条件
- スケルタル メッシュ用の コントロールリグ を作成済みであり、それを開いている。
要素の概要
コントロール、ボーン、Null を作成するには、[Rig Hierarchy (リグ階層)] パネルで右クリックして [New (新規)] メニューからいずれかのオプションを選択します。

デフォルトでは、これらのいずれかの要素を作成すると、ビューポートの原点 (0,0,0) に配置されます。[Rig Hierarchy] パネルで要素が選択されている場合、その位置に作成され、選択されているその要素の子になります。そうすると、この選択コンテキストを使用して、要素の位置を互いに揃えるのが簡単になります。

編成
要素名前を変更するには、[Rig Hierarchy] 内の要素を右クリックして、[Rename (名前変更)] を選択するか F2 キーを押します。

要素を再編成するには、[Rig Hierarchy] 内で要素をドラッグします。
- 要素を別の要素の上にドラッグすると、その要素の子になります。
- 要素を空の領域にドラッグすると、親から解除されます。
- Shift+P キーを押すと、選択されている要素が親から解除されます。

コントロール
コントロール は、コントロールリグのインタラクションに使用される主要な要素であり、ボーン チェーンを制御し、シーケンサー でアニメートし、追加のカスタム属性を提供するために使用されます。別の 形状とカラー、プロパティ タイプ、トランスフォーム制限を持つようにコントロールをカスタマイズすることもできます。
作成コンテキスト
ボーンを基準としてコントロールを作成すると、コントロールはそのボーンと同じ名前を自動的に継承し、その後にサフィックスとして _ctrl
が付きます。

複数のコントロールを作成する
通常の作成方法に加えて、指定された Python スクリプト を使用して複数のボーンが選択されている状態で、複数のコントロールを作成することもできます。Rig Hierarchy で複数のボーンを選択した状態で右クリックし、[New] > [Add Controls For Selected (選択項目に対するコントロールを追加)] を選択します。そうすると、選択されているすべてのボーンに対して、ボーンの名前にサフィックス _ctrl
が付いた名前で、同じ階層構造で、コントロールが作成されます。

この作成方法をカスタマイズするには、Alt キーを押したままで [New] > [Add Controls For Selected] をクリックします。そうすると、以下の設定をカスタマイズできるダイアログ ウィンドウが開きます。

名前 | 説明 |
---|---|
Creation Context (出力形式) | 作成済みのコントロールを編成する方法。以下のオプションを選択できます。以下のオプションを選択できます。
|
Suffix (サフィックス) | ボーン名からコピーされるコントロール名の後に適用されるテキスト。 |
Prefix (プレフィックス) | ボーン名からコピーされるコントロール名の前に適用されるテキスト。 |
コントロール タイプ
代替プロパティや限定プロパティを提供するコントロールに対して指定できる、さまざまなコントロール タイプがあります。これは、スライダー ベースのコントロールや、ブール値のような単純な属性を持つコントロールを作成する場合に役に立つことがあります。
コントロールのタイプを指定するには、[Details] パネルで選択されているコントロールの [Control Type (コントロール タイプ)] ドロップダウン メニューをクリックします。コントロール タイプとして以下のいずれかを選択できます。

名前 | 説明 |
---|---|
Bool | コントロールを Bool (ブール) 型 にして、アニメーションで True/False 状態を設定できるようにします。ブール型のコントロールは ビューポート では表示されません。 ![]() |
Float | コントロールを Float (浮動小数) 型 にして、単一の位置軸に沿ってコントロールをアニメートできるようにします。軸を指定するには、Primary Axis プロパティでいずれかの軸を選択します。このタイプのコントロールを動かすことができる範囲は、0 ~ 100 に デフォルトで制限 されています。Float は、スライダー コントロールを作成する場合に役に立つことがあります。 ![]() |
Integer | コントロールをInteger (整数) 型 にして、単一の位置軸に沿って 1 ずつ増やしてコントロールをアニメートできるようにします。軸を指定するには、Primary Axis プロパティでいずれかの軸を選択します。このタイプのコントロールを動かすことができる範囲は、0 ~ 100 に デフォルトで制限 されています。また、Control Enum プロパティで 列挙型 を参照することによって、このコントロール タイプを列挙型に変換することもできます。 ![]() |
Vector 2D | コントロールを Vector 2D (ベクター 2D) 型 にして、2 つの位置軸に沿ってコントロールをアニメートできるようにします。Primary Axis で指定されている軸は使用されず、残りの軸が 2D 平面を指定する軸になります。このタイプのコントロールを動かすことができる範囲は、どちらの軸でも 0 ~ 100 に デフォルトで制限 されています。 ![]() |
Position | コントロールを Position (位置) 型 にして、コントロールの位置だけをアニメートできるようにします。 ![]() |
Scale | コントロールを Scale (スケール) 型 にして、コントロールのスケールだけをアニメートできるようにします。 ![]() |
Rotator | コントロールを Rotator (ローテータ) 型 にして、コントロールの回転だけをアニメートできるようにします。 ![]() |
Euler Transform | コントロールを Transform (トランスフォーム) 型 にして、平行移動、回転、スケールのすべての軸でコントロールを自由に操作できるようにします。これがデフォルトのタイプです。 ![]() |
[Euler Transform]、[Rotator]、[Scale]、[Position] などの空間コントロールでは、Transform プロパティを表示している [Datails] パネルに、利用可能な追加のトランスフォーム機能があります。

- [Rotation (回転)] ドロップダウン メニューでは、さまざまな回転補間モード ([Euler (オイラー)]、[Quaternion (クォータニオン)]、[Axis and Angle (軸と角度)] など) を選択できます。
- [Local Space (ローカル空間)]/[World Space (ワールド空間)] ボタンをクリックすると、表示されている軸情報がローカル空間とワールド空間で切り替わります。Shift キーを押した状態でクリックすると、3 つの軸すべてが切り替わります。
- [Scale] をロックすると、スケール変更時に全方向で均一にスケールされます。
トランスフォームの制限
空間コントロールが特定の範囲でのみアニメートされるように、空間コントロールに制限を設けることができます。これは、スライダー コントロールや 2D ベースのコントロールを作成してその移動範囲を制限する場合に便利です。
コントロールに制限を設定するには、最小と最大の範囲プロパティを指定します。選択されているコントロールの最小と最大の範囲プロパティを見つけるには、[Details] パネルの [Transform] カテゴリにある [Min (最小)] または [Max (最大)] をクリックします。

軸チャンネルを有効にしてその値に対する制限を有効にし、その横にある領域内で数値を指定します。この例では、最小限度が -50、最大限度が 50 に設定されているので、コントロールの操作による移動はその範囲に制限されています。

[Draw Limits (制限を描画)] を有効にすると、すべてのコントロールの制限値がビューポートで視覚化されます。

ボーン
スケルトンに含まれている通常のボーンとは別に、コントロールリグ内に新しいボーンを作成できます。それらのボーンを補助的なやり方で使用して、特定のリグ動作に対して追加ボーンを提供することができます。IK チェーンのエンド エフェクターにするリグ動作や、統合されたやり方で「リアル」ボーンを制御するために「ボーン」を作成するリグ動作などです。
コントロールリグ エディタで作成されたボーンには階層アイコンにくぼみが表示されていて、通常のスケルタル メッシュ ボーンと区別されています。
新しいボーンを作成した後に、[Setup Event (セットアップ イベント)] モードに入って、ビューポート内の要素の [Initial Pose (初期ポーズ)] を編集することで、ビューポートでそのボーンを動かすことができます。ツールバーにある Solve Direction (ソルブの方向) ドロップダウン メニューをクリックして、[Setup Event] を選択します。

[Setup Event] が有効になっていれば、ビューポートでボーンを動かすことができます。

デフォルトでは、選択されているボーンのみがビューポートに表示されます。この表示モードを変更するには、ビューポートのツールバーで [Character (キャラクター)] > [Bones (ボーン)] をクリックし、望ましいボーン描画設定を選択します。

ワークフローの例
この例では、コントロールリグで作成されたボーンは、指の IK チェーンのエンド エフェクターとして使用されています。

Null
Null は、他のリグ要素を任意のやり方でまとめて収集、グループ化、トランスフォームするために使用されるコンテナ要素です。ヒューマノイド コントロールリグの典型的なセットアップでは、複数の対称コントロール (脚や腕など) をミラーリングするために、それらのコントロールをグループ化する方法として使用できます。その場合、Null は Autodesk Maya の グループ に類似した概念であり、リギング編成に使用できるようになります。

デフォルトでは、Null はビューポートでは表示されません。Null を表示するには、ビューポートのツールバーで [Display Nulls (Null を表示)] をオンにします。

ボーンと同様に、Null を編集するには、Solve Direction ドロップダウン メニューで [Setup Event] を有効にします。[Setup Event] が有効になっていれば、ビューポートで Null を動かすことができます。

[Setup Event] を有効にすると、ビューポートですべての Null の可視性も有効になります。
ワークフローの例
この例では、Null を使用して、対称な手足の線に沿って複数のコントロールをグループ化しています。このグループ化によって、編成、ミラーリング、および他のリギング操作が容易になります。

トランスフォーム タイプ
リグ要素の位置、回転、スケールは、初期トランスフォーム、現在のトランスフォーム、オフセット トランスフォーム という複数のトランスフォーム ソースから決定されています。これらのトランスフォーム タイプのそれぞれが、コントロールリグ実行のさまざまなフェーズで、リグ要素に対してトランスフォームを行います。これらのさまざまなタイプは、選択されているリグ要素の [Details] パネルで確認できます。

1 つのコントロールに対して別の コントロール タイプ が指定されている場合に、ユーザーが指定できるのは [Initial (初期)] と [Current (現在)] の値のみです。

Shift キーを押した状態で別のタイプをクリックすると、[Details] パネルにそれらが横に並んで表示されます。

Initial
[Initial (初期)] は、リグ グラフでコントロールリグのロジックが実行される前の、要素の開始値です。この値は、そのリグ要素の動作範囲内でのデフォルト値でもあり、[Current] のデフォルト値にも影響を及ぼします。
[Initial] の値を編集するには、[Details] パネルで編集します。その要素にトランスフォームがある場合は、Setup Event を有効にして、ビューポートでその要素を操作することもできます。

Current
[Current (現在)] は、フォワード ソルブ モードで動作しているときの、その要素の値です。この値は、コントロールのリアルタイムでの実際のトランスフォームであり、ビューポートでコントロールを操作すると、[Current Pose (現在のポーズ)] が編集されます。[Current Pose] は、コントロールリグ エディタ内では一時的な値であり、そのアセットを再コンパイルまたは開き直すとリセットされます。

シーケンサー内でコントロールリグをアニメートしている場合、[Current] の値がアニメートされています。
Offset Transform
[Offset (オフセット)] が表示されるのは、[Control Type] が [Euler Transform] に設定されているコントロールのみです。これは、[Initial] または [Current] を変更することなく、コントロールに空間的オフセットを指定するために使用され、コントロールの「ゼロ位置」を変更する機能を提供します。この [Offset] は、他のリギング ツール (Autodesk Maya など) での Freeze Transformations や Transform Offset Parent Matrix と類似しています。

オフセットを指定してコントロールの [Transform] の値を出力すると、トランスフォームの結果では、算出された最終トランスフォームに [Offset] と [Current] の両方が組み合わされます。[Current] のみが出力されるように変更するには、Space プロパティを Local Space に設定します。
