概要
Blender 3.6 LTSのGeometry NodesのSimulation Nodeを紹介します。
- Simulation Nodeとは
- 簡単な使い方
- 入力で指定する方法
- バウンドするボール
以降では、英語モードとします(Prefernces → Inteface → Translation → Language → English)。
下記も参考にしてみてください。
Simulation Nodeとは
Simulation Nodeを使うと、1つ前のフレームのジオメトリーを元に、新しいジオメトリーを作れます。
上図のSimulation Inputから1つ前のフレームのジオメトリーを受け取り、ジオメトリーを更新し、更新したジオメトリーをSimulation Outputに渡します。
つまり、フレームごとに、枠内の処理がジオメトリーに反映されます。
簡単な使い方
ボールが移動するだけのシミュレーションを作ってみましょう。
手順
- すべてのオブジェクトを削除する(
ax
、[Enter]
)。 - MeshのUV Sphereを追加する(
Amu
)。 - ワークスペースをGeometry Nodesにする。
- Sphereを選択したまま、Geometry Node EditorでNewを押す。
- Simulation Zoneを追加する(
Assim
、[Enter]
、適当な位置でクリック)。- 以降では、「
[Enter]
、適当な位置でクリック」を省略します。
- 以降では、「
- Transform Geometryを追加する(
Astra
)。- TranslationのXを0.1にする。
- 下図のように接続する。
スペースでアニメーションしてみましょう。ボールが移動していきます。
これは、毎フレームごとにXに0.1が加算されるからです。
TranslationのXを変更して速度が変わるのを確認してみてください。
Geometry Nodesを変更したら、[Shift + 左矢印]
で時刻を0にしてからスペースで開始してください。
入力で速度を指定する方法
速度を変更できるように、速度をシミュレーションの入力にしてみましょう。
Simulation Inputノードを選択し、ViewメニューのSidebar(N
)でサイドバーを出し、Nodeタブを選びます。Simulation Stateで「+
」を押し、追加された項目をダブルクリックし、名前をVelocityに変更します。また、Socket TypeをVectorにします。
下図のようにSimulationノードにVelocityが追加されます。

Simulation InputのVelocityのXを0.1にし、下図のように接続します。わかりやすいように接続を曲げていますが、そのまま接続して構いません。
アニメーションしてみて、動きが変わらないことを確認しましょう。
もし、Simulation InputのVelocityをSimulation OutputのVelocityに接続しないと、動かなくなります。これは、Simulation OutputのVelocityが0, 0, 0
のままで、その値が次のフレームのSimulation InputのVelocityになるからです。
バウンドするボール
Vector Math(Asvem
)、Compare(Ascmp
)、Mix(Asmx
)を追加します。
下図のように接続し、パラメータを設定します。
アニメーションすると、地面でバウンドするように動きます。
前回から次のようにVelocityを変化させているため、バウンドするように見えます。
- Zから0.05を引く(重力に相当)。
- Velocityの平均が-0.25以下なら、Velocityを初期値(
0.3, 0, 1
)に変更する。
以上