コントロール、ボーン、Null

コントロールリグの作成に使用できる主要なリグ要素について説明します。

コントロールリグで強固なリグを作成する場合に使用される主要な要素は、コントロールボーンNull です。それらの各要素は幅広く応用でき、完全なリグを作成するために併用することができます。

このドキュメントでは、コントロール、ボーン、Null の概要を示し、それらを使用するためのシンプルなワークフローの例を示します。

前提条件

要素の概要

コントロール、ボーン、Null を作成するには、[Rig Hierarchy (リグ階層)] パネルで右クリックして [New (新規)] メニューからいずれかのオプションを選択します。

new bone new control new null

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

create control

編成

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

rename control

要素を再編成するには、[Rig Hierarchy] 内で要素をドラッグします。

  • 要素を別の要素の上にドラッグすると、その要素の子になります。

  • 要素を空の領域にドラッグすると、親から解除されます。

  • Shift+P キーを押すと、選択されている要素が親から解除されます。

control drag drop reparent

コントロール

コントロール は、コントロールリグのインタラクションに使用される主要な要素であり、ボーン チェーンを制御し、シーケンサー でアニメートし、追加のカスタム属性を提供するために使用されます。別の 形状とカラー、プロパティ タイプ、トランスフォーム制限を持つようにコントロールをカスタマイズすることもできます。

作成コンテキスト

ボーンを基準としてコントロールを作成すると、コントロールはそのボーンと同じ名前を自動的に継承し、その後にサフィックスとして _ctrl が付きます。

create control

複数のコントロールを作成する

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

add controls for selected

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

add controls for selected options

名前

説明

Creation Context (出力形式)

作成済みのコントロールを編成する方法。以下のオプションを選択できます。以下のオプションを選択できます。

  • Hierarchy (階層):選択されているボーンと同じ階層をコピーします。ただし、最上位のコントロールはボーン階層との親子関係が解除されています。

  • List (リスト):作成済みのすべてのコントロールの親子関係が解除されて、リグ階層のルート位置にフラット リストとして表示されます。

  • Child (子):作成済みのすべてのコントロールを、関連付けられているボーンの子にします。

Suffix (サフィックス)

ボーン名からコピーされるコントロール名の後に適用されるテキスト。

Prefix (プレフィックス)

ボーン名からコピーされるコントロール名の前に適用されるテキスト。

コントロール タイプ

代替プロパティや限定プロパティを提供するコントロールに対して指定できる、さまざまなコントロール タイプがあります。これは、スライダー ベースのコントロールや、ブール値のような単純な属性を持つコントロールを作成する場合に役に立つことがあります。

コントロールのタイプを指定するには、[Details] パネルで選択されているコントロールの [Control Type (コントロール タイプ)] ドロップダウン メニューをクリックします。コントロール タイプとして以下のいずれかを選択できます。

control type

名前

説明

Bool

コントロールを Bool (ブール) 型 にして、アニメーションで True/False 状態を設定できるようにします。ブール型のコントロールは ビューポート では表示されません。

control type bool

Float

コントロールを Float (浮動小数) 型 にして、単一の位置軸に沿ってコントロールをアニメートできるようにします。軸を指定するには、Primary Axis プロパティでいずれかの軸を選択します。このタイプのコントロールを動かすことができる範囲は、0 ~ 100デフォルトで制限 されています。Float は、スライダー コントロールを作成する場合に役に立つことがあります。

control type float

Integer

コントロールを**Integer (整数) 型 にして、単一の位置軸に沿って 1 ずつ増やしてコントロールをアニメートできるようにします。軸を指定するには、Primary Axis プロパティでいずれかの軸を選択します。このタイプのコントロールを動かすことができる範囲は、0 ~ 100デフォルトで制限 されています。また、Control Enum プロパティで 列挙型** を参照することによって、このコントロール タイプを列挙型に変換することもできます。

control type integer enum

Vector 2D

コントロールを Vector 2D (ベクター 2D) 型 にして、2 つの位置軸に沿ってコントロールをアニメートできるようにします。Primary Axis で指定されている軸は使用されず、残りの軸が 2D 平面を指定する軸になります。このタイプのコントロールを動かすことができる範囲は、どちらの軸でも 0 ~ 100デフォルトで制限 されています。

control type vector 2d

Position

コントロールを Position (位置) 型 にして、コントロールの位置だけをアニメートできるようにします。

control type position

Scale

コントロールを Scale (スケール) 型 にして、コントロールのスケールだけをアニメートできるようにします。

control type scale

Rotator

コントロールを Rotator (ローテータ) 型 にして、コントロールの回転だけをアニメートできるようにします。

control type rotator

Euler Transform

コントロールを Transform (トランスフォーム) 型 にして、平行移動、回転、スケールのすべての軸でコントロールを自由に操作できるようにします。これがデフォルトのタイプです。

control type euler transform

[Euler Transform][Rotator][Scale][Position] などの空間コントロールでは、Transform プロパティを表示している [Datails] パネルに、利用可能な追加のトランスフォーム機能があります。

control transform buttons

  1. [Rotation (回転)] ドロップダウン メニューでは、さまざまな回転補間モード ([Euler (オイラー)][Quaternion (クォータニオン)][Axis and Angle (軸と角度)] など) を選択できます。

  2. [Local Space (ローカル空間)]/[World Space (ワールド空間)] ボタンをクリックすると、表示されている軸情報がローカル空間とワールド空間で切り替わります。Shift キーを押した状態でクリックすると、3 つの軸すべてが切り替わります。

  3. [Scale] をロックすると、スケール変更時に全方向で均一にスケールされます。

トランスフォームの制限

空間コントロールが特定の範囲でのみアニメートされるように、空間コントロールに制限を設けることができます。これは、スライダー コントロールや 2D ベースのコントロールを作成してその移動範囲を制限する場合に便利です。

コントロールに制限を設定するには、最小と最大の範囲プロパティを指定します。選択されているコントロールの最小と最大の範囲プロパティを見つけるには、[Details] パネルの [Transform] カテゴリにある [Min (最小)] または [Max (最大)] をクリックします。

control limits min max

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

control limits min max

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

draw limits

ボーン

スケルトンに含まれている通常のボーンとは別に、コントロールリグ内に新しいボーンを作成できます。それらのボーンを補助的なやり方で使用して、特定のリグ動作に対して追加ボーンを提供することができます。IK チェーンのエンド エフェクターにするリグ動作や、統合されたやり方で「リアル」ボーンを制御するために「ボーン」を作成するリグ動作などです。

コントロールリグ エディタで作成されたボーンには階層アイコンにくぼみが表示されていて、通常のスケルタル メッシュ ボーンと区別されています。

新しいボーンを作成した後に、[Setup Event (セットアップ イベント)] モードに入って、ビューポート内の要素の [Initial Pose (初期ポーズ)] を編集することで、ビューポートでそのボーンを動かすことができます。ツールバーにある Solve Direction (ソルブの方向) ドロップダウン メニューをクリックして、[Setup Event] を選択します。

setup event

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

setup event bone manipulation

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

bone display

ワークフローの例

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

bone control example

Null

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

new null

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

display nulls

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

setup event null move

[Setup Event] を有効にすると、ビューポートですべての Null の可視性も有効になります。

ワークフローの例

この例では、Null を使用して、対称な手足の線に沿って複数のコントロールをグループ化しています。このグループ化によって、編成、ミラーリング、および他のリギング操作が容易になります。

null group symmetrical controls

トランスフォーム タイプ

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

initial current offset transform

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

initial current value

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

multiple type display

Initial

[Initial (初期)] は、リグ グラフでコントロールリグのロジックが実行される前の、要素の開始値です。この値は、そのリグ要素の動作範囲内でのデフォルト値でもあり、[Current] のデフォルト値にも影響を及ぼします。

[Initial] の値を編集するには、[Details] パネルで編集します。その要素にトランスフォームがある場合は、Setup Event を有効にして、ビューポートでその要素を操作することもできます。

initial transform

Current

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

current transform

シーケンサー内でコントロールリグをアニメートしている場合、[Current] の値がアニメートされています。

Offset Transform

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

offset transform

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

transform pin

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