デュアル クォータニオン スキニング

 
 
 

デュアル クォータニオン スキニングは、エンベロープ デフォーメーションの標準の計算方法(「リニア ブレンド」と呼ばれる)の代替法です。[Dual Quaternion Deformation]コンパウンドではデュアル クォータニオン スキニング、またはデュアル クォータニオンとリニア ブレンド スキニングの間の補間を使用できます。

注:

デュアル クォータニオン スキニングには次のような制限があります。

  • ボーンの長さの変更はサポートされていません。

  • デフォーマ チェインを 1 回転以上ねじると、予期しない結果を招くことがあります。ただし、チェイン全体の回転は何度でも問題なく行えます。

  • シェイプを 2 次シェイプ モデリング モードで保存する場合、エンベロープの反転が計算されません。

デュアル クォータニオンとリニア ブレンド

リニア ブレンド スキニングは、コンピュータ アニメーションの創成期より、エンベロープ デフォーメーションの標準の計算方法です。ただし、この方法で、求めている結果がいつも得られるとは限りません。特に、デフォーマがねじれたり極端に曲げられたりした場合、ボリュームの破壊や喪失が起こる場合があります。このような場合、デュアル クォータニオン スキニングの方がよりきれいな外観を生成します。

リニア ブレンド スキニング(A)とデュアル クォータニオン スキニング(B)のボリュームの喪失の比較

キャラクタの場合、リニア ブレンド スキニングで特に問題となる領域は肩です。腕を後ろに廻したときに肩が壊れる場合があります。

リニア ブレンド スキニング(A)とデュアル クォータニオン スキニング(B)の肩の破壊の比較

ただし、デュアル クォータニオン スキニングがいつも最適な解決法とは限りません。たとえば、膝や肘を曲げたときに、不自然な突起ができることもあります。このようなエリアの場合、リニア ブレンド スキニングか、またはリニア ブレンドとデュアル クォータニオン スキニングの間の補間の方が適しています。

リニア ブレンド スキニング(A)とデュアル クォータニオン スキニング(B)の膝の突起の比較

デュアル クォータニオン スキニングの適用の概要

[Dual Quaternion Deformation]コンパウンドを使用する際に必要な手順を簡単に説明します。

  1. 標準のエンベロープ デフォーメーションを適用します。このとき、必ず、デフォーメーションのグループを使用します。ポイント ウェイトを定義する場合は、エンベロープ オペレータが必要です。「エンベロープ」(「キャラクタ アニメーション」)を参照してください。

  2. メッシュに影響を与えないように、エンベロープ オペレータをミュートします。「デフォーメーションをミュートする」(「データ交換」)を参照してください。

  3. エンベロープ オペレータの上のアニメーション領域に ICE ツリーを作成し、[Dual Quaternion Deformation]コンパウンドを追加します。「[Dual Quaternion Deformation]コンパウンドを適用する」を参照してください。

  4. 必要な場合は、ウェイト マップを使用して、デュアル クォータニオンとリニア ブレンドス キニングのブレンドをコントロールします。「ウェイト マップを使用してスキニング方法をブレンドする」を参照してください。

    エンベロープ ウェイトは、引き続き通常の方法で変更でき、デフォーメーションは自動的に更新されます。

[Dual Quaternion Deformation]コンパウンドを適用する

  1. アニメーション コンストラクション モードが有効で(「コンストラクション モードを設定する」(「データ交換」)を参照)、エンベロープ オペレータがミュートされていることを確認します。

    間違ったコンストラクション領域で ICE ツリーを作成してしまった場合、「オペレータの順序を変更する」(「データ交換」)で説明する手順に従って、後でそれを移動できます。

  2. エンベロープ メッシュを選択します。

  3. ICE Tree ビューで、[作成](Create) [ICE Tree]を選択します。

  4. Preset Manager の[Deformation]タスクの[Skinning]グループから[Dual Quaternion Deformation(デュアル クォータニオン デフォーメーション)]コンパウンドを ICE ツリーに追加し、それをルートに接続します。

  5. [Get Data]ノードを使用してエンベロープ デフォーマに使用するグループを取得し、その[Out Name]出力を[Dual Quaternion Deformation]ノードの[Bones Group Name]入力に接続します。

    最初にデフォーマのグループを使用しなかった場合、メッシュを選択し、[Animate]ツールバーから[デフォーム] [エンベロープ] [エンベロープからデフォーマを選択]を選択し、最後に[Edit]パネルの[グループ]をクリックします。

  6. 必要に応じて、[Dual Quaternion Deformation]プロパティ エディタの[Deformation Method(デフォーメーションの手法)]パラメータを使って、デュアル クォータニオン スキニングとリニア ブレンド スキニングを切り替えます。

    または、[Deformation Method(デフォーメーションの手法)]を[Use Blend Input(ブレンド入力の使用)]に設定してから、2 つの手法を補間する[Blend Input(ブレンド入力)]を使用することもできます。[Blend Input(ブレンド入力)]の値が 0.0 の場合はリニア ブレンド スキニングが使用され、1.0 の場合はデュアル クォータニオン スキニングが使用されます。その中間の値の場合は、ウェイト配分された平均が使用されます。次のセクション「ウェイト マップを使用してスキニング方法をブレンドする」の説明に従って、ウェイト マップを使用することもできます。

ウェイト マップを使用してスキニング方法をブレンドする

[Deformation Method(デフォーメーションの手法)]を[Use Blend Input(ブレンド入力の使用)]に設定すると、ウェイト マップを使用して、デュアル クォータニオン スキニングまたは 2 つの手法を組み合わせたものを使用する領域をペイントできます。

  1. エンベロープされたメッシュにウェイト マップを適用します。この方法およびウェイト マップの詳細については、「 ウェイト マップ」(「シーン エレメント」)を参照してください。

  2. [Deformation Method(デフォーメーションの手法)]を[Use Blend Input(ブレンド入力の使用)]に設定します。

  3. ICE ツリーで、[Get Data]ノードを使用して、マップのウェイト値、[(メッシュ名).cls.(クラスタ名).(マップ名).Weights] を取得します。

  4. [Get Data]ノードの[Value]出力を[Dual Quaternion Deformation]コンパウンドの[Blend Input]ポートに接続します。

  5. デュアル クォータニオン スキニングを使用する領域をペイントします。

注:ペイント可能なプロパティが複数あるオブジェクトでは、メイン コマンド パネルから目的のプロパティを選択(たとえば[Explore] [プロパティマップ](Property Maps)を選択)した後でペイントを行います。