ほとんどの Lagoa シミュレーションエフェクトでは、Lagoa シミュレーションオブジェクトと衝突オブジェクトの間に、ある種の衝突が必要となります。この設定は非常に簡単ですが、いくつかの Lagoa コンパウンドにあるさまざまなオプションを使用して、衝突をカスタマイズすることもできます。
衝突オブジェクトは、シミュレートされたオブジェクトのポイントを遮るソリッドオブジェクトです。これによって、ポイントが何らかの方法でこのオブジェクトと相互作用したり、このオブジェクトの周囲を移動するようになります。Lagoa オブジェクトが衝突オブジェクトのジオメトリとぶつかるとき、その衝突オブジェクトの実際のシェイプが使用されます。
衝突オブジェクトは、ジオメトリが閉じており、サーフェイスがあれば、どのタイプのオブジェクトでも構いません(ポリゴンメッシュ、NURBS サーフェイスなど)。サブディビジョンサーフェイスはサポートされていません。また、衝突オブジェクトは動いても動かなくても、変形してもしなくても構いません。
多くの場合、正確な衝突のためには衝突オブジェクトの解像度が重要ですが、Lagoa で最も重要なのは[Lagoa Simulate Multiphysics]ノードの[サブステップ](Substeps)値です。この値が高いほど衝突は正確になりますが、計算時間が長くなります。詳細については、「精度を高めるためのシミュレーションのサブステップの設定」を参照してください。
以下では、[サブステップ](Substeps)値が 1 に設定されています。現在の速度でパーティクルが低解像度のボックスを貫通するのを防ぐには不十分です。
以下では、[サブステップ](Substeps)値が 3 に設定されています。すべてのパーティクルが低解像度のボックス内に維持されます。
衝突時には、Lagoa オブジェクトのポイントのサイズが考慮されます。パーティクルジオメトリとしてインスタンスを使用している場合は、その周囲に大まかなバウンディング球が作成されます。つまり、その実際のシェイプは使用されません。これは、標準の ICE パーティクル衝突と同様です(非リジッドボディの衝突)。
[Lagoa Simulate Multiphysics(Lagoa 複数の物理特性のシミュレート)]ノードで[パーティクルの向きを使用](Orient Particles)オプションを選択しない限り、ポイント回転は計算されません。これによって、パーティクルがフォースと衝突に応じて向きを変更できるようになります。これは、パーティクルシェイプが建築用のブロックや変わった形の岩などの場合によくわかります。
ここでは、Lagoa シミュレーションで衝突を作成するための基本的な手順を説明します。
Lagoa エフェクトをゼロから作成するの説明に従って、ポイントクラウドまたはポリゴンメッシュ用に、必要なノードを備えた Lagoa ICE ツリーを作成します。
衝突オブジェクトごとに、シミュレートされていないICEツリーを作成し、[Lagoa Set Collision Data]ノードを[ICETree]ノードのポートに接続します。
各衝突オブジェクトを選択し、[ICE]ツールバーから[パーティクル](Particles) [衝突](Collision) [Lagoa パーティクル](Lagoa Collision) [衝突データの設定](Set Collision Data)を選択しても、同じ操作が可能です。
各衝突オブジェクトの[Lagoa Set Collision Data(Lagoa 衝突データの設定)]プロパティエディタでオプションを設定し、ポイントがその衝突オブジェクトだけと相互に作用する方法を設定します。
衝突オブジェクトをシミュレートされたLagoaオブジェクトのICEツリーに追加するには、以下のいずれかの作業を行います。
各衝突オブジェクトまたはグループの[Get Data]ノードを[Lagoa Simulate Multiphysics]ノードの[Passive Body In Name]ポートに接続します。
衝突オブジェクトのグループを使用している場合は、[ICE]ツールバーから[パーティクル](Particles) [衝突](Collision) [Lagoa パーティクル](Lagoa Collision) [パッシブ ボディの追加](Add Passive Body)を選択します。これによって、選択した衝突オブジェクトのグループの[Get Data]ノードが作成され、[Lagoa Simulate Multiphysics]ノードの[Passive Body In Name]ポートに接続されます。
グループにない 1 つまたは複数の衝突オブジェクトを選択し、[パーティクル](Particles) [衝突](Collision) [Lagoa パーティクル](Lagoa Collision) [パッシブ ボディの追加](Add Passive Body)を選択した場合は、これらの衝突オブジェクトを含む「Lagoa_PassiveBodies」というグループが作成されます。グループの[Get Data]ノードが[Lagoa Simulate Multiphysics]ノードに接続されます。
[Lagoa Simulate Multiphysics(Lagoa 複数の物理特性のシミュレート)]プロパティエディタの[サブステップ](Substeps)の値を、衝突を正確に解析するために必要な値まで高めます。
衝突オブジェクトとポイントの間にオフセットを設定するには、以下の2つのオプションを設定する必要があります。
[マテリアル](Material)コンパウンドで[Material Collision Offset](マテリアル衝突オフセット)の値を設定します(「Lagoa メイン マテリアル」を参照)。このマテリアルと衝突オブジェクトを持つポイント間に、オフセットが Softimage 単位で作成されます。
[Lagoa Simulate Multiphysics(Lagoa 複数の物理特性のシミュレート)]ノードの[オフセット方法](Offset Method)を選択します。これによって、このICEツリーで使用されているすべてのマテリアルの衝突オブジェクトからのオフセットを定義できます。
以下では、[マテリアル衝突オフセット](Material Collision Offset)値が 0.5 に設定されており、パーティクルと衝突オブジェクトの境界の間にわずかな隙間ができます。
下では、[Material Collision Offset](マテリアル衝突オフセット)の値が 0 に設定されています。
パーティクルの速度が速い場合、オフセットがないと、衝突オブジェクトを貫通することがあります。非常に小さいオフセット値(0.1など)を設定することをお勧めします。