Verlet Integration (ベルレ インテグレーション)
 
 
 

ベルレ インテグレーションは、[Simulate Particles]ノードによって使用されるオイラー インテグレーションの代わりとなる方法です。どちらの方法にもそれぞれ長所と短所がありますが、ベルレ インテグレーションの利点の 1 つは、エッジ長やエッジ角度の修正などのためにコンストレイントを組み込むのが簡単なことです。そのため、ベルレ インテグレーションはクロスやソフトボディのシミュレーションによく使用されます。

用意されているベルレ コンパウンドは、ベルレ シミュレーションの設定方法およびコントロール方法を示し、より複雑なエフェクトのベースとなるような例として提供しています。

ベルレ フレームワークを使用した作業の概要

ベルレ インテグレーションを使用してメッシュ デフォーメーションをシミュレーションする際に使用する基本的な手順の高レベルな概要を示します。

  1. メッシュのコンストラクション スタックの[モデリング]領域で、すべてのトポロジ モディファイアの上にシミュレートされていない ICE ノードを作成し、[Init Verlet Geometry Data(初期ベルレ ジオメトリ データ)]コンパウンドを接続して、後でシミュレーションで使用するためのデータを格納できるようにします。

  2. シミュレートされた ICE ツリーを作成し、[Verlet Framework(ベルレ フレームワーク)]コンパウンドを接続します。

  3. 必要に応じて、[ブレンド]パラメータを使用して、(たとえばウェイト マップに接続して)シミュレートするポイントとしないポイントをコントロールします。値が 1 のポイントはシミュレートされ、0 のポイントはシミュレートされません。値が 0~1 のポイントの位置はシミュレートされる位置とシミュレートされない位置の間で補間されます。これにより、たとえば、クロスの角をピン留めしたり、脂肪をゆらす場所をペイントすることができます。

  4. また、ターゲットをシミュレートしないポイントに使用したり、シミュレートされたポイントとのブレンドに使用するように指定できます。

    • [このメッシュ プリシミュレーションを使用](Use This Mesh Presimulate): (0)[Init Verlet Geometry Data]コンパウンドによって格納されたポイント位置を使用します。

    • [別のメッシュを使用](Use Another Mesh): (1)アニメートされたメッシュの複製など、ターゲットとして使用する別のメッシュを指定できます。2 つのメッシュの間にかなりの違いがある場合、シミュレーションの最初のフレームでジッターが発生することがあります。

  5. 必要なフォースを追加します。各フォースには、ローカル空間とグローバル空間のどちらに適用するかをコントロールできるトグルがついています。重力の Y 値などの簡単な 3D ベクトルを使用することも、Preset Manager の[デフォーメーション]タスクの[Verlet Forces]グループから任意のコンパウンドを使用することもできます。

  6. [Execute Each Iteration]ポートに任意のコンストレイントを接続します。ジッターを最小限に抑えるには、コンストレイントのウェイトを減らし、[Verlet Framework]コンパウンドの反復を増やします。独自のコンストレイントを作成することも、Preset Manager の[Verlet]グループから次のコンパウンドのいずれか 1 つを使用することもできます。

例: 単純なクロス

ベルレ フレームワークを使った、垂れ下がるクロスのようなエフェクトの単純な例を示します。

A

クロスの端をピン留めするのにウェイト マップが使用されます。

B

ローカルの Y に単純な重力フォースが適用されます。

C

[Verlet Drag Force(ベルレ ドラッグ フォース)]はメッシュが跳ね回りすぎないようにし、伸縮性を軽減します。

D

[Iterative Execution]の下に、次のノードが含まれます。

これらのノードは各フレームで数回繰り返され、より安定したシミュレーションを生成します。

例: 単純なソフト ボディ

この例では、ベルレ フレームワークを使用した、単純なソフト ボディ デフォーメーションを示します。

A

3D ベクトルは、ボール上のすべてのポイントを下に移動する重力フォースを定義します。それらはすべてグリッドを真下に落ちます。

 

B

[Move Points Outside Geometry(ジオメトリ外へのポイントの移動)]は、ポイントがグリッドを通り抜けるのを防ぎ、平らなまま維持します。

 

C

[Correct Edge Lengths(エッジ長の修正)]は、元のエッジ長を一部復元します。ただし、結果はまだしわくちゃです。

 

D

[Inflate Volume(ボリュームの拡大)]はボリュームを一部復元します。

 

E

[Apply Surface Stiffness(サーフェイスの硬さの適用)]は、元のエッジ角度を一部復元し、下側の鋭いエッジをスムーズにします。

 

例: ゆれる脂肪

この例では、キャラクタのゆれる脂肪をペイントする方法を示します。

A

ウェイト マップで、どのポイントがシミュレーションによって影響を受けるかをコントロールします。

B

ブレンド ターゲットは、アニメートされたメッシュの複製です。[シミュレーション]領域の下のオペレータはシミュレーション中に再評価されないため、複製が必要です。

C

[Verlet Drag Force(ベルレ ドラッグ フォース)]は過度のゆれを防ぎます。

D

[Restitution Force(復帰フォース)]はポイントが想定しようとするシェイプを指定します。ここでは、ブレンド ターゲットとして使用されたものと同じアニメートされた複製です。

E

[Correct Edge Lengths(エッジ長の修正)]は、元のエッジ長を一部復元し、ポイントが移動できる距離を制限します。