On this page |
このチュートリアルでは、パーティクル配置で規則的パターンを回避しながら、砂の山を元の形状を維持して作成する方法を説明します。目標は、パーティクルの最初の形状を維持しながら、追加の衝突やフォースにパーティクルが適切に反応するようにすることです。
Note
このページのヒントに加えて、パーティクル数が多くなっていく場合、POP Grainsノードの Constraint Iterations を増加させる必要があるかもしれません。これは、パーティクルのスタックが高くなると特に必要になります。
Grains シェルフの砂のツールは、規則的グリッドパターンのパーティクルソースを設定します。これにより、フラットな地面がある場合、整ったスタッキングと高速な沈降を実現する安定したシミュレーションが確実に実行できます。
砂の山を作成する ¶
-
最終的に砂で満たす閉じた円錐を作成します。これを行なうには、 Create シェルフのTubeツールをクリックして、Enterを押し、原点に配置します。チューブジオメトリの下記のパラメータを設定して、円錐を作成します。
-
End Caps :
オン
-
Radius :
0.0
、0.8
-
Radius Scale :
1.0
-
Center :
0
、0.25
または0.5*ch("height")
、0
-
Height :
0.5
Note
円錐の底部が地面とぴったり重なっていることを確認してください。
-
-
オブジェクトレベルに戻り、チューブオブジェクトを選択して、 Grains シェルフのDry Sandツールをクリックします。
Note
最適な結果を得るには、パーティクルが
y=0
で地面にぴったりと付いていることを確認してください。この事例では、シェルフツールは、Grain Sourceノードの Grid Offset パラメータでエクスプレッションを設定することで処理すべきでした。 -
フラットなGround Planeを Rigid Bodies シェルフのツールを使用して、ベースに作成します。
Note
ソルバは、最初のフレームでパーティクルを押し上げるため、地面を作成する前にパーティクルが
Y=0
にぴったりと付いていることを確認することが重要です。 -
POP Grainsノードの Solver タブで、 Drift Threshold をオンにします。これは、このような山を完璧に取得するために重要な設定です。
Tip
必要なハードウェアとドライバがある場合、計算速度を上げるために、ここで Use OpenCL をオンにすることもできます。
-
プレイバーのを押してシミュレーションを実行します。パーティクルは、元の形状に非常に近いところでとどまるはずです。横からずれているパーティクルがある場合、
sand_update
ノードの Behavior タブで Scale Kinetic パラメータを0.15
または0.2
まで上げることができます。
規則的パターンを取り除く ¶
規則的パターンを取り除くと、パーティクルを以前のように落ち着かせることがややむずかしくなります。
-
/obj/tube_object1/grainsource1
に戻り、 Jitter Scale の左側にあるトグルをオンにします。これはパーティクルの位置をランダム化しますが、パーティクル間に少し重なりが作成され、シミュレーションで最初の爆発を引き起こします。これが Relax Iterations を有効にする理由です。これにより、追加のクックタイムは少し必要ですが、確実にパーティクルは重ならず、円錐内にとどまります。ここでシミュレーションを実行すると、パーティクルの山が平らになるのがわかります。また、動きを停止させるのに時間もかかります。これは、ほとんどの場合、パーティクルが完全にパックされていないからです。
これに対する最善の対策は、動摩擦スケールを再度大きくすることです( Scale Kinetic )。しかし、かなり大きな値が必要になり、シミュレーションの主要な部分で、不自然で反応の遅い挙動が発生します。これを回避するには、エクスプレッションを使用して、パーティクルが落ち着く間、大きな摩擦値を設定します。
-
Scale Kinetic パラメータで下記のエクスプレッションを設定します:
if($T<1, 0.8, 0.1)
これは、最初の1秒間で非常に高い0.8
で評価を行ない、その後、より現実的な0.1
の値で評価を行ないます。 -
Solver タブで Drift Threshold 値を
0.01
に変更します。 -
再度を押します。パーティクルは元の形状に近いところに再びとどまり、すぐに落ち着きます。
Note
一般的には、 Drift Threshold の値をできるだけ小さくしておくようにしてください。この値を上げる必要があるのは、比較的急な勾配の場合のみです。残念ながら、 Scale Kinetic のようなエクスプレッションを使用すると、値が下がった後、パーティクルが再度降下を始めるため、ここではうまく機能しない傾向があります。
Tip
Grain Sourceの Relax Iterations は、何百万個のパーティクルをクックするのに相当するだけの時間がかかります。代案としては、これをオフにしてPOP Dragノードを使い、最初の数フレームのみで有効にすることです( Activation パラメータで$T<1
を入れる)。これにより、パーティクルは最初の爆発の間、遠方に飛ばなくなります。