フレキシブル モーション キャプチャの抽出タイプ

特定のゴールの回転や移動を取得するための特定のマーカー セットで使用するために、3 つの抽出タイプ(マーカーの位置と回転のジョイント、マーカーの回転ジョイント、およびマーカーでのエイム ジョイント)が用意されています。

抽出タイプ

マーカーの位置と回転のジョイント

この抽出タイプを特定のジョイントに割り当てるには、少なくとも 3 つのマーカーが必要です。3 つ未満のマーカーが割り当てられている場合、「マーカーでのエイム ジョイント」抽出タイプが使用されます。移動ベクトルは、平均を計算して 3 つのマーカーのセットから簡単に抽出することができます。回転の抽出は、異なる方法(MotionBuilder が 3 つのマーカーから回転したリファレンスを作成して行う方法)で行うこともできます。最初に、ベクトルが 1 番目から 2 番目のマーカーに定義され、2 番目のベクトルは、1 番目のマーカーから 3 番目に定義されます。これらのベクトルの外積は回転したリファレンスの Z 軸になります。これらの 2 つのベクトルの和は、(クロス積のプロパティによって) Z 軸に対して垂直で、回転したリファレンスの X 軸として使用されます。Y 軸の残りは、Z 軸と X 軸のクロス積として簡単に計算することができます。この回転したリファレンスは、3 つのマーカーから抽出した回転を構成します。

この回転は、ゴールの回転として直接使用されません。スナップ時に、つまり、マーカーがジョイントに割り当てられたときに、「スナップ オフセット」はジョイントの回転と移動とスナップ時に抽出された回転と移動の間の差分として計算されました。これらのオフセットは、抽出された回転と移動からそれらを簡単に削除することにより、いつでもゴール位置と回転の計算ができます。3 つ以上のマーカーがこの抽出タイプで使用できる場合、抽出された位置と回転は、3 つのマーカーの可能な組み合わせすべての間で平均化されて、最終的に抽出された値を取得します。

注:

回転を平均化するには、クォータニオンを線形に追加した後で、結果を正規化します。

抽出は階層のルート(つまりヒップ)から実行されて、階層を下に進みます。このため、階層のルートを正しく配置するには、ヒップ ジョイントで常にマーカーの位置と回転のジョイント抽出タイプを使用する必要があります。ヒップが配置されると、階層のすべての下位要素は、抽出から得られた位置情報を使用する(マーカーの位置と回転のジョイント抽出タイプを使用する)か、階層から得られた位置を使用する(マーカーの回転ジョイントまたはマーカーでのエイム ジョイント抽出タイプを使用する)ことができます。これは、ヒップの位置が既知であり、階層の下方に伝播できるからです。

マーカーの回転ジョイント

この抽出タイプは、マーカーの位置と回転のジョイント抽出タイプとまったく同じ方法でゴールの回転を計算します。ただし、マーカーを使用してゴール位置を計算するのではなく、キャラクタからの階層情報を使用して、それに関連付けられたジョイントと同じ場所にあるゴールに位置付けます。したがって、マーカーはこの抽出タイプの回転を抽出するためにだけ使用されます。「スナップ オフセット」は、前と同じ方法で使用されて実際のゴールの回転を計算します。

マーカーでのエイム ジョイント

この抽出タイプで回転を抽出する場合は、2 つのマーカーのみを使用できます。マーカーの位置と回転のジョイント抽出タイプおよびマーカーの回転ジョイント抽出タイプと同じ回転の抽出を実行するには、階層から得られたジョイント位置(前の抽出タイプの配置に使用された位置)を 3 番目のポイントとして使用します。他の抽出タイプと同様に、「スナップ オフセット」は、実際のゴールの回転を計算するために使用されます。

マーカーの位置と回転のジョイントマーカーの回転ジョイントの抽出が選択されたものの、マーカーは 2 つしか使用できなかったため、マーカーでのエイム ジョイント抽出タイプが使用された場合、2 つのマーカーによって構成されるポイントのセットから抽出された位置と階層から得られたジョイント位置が、抽出された位置として使用されます。これは、3 つのポイントが完全にリジッド ボディ コンストレイントを適用しない場合、階層からのジョイント位置と異なる可能性があります。

関連項目