On this page |
動きの効果を作成する基本的な方法が2つあります。どちらの方法でも、周囲の広大な海をシミュレーションする必要はありません:
-
動くドメインでは、ドメインはアニメーションオブジェクトの動きと同期します。ドメインは、まったく同じ速度でオブジェクトに追従します。
-
初期Velocityと方向を水位線のパーティクルに適用すると、オブジェクトを静的なままにすることができます。パーティクルはばら撒かれ、加速され、オブジェクトと衝突します。この相互作用によって波が発生します。ドメインの反対側ではパーティクルが消失します。持続的なソーシングとシンクにより、シミュレーションを通して水位とパーティクル数が一定に保たれます。
どちらの場合も、衝突の波はドメインの境界で消えてなくなります。 コンポジット用に海のセグメントが必要な場合は、ドメインのサイズを、衝突の波が滑らかに伝搬して消えるのに十分な大きさにしてください。 SOP FLIP流体の場合、ドメインの形状は固定である必要はありません。 ドメインの形状を時間の経過とともに変化させても構いません。
船のアニメーション ¶
このサンプルでは、トロール漁船が静かな海を進みながら、良い感じの船首波を生成します。 船は事前にアニメーションおよびインポートしておくことも、Houdiniでアニメーションキーを使用することも可能です。 直線のようなシンプルなアニメーションパスには、エクスプレッションを使用することができます。
このシーンでは、船はX軸に沿って左(マイナスX)から右(プラスX)に進みます。
-
Transform SOPノードを作成して、その入力を船の出力に接続します。
-
フレーム1で、 Translate を使用して船を開始位置に移動します。X移動は
30
としましょう。 Translate.X フィールドに、$FF/4-30
と入力します。シミュレーション中、$FF
は現在の浮動小数点フレーム番号に置換されます。その変数を割ることで、船の速度を制御することができます。船の速度を落とすには、割る値を上げます。例えば、1
より小さい値はモーターボートに適しています。30
のオフセットは、最初の位置を表します。このエクスプレッションにより、シミュレーションがどれだけ長く続いても、船は直線の経路に沿って移動します。
船とドメインを同期する ¶
アニメーションする船の動きにドメインを同期させるには、以下の操作を行ないます:
-
シミュレーションドメイン用にBox SOPノードを作成します。このボックスは、船の船首波と船尾波を十分とらえられる大きさにする必要があります。ここでは、 Size 値は
30,10,20
です。 -
Center.X パラメータを使用して、ボックスをフレーム1の開始位置に移動します。このサンプルでは、値は先ほどと同様
30
です。 -
ドメインと船を同期させるには、両方の速度が同じでなければなりません。ここでは、同じエクスプレッション
$FF/4-30
を使用します。 -
タイムラインをスクラブすると、両方のオブジェクトの動きが拘束されているのが分かります。
ドメインと衝突の設定 ¶
-
FLIP Containerを追加して、Box SOPの出力をFLIP Containerの入力に接続します。
-
FLIP Containerの Particle Separation パラメータに移動します。このパラメータは流体の品質だけでなく、漁船などの衝突オブジェクトの解像度も決定します。
0.075
と入力します。
漁船が水面と相互作用するように、その漁船にはコライダーとしてタグ付けする必要があります。
-
FLIP Collideノードを追加して、その最初の3つの入力をFLIP Containerの呼応する出力に接続します。
-
Transformノードの出力を、FLIP Collideノードの4番目の入力に接続します。
-
デフォルト設定でシミュレーションすることができます。
以下の画像は、船のボリュームとサーフェス衝突ジオメトリを示しています。
ソルバ設定 ¶
FLIP Solverの設定に関しては、以下の事だけを考慮します:
-
Waterline タブで、 Waterline チェックボックスをオンにします。
-
必要に応じて、 Water Origin パラメータのY値を変更して、水面の位置を調整します。
-
画像で示されているように、乱れたサーフェスにしたい場合はOcean Spectrumのセットアップも追加すると良いでしょう。この場合、サーフェスはオーシャンノードを介して制御されるため、 Waterline をオフにしてください。
シーンをシミュレーションする準備が整いました。 崖や岩などの衝突オブジェクトをさらに追加すると、より面白い結果を得ることができます。 エクスプレッションによって、船は加速なしのフルスピードで移動を開始します。 20-30フレーム後に、船と水は自然な感じで相互作用し始め、典型的な船首波と船尾波を観察することができます。
水位線を動かす ¶
船首波を作成するもう1つの方法は、ソルバの Additional Velocity を定義することです。 ここでは、オブジェクトは静的なままですが、水面の動きによって移動する船の効果を作成することができます。
-
オブジェクトの周囲にドメインを作成します。
-
ドメインをスケールして、衝突の波が伝搬して消えるのに十分なスペースを確保します。
-
FLIP Solver SOPノードで、 Waterline をオンにします。
-
Additional Velocity を
-6,0,0
などに変更して、初期Velocityと方向をパーティクルに追加します。
See also |