« C4D ThinkingParticles パーティクルをポリゴンに衝突させて、ポリゴンを簡易的に凹ませる… | トップページ | C4D ThinkingParticles 壁の表層をパーティクルで粉砕する。 »

C4D ThinkingParticles パーティクルの速度ベクトル…

前回の記事
「C4D ThinkingParticles パーティクルを粉砕させる… PFragmentではなく…02」
http://villager-and-c4d.cocolog-nifty.com/blog/2009/11/c4d-thinking-20.html
で「 簡易ランダム拡散ベクトル」をXGroupで作りましたが、ThinkingParticlesには、この様なXGroupを作成しなくても、方向、速さ、それぞれのランダムな範囲を入力するとパーティクルに速度ベクトルを適用するノードがあります。

それは、「PVelocity」ノードです。
これを使えば、自力でベクトル計算をしなくても、方向性を持たせたランダムベクトルをパーティクルに適用できます。

「簡易ランダム拡散ベクトル」XGroupは、知識として記憶の片隅にでも…
勿論、ThinkingParticles以外でも使えますので。

「PSetData」ノードの速度はベクトルで、方向と速度(ベクトル長)が1つで表されています。

Pvelocity_01

「PVelocity」ノードの方は、速度と方向は別々に入力します。ベクトルの長さは関係なく、正規ベクトルとの区別はありません。

Pvelocity_02

方向性のある拡散したベクトルを適用する場合に、「ランダム」ノードを使う必要がありませんし…
パーティクルから「PGetData」で「ランダムシード」を取得する必要がありません。

「PVelocity_02.ZIP」

Pvelocity_05
自力でベクトルを求める場合…「PGetData」でランダムシードを取得してから…

Pvelocity_06
「PVelocity」の場合は、ランダムシードは必要ありません。

Pvelocity_07
上の2つの結果です。

「PVelocity」ノードで「方向の範囲」で10°を設定すると下のようになります。
±10°の範囲でランダムな方向に移動します。

Pvelocity_08

Pvelocity_04

「PVelocity.ZIP」

|

« C4D ThinkingParticles パーティクルをポリゴンに衝突させて、ポリゴンを簡易的に凹ませる… | トップページ | C4D ThinkingParticles 壁の表層をパーティクルで粉砕する。 »