[Blender 2.8] パーティクルでリアルな動きをシミュレーションする、『ニュートン力学』タイプの物理演算の機能と使い方のご紹介
今回の記事は、Blenderでの『パーティクルシステム』の[ニュートン力学(Newtonian)]というタイプの[物理演算]についてです。
また、『パーティクル』の基本的な事や基本操作、どんな機能があるのかをざっくりとまとめたページもありますので、そもそもの『パーティクル』についてという基本的な所を知りたい方には、下記記事から御覧になることをおススメします。
※2020年6月30日 加筆修正を行いました。
※2020年7月19日 加筆修正を行いました。
目次
[ニュートン力学(Newtonian)]
パーティクルを古典力学(ニュートン力学)に則って動かします。
パーティクルは指定された初期速度と角速度でその寿命を開始し、外部的なフォースに従って移動します。選択した特定の[計算精度]のタイプに応じて、環境と力に対する応答の計算が異なります。
[力(Forces)]
[ブラウン運動(Brownian)]
ブラウン運動の量を指定します。つまり、ここではパーティクルの小さいふらつきの移動量を指定しています。
ブラウン運動は、ブラウンノイズフィールドに基づいて、パーティクルにランダムな運動を追加します。これは、ランダムで小さな風力をシミュレートするのに適しています。
[ドラッグ(Drag)]
空気抵抗の量。
速度とサイズに関連して、粒子の速度を低下させる力(空気抵抗または水の抵抗をシミュレーションするのに役立ちます)。
↓のGIFで、特に跳ね返った時の高さで違いが顕著に見られるかと思います。
[減速(Damp)]
パーティクルの減速量を指定します(減速、摩擦、減衰の量でもあります)。
[衝突(Deflection)]
[衝突にサイズを反映(Size Deflect)]
衝突判定にパーティクルのサイズを使用します。
例えば[レンダー]>[拡大縮小]の値を”1″に設定したとします。その状態でこの項目を有効にすると、衝突判定に使われる範囲がサイズ分広くなるようです。
[接触時に消滅(Die on Hit)]
パーティクルがデフレクターオブジェクト(つまり、コリジョンオブジェクト)にあたった時にパーティクルを消滅させます。
deflector
名詞
流れ(水、空気、煙など)をそらせることを意図した装置
a device intended to turn aside the flow of something (water or air or smoke etc).
引用元: deflectorの意味 – 英ナビ!辞書 英和辞典
コリジョンオブジェクト等との接触時に、パーティクルを跳ね返らせたりせず、[寿命]が来ていなくても、その瞬間に消失させる事が出来るようです。
[コレクションの衝突設定(Collision Collection)]
これが設定されている場合、パーティクルは設定されたコレクションのオブジェクトとのみ衝突するように制限します。
※衝突するオブジェクトには、当然の事ではありますが『コリジョン』を付与しておく必要があります。
[計算精度(Integration)]
インテグレーター(積分器)は、パーティクルの動きを計算するために利用できる数学的な方法のセットです。次のガイドラインはアニメーターが目指す動作に従って、適切なインテグレーターを選択するのに役立ちます。
[計算精度(Integration)]
物理演算に使用するアルゴリズム。
- [オイラー(Euler)] …最も単純な積分器。非常に高速ですが、計算の精度も低くなります。ダンピングを使用しない場合、パーティクルは時間の経過とともにますます多くのエネルギーを得ます。例えば弾むパーティクルは、毎回高く跳ね返ります。減衰がなくても、時間の経過とともにエネルギーが減少します。このインテグレーターは、短いシミュレーションや、減衰よりも高速で正確な計算が重要なシミュレーションに使用します。
- [ベルレ(Verlet)] …非常に高速で安定したインテグレーター。エネルギーは時間と共に節約され、数値の損失はほとんどありません。
- [中間(Midpoint)] …「2次のルンゲ=クッタ法」とも呼ばれます。オイラーよりも低速ですが、遥かに安定しています。加速度が一定の場合(例えば、抗力がない場合)、エネルギーを節約します。跳ねるパーティクルの例では、パーティクルはたまに開始した時よりも高く跳ね返る可能性がありますが、こう言った事はほとんどありません。このインテグレーターは、ほとんどの場合に使用できる一般的に優れたインテグレーターです。
- [RK4] …「4次のルンゲ=クッタ法」(または「古典的ルンゲ=クッタ法」)の略称。[中間]と似ていますが、速度が遅く、ほとんどの場合、より正確な結果を得られます。加速度が一定でなくても、エネルギーを節約できます。中点が十分に正確でないことが判明した複雑なシミュレーションでのみ必要となるでしょう。
[タイムステップ(Timestep)]
各フレーム中に経過するシミュレーション時間(フレーム毎秒)。
[サブフレーム(Subframes)]
フレーム当たりのシミュレーションステップ数。
dt = [タイムステップ] / ([サブフレーム] + 1)
シミュレーションの安定性を改善し、パーティクルの精度を向上するためにシミュレートするサブフレーム。より早く移動するパーティクルには、より高い値を使用します。
例えば、[タイムステップ: 0.50]の場合に、[サブフレーム]を”0″と”1000″の場合で比較してみます。”0″の場合は正確に計算されずに下の当たりにパーティクルが留まってしまっているのがお分かりになるでしょうか?
参考にさせて頂いたサイト・ページ一覧
- Particles System — Blender Manual
- Blender Particle Tutorial [Cycles] – YouTube
- deflectorの意味 – 英ナビ!辞書 英和辞典
- ルンゲ=クッタ法 – Wikipedia
- How to Morph Particles into Shapes in Blender – YouTube