道産のトウモロコシをダンボールいっぱいにいただいたので、かき揚げ祭り!
糖分と油の取りすぎて胃がヤバい。
道産のトウモロコシをダンボールいっぱいにいただいたので、かき揚げ祭り!
糖分と油の取りすぎて胃がヤバい。
Geometry NodesのSimulation Zoneの使い方ようやく使い慣れてきました。今日は前回よりも簡単にパーティクルが重力を受けて放物運動をするだけのサンプル。寿命で消滅もします。
速度や寿命などはSimularion Zone(SimZone)に入れる前にStore Named Attributeでポイントに書き込んでおくだけ、あとはSimZone内で取り出してアップデートするなり、計算に使うなりします。
SimZone内で大事な事はポイントの位置を変更するなら、
オフセット(m)=速度(m/s)x時間(s)
速度をアップデートするなら、
次フレームの速度(m/s)=現在の速度(m/s)+重力(m/s2)x時間(s)
と単位に気を付けて加工していけば結線に迷わないと思います。単位というより「次元」ですね。
衝突とかはRayCastやSample系のノードで何とかする必要があるようです。Simulation ZoneのDelta Timeはシーンのフレームレートに依存しますが、サブステップが無いのは精度を上げられ辛くて困りますね。
お墓参りして町家に一泊してダラダラして帰ってくるはずが、近づきたくない祇園祭をちょっと見に行くはめに…。暑かった。
Animation Nodesでできてた事をGeometryNodesでシリーズ、2本目。今回はPlexusのアレ。
「Blender Tutorial: Connect The Dots with Geometry Nodes, The “Plexus” Effect」(Youtube)を理解しつつまんまコピーです。内容的には、
空間分割をせずに全ての距離の比較をしているのでちょっと重い。
Animation Nodesは「Find Close Point」ノードひとつでサックリ作れましたが、この先同等のノードが追加されてくのでしょうか。開発がノードの粒度についてどういうポリシーを持ってるかによりますね。
Simulation Zone内で頂点の押し出しをすれば軌跡を描ける事が分かったのでテスト。
ExtrudeMeshノードで押し出した結果のコンポーネントへ「Top」というアトリビュートが「True」になった状態が与えられるので次フレームでもその「Top==True」なコンポーネントに対して押し出しをするって具合です。
通常のパーティクルシステムで使うForceFieldから力を取得できるといいんですが残念ながら出来ず、ノイズで動かしても面白くないので万有引力の式を使ってシミュレーションしてみました。重力の相互作用はありませんが。
以下Blender3.6用ファイルです。パーティクルの重さをランダムで指定している所で最小値にマイナスを入れれば斥力も働きます。クーロン力(りょく)ですね、式は万有引力と等価です。
時間を1フレーム目に戻して再生してください、たぶん途中のフレームのまま保存しちゃったかも。