パーティクルがジオメトリに衝突するように設定した後は、アトリビュート エディタ(Attribute Editor)で摩擦(Friction)および弾性(Resilience)アトリビュートを設定してバウンド(跳ね返り)を調整することができます。衝突検出の感度を設定するアトリビュートも変更することができます。
バウンドは、ジオメトリ単位またはパーティクル オブジェクト単位で設定することができます。ジオメトリ単位でバウンドを設定した場合、ジオメトリと衝突するパーティクル オブジェクトはすべて同じバウンドになります。パーティクル オブジェクト単位でバウンドを設定した場合、ジオメトリと衝突するパーティクル オブジェクトはすべて異なるバウンドになります。
また、パーティクル > 衝突の作成(Particles > Make Collide) > を使ってオプション ウィンドウを表示することにより、衝突が発生する前にバウンドを設定することもできます。このオプション ウィンドウの摩擦(Friction)および弾性(Resilience)アトリビュートを変更してコリジョンを設定すると、ジオメトリ単位でバウンドを設定することができます。
複雑なサーフェスと衝突するパーティクルがあるシーンの再生を高速化することができます。このためには、衝突対象のサーフェスを選択し、アトリビュート エディタ(Attribute Editor)を表示します。次に、geoConnector タブを選択し、テッセレーション係数(Tessellation Factor)の値を小さくします。ただし、この操作を行うと衝突検出の精度が低くなります。
既定では、ジオメトリ オブジェクトと衝突するパーティクル オブジェクトはすべて同じバウンドになります。ジオメトリ単位でバウンドを設定する手順を次に示します。
ジオメトリ単位でバウンドを設定するには
弾性(Resilience)は、リバウンドの量を設定します。摩擦(Friction)は、パーティクルが衝突サーフェスに衝突して跳ね返る際に、サーフェスに対して平行にパーティクルの速度がどの程度減少または増加するかを設定します。これらのアトリビュートの詳細については、geoConnector ノードを参照してください。
同じジオメトリに対してパーティクル オブジェクトごとに異なるバウンドを生成する手順を次に示します。
パーティクル オブジェクト単位でバウンドを設定するには
パーティクル オブジェクトが 2 つ以上のジオメトリ オブジェクトに衝突する場合、ジオメトリ オブジェクトごとに弾性(Resilience)および摩擦(Friction)アトリビュートが表示されます。対応するジオメトリ オブジェクトの名前はこの 2 つのアトリビュートの上に表示されます。これらのアトリビュートの詳細については、geoConnector ノードを参照してください。
上記の操作を行っても、ジオメトリと衝突する他のパーティクル オブジェクトに対して設定された既存の弾性(Resilience)および摩擦(Friction)は変更されません。これらのアトリビュートの詳細については、geoConnector ノードを参照してください。
衝突を繰り返したり多くの衝突を生成すると、衝突検出の精度が不足してパーティクルがジオメトリを貫通してしまうことがあります。この問題を避けるには、コリジョン検出の精度を上げます。
衝突検出精度を調整するには
トレース深度(Trace Depth)は、各アニメーション タイム ステップ内のオブジェクトに対して検出可能な衝突の数を設定します。たとえば、トレース深度を 2 に設定すると、フレーム内でチェックが 2 回行われます。2 回よりも多い衝突は無視され、それ以降のパーティクルは衝突オブジェクトを貫通します。この値を大きくするほど処理時間がかかります。
トレース深度(Trace Depth)を 0 に設定すると、パーティクル オブジェクトはジオメトリを貫通します。またオプションでパーティクルのシェイプ ノードにトレース深度 PP (Trace Depth PP)アトリビュートを追加することにより、パーティクル単位で衝突検出精度を設定することができます(パーティクル アトリビュートを操作するを参照)。このアトリビュートを追加すると、アトリビュート エディタ(Attribute Editor)のパーティクル単位(配列)アトリビュート(Per Particle(Array)Attributes)セクションにトレース深度 PP (Trace Depth PP)が表示されます。トレース深度 PP (Trace Depth PP)の設定は、トレース深度(Trace Depth)の設定よりオーバーライドされます。