| On this page |
拘束は、コントロール間に特定の関係性を作成します。拘束された(駆動される)コントロールは、ドライバコントロールの位置や動きの影響を受けます。 Animateステートでは、次のタイプの拘束を利用できます:
また、 一時的な拘束(Transient Constraint) と呼ばれる特殊なタイプもあります。これは特定のフレーム範囲内のみでアクティブになる拘束です。上記すべてのタイプの拘束を、一時的な拘束として追加することができます。
オフセット拘束 ¶
オフセット拘束は、ドライバコントロールとドリブンのコントロール間に、一定の距離や角度(オフセット)を維持する機能です。この例では、ギター(ドリブン)をElectraのcog(ドライバ)に拘束します。Electraにのみアニメーションが設定されているシーンから始めましょう:
-
Animateステートで、パラメータHUDを開きます(ビューポートでGを押す)。
-
Constraint タブで、 Constraint を Offset に設定します。
-
ギターのコントロールを選択します。
Note
Constraint パラメータの下にある2つのパラメータは、コントロールを選択する順序を示しています。オフセット拘束では、ドリブンコントロールを選択し、次にドライバを選択します。Hを押す前に3つ以上のコントロールを選択すると、最後に選択したコントロールがドライバとなり、それ以外のコントロールはすべてドリブンコントロールになります。
-
⇧ Shiftを押したまま、Electraのcogコントロールを選択します。
-
ビューポートにマウスカーソルを移動し、Hを押します。拘束が追加され、ドリブンコントロールはグレーに変わります。ドライバからドリブンコントロールを指す矢印付きの点線が表示されます。ギターのコントロールはElectraのcogに拘束されているため、ギターのコントロールを動かすことはできません。
Electraのcogに拘束されたギター -
Electraの左手をギターのネックに固定していきます。まずはギターのネックにロケータを作成します:
-
ロケータツールに入ります。
-
ビューポートでHを押して、ロケータを作成します。
-
作成したロケータをギターのネックに移動します。
Note
アニメーションレイヤを使用している場合、ロケータを現在のレイヤに追加してから、それを移動する必要があります。ロケータを選択し、Animation Layersペインでそのレイヤを
クリックし、 Add Selected Controls to Layer を選択します。
-
ロケータツールを終了します。
ギターのネックにあるロケータ -
-
ロケータをギターに拘束して、ギターが動いても、ロケータがギターのネック位置に留まるようにします。ロケータを選択し、⇧ Shiftを押したままギターのコントロールを選択して、ビューポートでHを押します。
ギターに拘束されたロケータ -
Electraの手をロケータに拘束します。Electraの手を選択し、⇧ Shiftを押したままロケータを選択して、ビューポートでHを押します。
ギターのネックに拘束されたElectraの手 -
Electraのcogコントロールにキーフレームを設定し、彼女を回転させます。
Note
アニメーションレイヤを使用している場合、cogコントロールを現在のレイヤに追加してから、キーフレームを設定する必要があります。
Electraを回転 -
Electraを回転させるとき、弦を弾く方の手がギターに追従しないため、親拘束でElectraの手をギターのコントロールに拘束します。これにより、ギター(ドライバである親)が動くと、Electraの弦を弾く手(ドリブンである子)も一緒に動くようになります:
-
Electraの右手のコントロールを選択します。
-
⇧ Shiftを押したままギターのコントロールを選択します。
-
パラメータHUDの Constraint タブで、 Offset を Parent に設定します。
-
ビューポートでHを押します。
Electraの弦を弾く手がギターに追従 -
シーンには現在、以下の拘束が追加されています:
-
ギターがElectraのcogに拘束されている。
-
ギターのネックのロケータがギターに拘束されている。
-
Electraの左手がロケータに拘束されている。
-
Electraの弦を弾く手がギターに拘束されている。
オフセット拘束
ドライバとドリブンコントロール間のオフセットをアニメーションする ¶
オフセット拘束を作成すると、2つのコントロールが作成され、それらのコントロールが All Controls ▸ constraints の選択セットに表示されます:
-
<control>コントロール(例えば、Locator_0)。これは、オフセット拘束で、ドライバとドリブンコントロールの間の破線です。 -
<control>__Offsetコントール(例えば、Locator_0__Offset)。このオフセットコントロールは、ドライバからのドリブンコントロールのオフセットを表現します。 このオフセットコントロールはドリブンコントロールに位置し、緑の球(デフォルト)で表現されます。 このオフセットコントロールはアニメーションさせることができます。
ギターのネックにあるロケータオフセットコントロール
この例では、Electraの手をギターのネックに沿って動かしたいので、ロケータオフセットコントロールにキーフレームを設定します。 Electraの手はロケータに拘束されているため、ロケータを動かすとElectraの手も動きます:
-
ロケータオフセットコントロールを選択します。
-
キーフレームを設定して、ロケータオフセットコントロールをギターのネックに沿って上下に動かします。
このオフセットコントロールのアニメーションは、ロケータのコントロールではなく、拘束に保持されます。ロケータに元々あったアニメーションは、拘束によって上書きされます。拘束をオフにすると、ロケータに元々あるアニメーションに戻ります。
Note
アニメーションレイヤを使用している場合、オフセットコントロールを現在のレイヤに追加してから、キーフレームを設定する必要があります。 オフセットコントロールを選択して、Animation Layerペインで、レイヤを
クリックし、 Add Selected Controls to Layer を選択します。
オフセットコントロールのアニメーション後 -
オフセットコントロールのアニメーションと元のアニメーションをブレンドするには:
-
ロケータ拘束(破線)を選択します。
-
パラメータHUDの Constraint タブで、 Blend 値を調整します。 この値にキーを設定することもできます。 キーフレームの設定方法は、パラメータHUDを参照してください。
Note
Blend を
0に設定すると、ドリブコントロールを動かせます。 -
ドリブンコントロールにキーフレームを追加する ¶
この時点で、ギターとElectraに追加されたすべてのモーションは、拘束によって駆動されています。そのため拘束が削除されると、Electraの元のアニメーションだけが残ることになります。
拘束を削除しても、追加したギターのモーションを保持したい場合は、ギターにキーフレームを設定します:
-
ギターのコントロールを選択します。
-
⌃ Ctrl + Gを押して、Animate Settings HUDを開きます。
-
Bake タブで Bake Keys をクリックします。 Bake to New Layer がオンの場合、キーは新しいアニメーションレイヤに追加されます。 Bake to New Layer がオフの場合、キーフレームは現在のアニメーションレイヤに追加されます。
Animate Settings HUDの Bake タブで利用可能なオプションの詳細については、ベイク設定を参照してください。
Lookat拘束 ¶
Lookat拘束は、あるオブジェクトが別のオブジェクトのパスに追従できるようにします。この例では、Lookat拘束を追加して、Electraが常に
FLIPの方を向くようにします。
-
Electraの頭をFlipの方に向けます。
-
パラメータHUDを開きます(ビューポートでGを押す)。
-
Constraint タブで、 Constraint を LookAt に設定します。
-
Electraの頭のコントロールを選択します。
Note
Constraint パラメータの下にある2つのパラメータは、コントロールを選択する順序を示しています。Lookat拘束では、ドリブンコントロール(Electraの頭)を選択し、次にターゲット(FLIP)を選択します。
-
⇧ Shiftを押したまま、FLIPのコントロールを選択します。
-
ビューポートにマウスカーソルを移動し、Hを押します。拘束が追加され、ドリブンコントロールはグレーに変わります。ターゲットからドリブンコントロールを指す矢印付きの点線が表示されます。
Lookat拘束を作成 -
<driven_control>__Targetという名前のコントロールが作成されます。ドリブンオブジェクトは、このコントロールの方を向きます。このコントロールは、ターゲットオブジェクトから離れた位置へ動かすこともできます。これによって、Electraが見る方向をより柔軟に制御することができます:ターゲットコントロールの方を向くElectra <driven_control>__Targetコントロールは、選択セットの All Controls ▸ constraints の下に表示されます。このコントロールはターゲットオブジェクトに親子化されており、アニメーション可能です。
マルチドライバ拘束 ¶
マルチドライバ拘束を使用すると、1つのコントロールを複数のドライバで駆動することができます。この例では、FLIPをElectraの両方の手に拘束します:
-
パラメータHUDを開きます(ビューポートでGを押す)。
-
Constraint タブで、 Constraint を MultiDriver に設定します。
-
FLIPのコントロールを選択します。
Note
Constraint パラメータの下にある2つのパラメータは、コントロールを選択する順序を示しています。マルチドライバ拘束では、ドリブンコントロール(FLIP)を選択し、次にドライバコントロール(Electraの両手)を選択します。
-
⇧ Shiftを押したまま、Electraの2つの手のコントロールを選択します。
-
ビューポートにマウスカーソルを移動し、Hを押します。FLIPとElectraの両手の間に拘束が追加されます。
マルチドライバ拘束を作成
ピン拘束 ¶
ピン拘束は、コントロールを特定の位置に固定できます。親コントロールを動かしても、ピン留めされたコントロールは動きません。
-
パラメータHUDを開きます(ビューポートでGを押す)。
-
Constraint タブで、 Constraint を Pin に設定します。
-
ピン留めするコントロールを選択します。
-
ビューポートにマウスカーソルを移動し、Hを押します。
ピン拘束を作成
Note
ピン拘束は、キャラクタのコントロールに影響しますが、キャラクタのポーズに直接影響しません。 例えば、胸のコントロールをピン留めしたものの、リグの背骨は伸縮しないように設定した場合を考えましょう。 キャラクタの重心を動かしても、胸のコントロールはその場に留まりますが、背骨は伸縮できないので、キャラクタのボディはその重心と一緒に動きません:
一時的な拘束 ¶
一時的な拘束は、特定のフレーム範囲内でのみアクティブになる、特殊なタイプの拘束です。一時的な拘束と通常の拘束の違いは以下の通りです:
-
一時的な拘束が作成されると、その拘束のフレーム範囲内において、ドリブンオブジェクトに対するキーフレームが自動的に書き出されます。また、拘束がアクティブになるフレーム範囲を識別するために、プレイバーのタイムライン上にブックマークも作成されます。
-
ドリブンオブジェクトは自由に動かすことができます。
-
一時的な拘束は、それらが作成されたアニメーションレイヤでのみ適用できます。一方で通常の拘束は、レイヤに関係なく適用できます。
この例では、ボールを一方の手からもう一方の手へ渡す動作を作成します。以下は元のアニメーションです:
-
ボールを手に拘束します:
-
ドリブンコントロール(ボール)を選択し、⇧ Shiftを押したまま、ドライバ(手)を選択します。
-
タイムラインで、拘束をアクティブにするフレーム範囲を選択します(⇧ Shiftを押しながらタイムライン上でドラッグ)。
-
ビューポートにマウスカーソルを移動し、Hを押します。
ボールと手の間に拘束が作成され、ボールのキーフレームが選択したフレーム範囲の各フレームに追加されます。
Note
拘束の挙動は、一時的な拘束のフレーム範囲内でのみアクティブになります。
ボールを手に拘束 矢印のビジュアライザが、ボールと手の間の拘束関係を示します:
一時的な拘束のビジュアライザ -
-
ボールの位置を手に合わせます。
一時的な拘束が作成されると、ドリブンオブジェクト(ボール)を移動できるようになります。変更は、一時的な拘束がアクティブなフレーム範囲全体に自動的に適用されます。一時的な拘束がアクティブなフレーム範囲内にいることを確認してください。そうしないと、変更がフレーム範囲全体に適用されません。
Note
変更が一時的な拘束のフレーム範囲全体に適用されない場合は、Animate Settings HUDの Constraint タブで、 Auto Update Follow Ranges がオンになっていることを確認してください。
ドリブンオブジェクト(ボール)を移動 -
ボールをもう片方の手に拘束します:
両方の手に異なるフレーム範囲でボールを拘束 -
ボールをその手に合わせます:
ボールをもう片方の手に合わせる -
ボールが片方の手からもう片方の手に移るときのアニメーションのカクつきを修正します:
アニメーションのカクつき -
ボール(ドリブンオブジェクト)を選択します。
-
現在のフレームが最初の一時的な拘束のフレーム範囲内になるように、タイムラインをクリックします。
-
Animate Settings HUDの Constraint タブで、
ボタンをクリックします。これにより、現在の拘束範囲の後のフレームと一致するようにボールのオフセットが更新され、現在の範囲から次の範囲へ滑らかに遷移するようになります。
拘束範囲の間の遷移を滑らかにする -
-
ボールは動かさずに、最初の拘束範囲で手(ドライバ)を修正します。手を選択し、⇧ Shift + Hを押したまま手を調整します:
手を調整
Note
一時的な拘束のフレーム範囲内にあるキーを削除したいのであれば、拘束設定で、 Auto Update Follow Ranges をオフにするか、 Bake Mode を Update に設定する必要があります。
拘束パラメータと設定 ¶
拘束パラメータ ¶
以下のパラメータは、パラメータHUDの Constraint タブにあります。一部のパラメータは、特定の拘束でのみ利用可能です。
パラメータHUDの上部にあるボタンは、拘束(破線)またはドリブンコントロールが選択されている時に利用可能です。
また、拘束オプションがピン留めされている場合でもこれらのボタンが利用可能です。
パラメータ / オプション |
説明 |
|---|---|
|
|
|
|
|
拘束の可視性を切り替えます。 |
|
選択セットで拘束を選択すると、そのパラメータのチャンネルがアニメーションエディタに追加されます。 |
|
拘束によって定義されたコントロールの可視性を切り替えます(例えば、オフセット拘束コントロールの緑のドットなど)。 |
|
ドリブンコントロールの可視性を切り替えます。 |
Constraint |
作成する拘束のタイプ |
Driven Control |
拘束のドリブンコントロール |
Driver / Target |
拘束のドライバ/ターゲット |
Blend |
拘束のモーションと、ドリブンコントロールの元のアニメーションのモーションをブレンドします。 Blend が Blend値にキーを打つことができます:
|
Use Tilt |
オンの時、Lookat拘束のターゲットを傾けると、ドリブンコントロールも傾きます。このオプションはLookat拘束で利用可能です。 ドリブンコントロールを選択して、このオプションを有効にして、ターゲットコントロールを回転させてください。 |
Component |
ドリブンコントロールが追従するドライバの |
Offset |
ドライバとドリブンコントロール間のオフセットのタイプ。このオプションはオフセット拘束で利用可能です。 None ドリブンコントロールはドライバのコントロールに一致します。 Static 拘束を作成時のドライバとドリブンコントロールの間のオフセットを維持します。 Parent ドライバをドリブンコントロールの親として扱います。ドリブンコントロールのアニメーションは引き続き適用されますが、ドライバへの変更もドリブンコントロールのアニメーションに適用されます。 |
Control |
シェイプを調整する拘束コントロール。 このオプションは、オフセット/Lookat拘束の拘束(破線)またはドリブンコントロールが選択されている時に利用可能です。 |
Shape |
拘束コントロールのシェイプ。 このオプションは、オフセット/Lookat拘束の拘束(破線)またはドリブンコントロールが選択されている時に利用可能です。 |
Scale |
拘束コントロールのスケール。 このオプションは、オフセット/Lookat拘束の拘束(破線)またはドリブンコントロールが選択されている時に利用可能です。 |
r, g, b |
拘束コントロールのカラー。 このオプションは、オフセット/Lookat拘束の拘束(破線)またはドリブンコントロールが選択されている時に利用可能です。 |
拘束設定 ¶
以下の設定は、Animate Settings HUDの Constraint タブにあります:
設定 / オプション |
説明 |
|---|---|
|
プレイバーのタイムラインに現在表示されているすべての一時的な拘束をコピーします。別のアニメーションレイヤに一時的な拘束をペーストするには、 |
|
現在のアニメーションレイヤに一時的な拘束をペーストします:
|
|
選択したドリブンコントロールのオフセットを、現在の一時的な拘束範囲の前のフレームと一致するように更新します。これにより、前の範囲から現在の範囲へ滑らかに遷移するようになります。
|
|
選択したドリブンコントロールのオフセットを、現在の一時的な拘束範囲の後のフレームと一致するように更新します。これにより、現在の範囲から次の範囲へ滑らかに遷移するようになります。
|
Disable Constraints After Baking |
このオプションは、通常の(一時的でない)拘束に適用されます。オンの時、ベイクした後に拘束を無効にします。 |
Show Preview Visualizer |
オンの時、拘束のビジュアライザ(ドライバからドリブンコントロールを指す矢印付きの点線)を表示します。 |
Auto Update Follow Ranges |
このオプションは、一時的な拘束に適用されます。オンの時、ドリブンコントロールに加えられたすべての変更を、一時的な拘束のフレーム範囲全体に適用します。 |
Bake to New Layer |
このオプションは、一時的な拘束に適用されます。オンの時、新しいアニメーションレイヤにキーフレームを追加します。オフの時は、ベースアニメーションレイヤにキーフレームを追加します。 |
Bake Mode |
ベイク時にキーを追加/更新するためのオプションです。このオプションは一時的な拘束でのみ利用可能です。 Dense 拘束のフレーム範囲内にあるすべてのフレームにキーを追加します。 Update 既存のキーを更新しますが、キーの追加は行ないません。 |
How to ¶
| To... | Do this |
|---|---|
|
拘束を削除する |
ドリブンコントロール(s)を選択して、⌃ Ctrl + Hまたは⌦ Delを押します。 |
|
拘束をオンまたはオフにする |
|
|
拘束のビジュアライザの表示をオフにする |
Animate Settings HUDの Constraint タブで、 Show Preview Visualizer をオフにします。 |
一時的な拘束 ¶
| To... | Do this |
|---|---|
|
一時的な拘束を追加する |
|
|
一時的な拘束を削除する |
|
|
ドライバコントロールを調整する |
⇧ Shift + Hを押したまま、ドライバコントロールを移動します。 |
|
隣接する拘束のフレーム範囲間の遷移を滑らかにする |
|
|
一時的な拘束を追加するとき、拘束のフレーム範囲の各フレームにキーを追加する |
|
|
一時的な拘束を追加するとき、既存のキーの更新のみを行う(キーの追加はしない) |
|