あるオブジェクトの位置や方向などのさまざまなプロパティを別のオブジェクトのプロパティに拘束します。その後に、コンストレイント オブジェクト(「コンストレイナ」とも呼ぶ)をアニメートすると、もう一方のオブジェクト上の拘束されたプロパティもアニメートされます。
Softimage には多数のコンストレイントがあり、定義済みコマンドとしてパッケージ化されています。たとえば、[コンストレイント](Constrain) [方向](Direction)コマンドを使用すると、1 つまたは複数のオブジェクトの選択軸または基準軸(既定では X 軸)の向きを別のオブジェクトに拘束できます。被コンストレイント オブジェクトの位置は変わりませんが、オブジェクトの基準軸はコンストレイント オブジェクトの位置にかかわらず、必ずコンストレイント オブジェクトのセンターを向きます。
この概要は、Softimage でコンストレイントを作成するときに必要な 4 つの基本手順を紹介します。
1 |
拘束対象のオブジェクトを選択します。 |
2 |
[コンストレイント]メニューからコンストレイント コマンドを選択します。 |
3 |
コンストレイント オブジェクト(コントロール オブジェクト)を選択します。 |
4 |
プロパティ エディタでコンストレイントを設定します。 |
コンストレイントでは、被コンストレイント オブジェクトがグローバル空間上で変換されるということを理解しておくことが需要です。したがって、被コンストレイント オブジェクトの[ローカル変換]プロパティ エディタで編集した内容(位置や回転の制限など)は、コンストレイントの前に適用されていても無効になることがあります。これは、それらの内容がコンストレイントによって上書きされるためです。
コンストレイントはグローバル変換であるため、Animation Mixer でコンストレイントを他のアニメーションと併用する際にも考慮すべき事項があります。詳細については、「アクション」(「Animation Mixer のノンリニア アニメーション」)を参照してください。
コンストレイント間にプロパティの競合が生じた場合は常に、一番最後に適用されたコンストレイントが古いコンストレイントを上書きします。
同じオブジェクト上にエクスプレッションおよびスクリプト オペレータがある場合には、エクスプレッションおよびスクリプト オペレータはコンストレイントより前に評価され、バウンディング コンストレイントは他のすべてのコンストレイントの後に適用されます。
スクリプト オペレータ内で被コンストレイント パラメータを使用すると、希望通りの結果が得られない場合があります。たとえば、オブジェクトの位置に基づく向きをコントロールするスクリプト オペレータを記述する場合、オブジェクトにパス コンストレイントがあると、各フレームで位置が更新される前に向きが計算されるため、オペレータでは以前の値が使用されることになります。希望の結果を得るためには、ヌルなどの中間オブジェクトをパスに拘束してから、オブジェクトの位置をヌルに拘束します。新しい方向を計算する際にヌルの位置を使用します。
1 つのオブジェクトに対して、同時に複数のコンストレイントを適用することができます。オブジェクトに適用した複数のコンストレイントが同時にアクティブになっている場合、すべてのコンストレイントが使用されますが、最後に適用したコンストレイントが優先されます。(ただし、コンストレイントをブレンドしている場合はこの限りではありません。「コンストレイントをブレンドする」を参照してください)。
たとえば、位置コンストレイントと向きコンストレイントがオブジェクトに適用されている場合、どちらもオブジェクトをコントロールできます。しかし、向きコンストレイントの適用後に方向コンストレイントを適用した場合、どちらもオブジェクトの向きをコントロールするコンストレイントですが、方向コンストレイントが優先されます。
アップベクター コンストレイントおよびタンジェンシ コンストレイントについて
タンジェンシ コンストレイントまたはアップベクター コンストレイントは、ほとんどの場合に他のコンストレイントと併用できます。タンジェンシ コンストレイントとアップベクター コンストレイントは、「本物の」コンストレイントではなく、いくつかのコンストレイント タイプで被コンストレイント オブジェクトが向くべき方向を決める実質上のプロパティです。
タンジェンシ コンストレイントはオブジェクトの X 軸を特定の方向に拘束し、アップベクター コンストレイントはオブジェクトの Y 軸(上方向)を特定の方向に拘束します。たとえば、オブジェクトに方向コンストレイントを適用した場合、方向を拘束されたオブジェクトの「回転」をコントロールするためにアップベクター コンストレイントも追加できます。
詳細については、「タンジェンシ コンストレイント」を参照してください。