まえがき
筆者は現在(2023-06-05)Blender3.5.1を使用していますが、6月下旬にはシュミレーションノードを備えたBlender3.6がローンチされるので、多くの人には不要な情報かと思います。
疑似パーティクルの作成
パーティクルにも様々あると思いますが、ここでは火の粉のようなパーティクルをポイントの移動で表現したいと思います。
![](https://storage.googleapis.com/hibiiro.page/2023/06/5046be09-c00afa5c5e463fea403fdd851e86499e.gif)
ポイントの複製
メッシュラインを使用し頂点を作成し要素コピーでポイントを複製します。
要素コピーの使用方法はこちらで解説しています。
複製したポイントをひとまずランダム値でオフセットしておきます。
ポイントにインスタンスを作成し、インスタンスを接続すればパーティクルの素は完成です。
![](https://storage.googleapis.com/hibiiro.page/2023/06/7377cfb0-image.png)
![](https://storage.googleapis.com/hibiiro.page/2023/06/95bdcff6-image.png)
ポイントの移動
それでは、まず先ほどのランダム値を取り除いて、オフセットにインデックスを加算しフレームで動かします。
![](https://storage.googleapis.com/hibiiro.page/2023/06/1423043b-blendergeo20.gif)
![](https://storage.googleapis.com/hibiiro.page/2023/06/b3d95a27-image.png)
加算でオフセットをZ方向に移動させているので、加算される値はフレーム(を除算した)数分だけ増えて行きますので、火の粉には見えません。
では、加算される値をどうすれば良いでしょう。
発生と消滅を数値的に表現出来れば可能なのではないでしょうか。
そこで数式の小数部を使用します。
小数部は入力の小数部分を出力するので、入力の値が増えても0~1(限りなく1に近い)を繰り返し出力します。
![](https://storage.googleapis.com/hibiiro.page/2023/06/dca1ced1-4bc91f47410ad20246ec472ecbbf60c1.gif)
![](https://storage.googleapis.com/hibiiro.page/2023/06/00337c41-image.png)
0~1を繰り返しオフセットに入力することで少し火の粉に近付きました。
入力の値のままだと高さが低くなるので乗算で高さを与え、ポイント毎の幅をインデックスに乗算することで調整します。
Z方向への移動は火の粉っぽくなって来たので、X,Y方向もオフセットで移動させます。
XとY方向もフレーム数分移動されると困るので、Z方向と同じく小数部で範囲を制限して加算で移動させます。
また、一定方向にのみ移動しても面白くないのでランダム値を乗算します。
![](https://storage.googleapis.com/hibiiro.page/2023/06/27507234-73513bc50fa4ec825a4a3ce63bbcb85f.gif)
![](https://storage.googleapis.com/hibiiro.page/2023/06/8382d093-image.png)
これで疑似パーティクルの作成は完了です。
数値を弄ったりマテリアルを設定するなど後は自由に設定してみてください。
おまけ
パーティクルを1か所からではなく様々な位置から発生させるには、X,Y方向にランダム値だけを入力します。
![](https://storage.googleapis.com/hibiiro.page/2023/06/bf80de5a-8a6a24b92bf7310fd18d045a724b7c7b.gif)
Z方向にサインを入力することで上昇後に落下するような表現も可能です。
![](https://storage.googleapis.com/hibiiro.page/2023/06/4b246014-6035c103b384ef987c8d3945f12d4127.gif)
サインを使用する事で波形が得られるので、波打たせるような事も可能です。
筆者はあまり試していませんが他にも楽しい組み合わせは多々あるかと思います。
コメント