法線コンストレイン
 
 
 

法線コンストレインを使用すると、オブジェクトの方向を NURBS サーフェスまたはポリゴン サーフェス(メッシュ)の法線ベクトルに一致させることができます。法線コンストレインは、特殊で複雑なシェイプのサーフェス上でオブジェクトを移動させるときに便利です。法線コンストレインを使用しなければ、こうしたサーフェス上でオブジェクトを移動したりアニメートしたりすることは、退屈で面倒な作業になってしまいます。たとえば、キャラクタのフェースに沿って流れ落ちる涙を作成したいとします。このような場合は涙を直接アニメートする代わりに、涙をフェースのサーフェスにコンストレインすることができます。

詳細については、法線コンストレインを作成するコンストレイン > 法線(Constrain > Normal)を参照してください。

一般に、法線コンストレインはジオメトリ コンストレインと一緒に使用します。ジオメトリ コンストレインの詳細については、ジオメトリ コンストレインを参照してください。

法線コンストレインのコンストレイン対象オブジェクトの方向

コンストレイン対象オブジェクトの方向は、エイム ベクトル、アップ ベクトル、およびワールド アップ ベクトルの 3 つのベクトルによって制御されます。ベクトルのワークスペースには表示されませんが、それらがコンストレイン対象オブジェクトの方向に与える影響を推定することができます。

コンストレインを効果的に使用するために、これらのベクトルがどのように機能するのかを理解する必要はありません。初めてコンストレインについて学ぶのであれば、このセクションの以降の部分は省略しても構いません。しかし、法線コンストレインの高度な調整を行いたい場合は、これらのベクトルを使用しなければなりません。また、これらのベクトルについての知識があれば、コンストレイン対象オブジェクトがなぜ突発的に回転することがあるのかを理解する助けになります。

注: エイム ベクトルとアップ ベクトルが同一線上に並んでいる場合、またはワールド アップ タイプ(worldUpType)なし(None)の場合は、法線(Normal)コンストレインの更新で問題が発生する場合があります。

これらのコンストレインは、エイム ベクトルが指定した方向を示すようにオブジェクトを回転します。次に、アップ ベクトルができるだけ近くでワールド アップ ベクトルを示すようにエイム ベクトルを軸にオブジェクトをツイストします。

エイム ベクトルとアップ ベクトルが同じ方向を示していると、この 2 つ目の回転は実行できません。エイム ベクトルを軸にオブジェクトを回転する方法がどうであれ、アップ ベクトルがこれ以上ワールド アップ ベクトルに近づくことはありません。

フリッピングのまったくない状態でコンストレイン対象オブジェクトを任意の方向に向けることができるため、このエフェクトは便利です。エイム ベクトルをオブジェクトの方向に向け、そこで停止させるために必要な回転が最小限行われます。ただし、回転は現行位置を起点として行われるため、毎回同じフレーム シーケンスをチェックしないと、同じ結果は得られません。レンダリングがめちゃくちゃになる可能性があるため、この状況は避けたほうが賢明です。

エイム ベクトル

エイム ベクトルを使用すると、コンストレイン対象オブジェクトがターゲット ベクトルの方向を常に向くようになります。エイム ベクトルはコンストレイン対象オブジェクトのピボット ポイントから始まり、ターゲット ベクトルの方向に一致します。

オブジェクトがどのように回転してターゲット ベクトルの方向に一致するかは、エイム ベクトルがオブジェクトのローカル空間を基準にしてどのように定義されているかによって決まります。たとえば、デフォルトでは、エイム ベクトルはローカルな正の X 軸と同じ方向を向くように定義されています。したがって、デフォルトでは、コンストレイン対象オブジェクトのローカルな正の X 軸はターゲット ベクトルの方向に一致することになります。

オブジェクトがどのように回転するかはエイム ベクトルによって制御されているわけではないので、エイム ベクトル自体は、オブジェクトを完全にコンストレインすることはありません。エイム ベクトルに沿って回転しているオブジェクトの方向はアップ ベクトルとワールド アップ ベクトルによって制御されます。

アップ ベクトルとワールド アップ ベクトル

アップ ベクトルは、エイム ベクトルに沿って回転しているコンストレイン対象オブジェクトの方向を制御します。エイム ベクトルと同様に、アップ ベクトルもコンストレイン対象オブジェクトのローカル空間を基準にして定義されます。デフォルトでは、アップ ベクトルはシーンのワールド空間を基準にして定義されるワールド アップ ベクトルと同じ方向を向きます。アップ ベクトルは、それ自身をできるだけワールド アップ ベクトルの方向に一致させることによって、コンストレイン対象オブジェクトをエイム ベクトルの周囲で方向付けます。

ターゲット オブジェクトを移動すると、コンストレイン対象オブジェクトのエイム ベクトルがターゲット ベクトルと同じ方向に向くようになり、それによってコンストレイン対象オブジェクトが方向付けられます。それと同時に、コンストレイン対象オブジェクトはアップ ベクトルに従ってエイム ベクトルに沿うように方向付けられます。

たとえば、デフォルトでは、アップ ベクトルはローカルな正の Y 軸と同じ方向を向くように定義されています。コンストレイン対象オブジェクトのローカルな正の X 軸は、デフォルトのエイム ベクトルによってターゲット ベクトルと同じ方向を向きます。同時に、オブジェクトのローカルな正の Y 軸は、オブジェクトのアップ ベクトルによってワールド アップ ベクトルと同じ方向を向きます。エイム ベクトルとアップ ベクトルは、コンストレイン対象オブジェクトの方向をコンストレインするために共同で機能します。

デフォルトでは、アップ ベクトルはワールド アップ ベクトルの方向にできるだけ一致し続けようとします。しかし、ワールド アップ ベクトルの機能はさまざまな方法で制御することもできます。たとえば、ワールド アップ ベクトルをワークスペースのワールド空間を基準にして定義する(デフォルト)代わりに、他の何らかのオブジェクトのローカル空間を基準にして定義することもできます。このようなオブジェクトをワールド アップ オブジェクトと呼びます。

ローリング現象

特定の状況において、コンストレイン対象オブジェクトがそのエイム ベクトルに沿って急回転することがあります。なぜこのようなことが起こるのかを理解するためには、エイム ベクトル、アップ ベクトル、およびワールド アップ ベクトルがどのように機能するのかを理解する必要があります。コンストレインについて初めて学ぶのであれば、このセクションを省略しても構いません。詳細については、この前の項のエイム コンストレインのコンストレイン対象オブジェクトの方向を参照してください。

エイム ベクトルの向きがアップ ベクトルと同一または反対の方向に近付くにつれて、コンストレイン対象オブジェクトはより急速にエイム ベクトルに沿って回転します。エイム ベクトルが完全に同一または正反対の方向に向くと、コンストレイン対象オブジェクトは突然エイム ベクトルに沿って 180° 回転することがあります。

このような急速な回転によって、望ましくないローリング現象が発生します。ローリング現象は、ワールド アップ ベクトルを移動またはアニメートすることによって防ぐことができます。詳細については、エイム コンストレインのモーション ヒストリ依存現象を制御するを参照してください。

モーション ヒストリ依存現象

モーション ヒストリ依存現象とは、同じオブジェクトでも、以前にアニメート、または操作された履歴を持つか持たないかによってモーション エフェクトに違いが生じることをいいます。

たとえば、オブジェクトを繰り返しアニメートした場合、繰り返すごとにオブジェクトが同一フレームで微妙に異なる動きをする結果になったとしたら、そのオブジェクトはモーション ヒストリ依存現象です。あるフレームにおいて、オブジェクトは前回つけられた方向によって異なる方向を向いているかもしれません。反対に、繰り返すごとにオブジェクトがまったく同じように動いたとしたら、そのオブジェクトはモーション ヒストリ非依存現象です。

予想通りのモーション エフェクトが必要な場合は、モーション ヒストリ依存現象が問題となります。しかし、予想できないようなモーション エフェクトが欲しい場合には、オブジェクトのモーション ヒストリ依存現象を利用することもできます。

特定の状況において、コンストレイン対象オブジェクトの方向がモーション ヒストリ依存現象を起こすことがあります。なぜこのようなことが起こるのかを理解するには、エイム ベクトルおよびアップ ベクトルについての知識が必要です(エイム コンストレインのコンストレイン対象オブジェクトの方向を参照)。

エイム ベクトルとアップ ベクトルが同じ方向を向くように定義した場合は、コンストレイン対象オブジェクトがモーション ヒストリ依存現象を起こすことがあります。たとえば、エイム ベクトルをコンストレイン対象オブジェクトのローカルな Y 軸を基準にして定義したにもかかわらずオブジェクトのローカルな Y 軸を基準にしているアップ ベクトルのデフォルトの方向を変更しないと、このようなことが起こります。詳細については、エイム コンストレインのモーション ヒストリ依存現象を制御するを参照してください。

コンストレイン対象オブジェクトは、コンストレインのワールド アップ タイプ(World Up Type)アトリビュートをなし(None)に設定してもモーション ヒストリ依存現象を起こすことがあります。詳細については、ポイント コンストレイン アトリビュートを編集するを参照してください。