Force SOP 完全ガイド | 使い方・パラメータ解説【TouchDesigner】

※当サイトにはプロモーションリンクが含まれます。

Force SOP の粒子シミュレーション用力場機能を示す図

記事更新の通知はXでアナウンス٩(๑❛ᴗ❛๑)
@maru6o6をフォロー

概要 📖 – メタボールに力場を付与

Force SOPは、Metaball SOP に放射・軸方向・渦巻き・スパイラルの 4 種類の力属性を定義し、Particle SOP の粒子シミュレーションを駆動する力場ソースです。メタボール領域の値が大きい中心ほど強い力が働き、4 種類の力を組み合わせることで重力・旋回・吸引・拡散など多彩な粒子運動を 1 ノードで設計できます。

主な用途 🎯

  • パーティクルシステムへの力場印加(Metaball + Particle SOP 構成で粒子に外力を与える基幹役)
  • 放射状フォースによる粒子の収束/発散制御(中心への引力・反発を直感的に設計)
  • 軸方向への一定加速度の付与(重力・風など継続的な方向性運動の表現)
  • 渦巻きフォースによる旋回運動の演出(竜巻・銀河・水流の表現)
  • スパイラル力による軸への引き寄せ/反発(粒子のチューブ状束ね・拡散の制御)

データフロー 🔄

入力: Metaball SOP(力場の領域を定義する場)

Force SOP(放射・軸方向・渦巻き・スパイラルの 4 種の力属性を合成)

出力: 力情報を持つメタボール

Particle SOP の Force 入力へ接続して粒子を駆動

Tips

初心者の方は、以下日本語書籍も手元にあると安心です。

まる。
まる。

実際の案件事例まで踏み込んで紹介されていて、効率よくスキルアップするなら必携の二冊です!


パラメータ解説 ⚙️

フォース設定 📋

放射状フォース .radial 🎯

メタボール中心からの放射方向に働く力。中心への引力 (吸引) と反発 (拡散) を切り替えて、粒子の集合・離散運動を作る。

Radial Force .doradial
Radial Force (放射状フォース有効化) — オンにするとメタボール中心からの放射方向の力を発生させます。
– 力の符号 (正/負) によって粒子は中心に引き寄せられたり遠ざかったりします。

Force .radial 💪
Force (放射力の強さ) — Radial Force がオンのとき、放射方向の力の大きさを制御します。
– 正の値は中心への引力 (吸引)、負の値は中心からの反発力 (拡散) として作用します。

方向性フォース .directional 🧭

Direction ベクトルで決まる軸に沿った 3 種の力 (軸方向・渦巻き・スパイラル)。Directional Force をオンにすると以下のパラメータが有効化される。

Directional Force .doaxis
Directional Force (方向性フォース有効化) — オンにすると以下の方向性に関する全パラメータ (Direction / Axial Force / Vortex Force / Spiral Force) が有効になります。
– オフのままだとどれだけ数値を設定しても効きません。

Direction .dir 📐
Direction (方向ベクトル) — Directional Force がオンのとき、軸方向・渦巻き・スパイラル力が向く 3 次元ベクトルの主軸を定義します。
X / Y / Z の 3 成分で構成され、ベクトルがゼロ (0,0,0) だと方向性フォースが効かないので注意。

  • X (dirx) — 主軸の X 成分
  • Y (diry) — 主軸の Y 成分
  • Z (dirz) — 主軸の Z 成分

Axial Force .axial ➡️
Axial Force (軸方向力) — Directional Force がオンのとき、主軸方向に沿った力の強さを制御します。
– 正の値で粒子は主軸の正方向へ移動し、重力風・上昇気流などの継続的な方向運動を作れます。

Vortex Force .vortex 🌀
Vortex Force (渦巻き力) — 主軸まわりに粒子を旋回させる力。正の値で時計回り、負の値で反時計回りの遠心力 (centrifugal force) を与えます。
– 竜巻・銀河・水流の渦などの旋回運動を表現するときに使います。

Spiral Force .spiral 🌪️
Spiral Force (スパイラル力) — 主軸に垂直な接線方向 (tangential force) の引力/反発力。
– 0 より大きい値で粒子は主軸方向へ引き寄せられ、0 より小さい値で主軸から垂直方向に押し出されます。Axial Force と組み合わせるとチューブ状の螺旋運動になります。


実践アイデア 💡

Example 1: 中心への引力で集める 🎯

Sphere SOP → Metaball SOP → Force SOP (Radial Force ON, Force=-1) → Particle SOP

メタボール中心への引力を Force SOP の Radial Force で作り、Particle SOP の粒子を中心に向かって落下させる基本構成。負の Force 値で吸引力として振る舞います。

  1. Sphere SOP を配置してメタボール領域の元となる球を作る
  2. Metaball SOP に Sphere SOP を入力し、力場の領域を定義する
  3. Force SOP を Metaball SOP の出力に接続し、Radial Force をオン、Force パラメータを負の値 (-1 程度) に設定
  4. Particle SOP の Force 入力に Force SOP の出力を接続して粒子を発生させる

Example 2: 渦巻きで粒子を旋回 🌀

Sphere SOP → Metaball SOP → Force SOP (Vortex + Axial) → Particle SOP

Directional Force をオンにして Vortex Force で旋回、Axial Force で上昇方向の力を合成し、らせん状に上昇する粒子運動を作る用途。竜巻・煙の渦などに使えます。

  1. Metaball SOP を用意し、Force SOP の Directional Force をオンにする
  2. Direction を (0, 1, 0) に設定して Y 軸を主軸に決める
  3. Vortex Force を正の値 (例 2.0) に設定して時計回りの旋回を加える
  4. Axial Force を正の値 (例 0.5) に設定して上昇方向の力を合成する

Example 3: 重力風で粒子を落下 💨

Metaball SOP → Force SOP (Directional, Axial=-1) → Particle SOP

Directional Force + 負の Axial Force だけを使い、メタボール領域内の粒子に下方向への一定加速度を与えて重力風の落下運動を演出するシンプル構成。

  • Direction を (0, 1, 0) に設定 (Y 軸を主軸に)
  • Axial Force を負の値 (例 -1.0) に設定して下方向の力を発生させる
  • Radial Force / Vortex Force / Spiral Force はオフまたは 0 にして純粋な落下にする

関連オペレータ 🔗

類似機能OP 🔍

  • Force Radial POP — 新 POP システムの放射状力場版。Force SOP の Radial Force 機能に相当する役割を担う

組み合わせ推奨OP 🔄

  • Metaball SOP — 力場の領域 (場の濃度マップ) を定義する必須コンビ
  • Particle SOP — Force SOP が作った力場を消費して粒子の運動を計算する受け手
  • Sphere SOP — Metaball SOP の入力ジオメトリとして球状の場を作る定番素材
  • Noise SOP — メタボール位置や Direction にノイズを与えて有機的な乱流を演出
  • Transform SOP — メタボールの位置・スケールを動かして力場の中心を時間変化させる

前処理・後処理SOP 🎯


Info CHOP情報 📊

Force SOP は Info CHOP / Info DAT による詳細情報取得に対応しています。

ジオメトリ統計 📐

  • num_points: この SOP に含まれるポイント数
  • num_prims: この SOP に含まれるプリミティブ数
  • num_particles: この SOP に含まれるパーティクル数

GPU 転送タイミング 🎮

  • last_vbo_update_time: 別スレッドで SOP の CPU データを GPU 上のジオメトリデータに更新するのにかかった時間 (フレーム時間外)
  • last_meta_vbo_update_time: 別スレッドで metaball や NURBS のようなメタサーフェスジオメトリデータを GPU に更新するのにかかった時間 (フレーム時間外)

汎用オペレータ情報 🔄

  • total_cooks: プロセス開始以降にこのオペレータがクックされた合計回数
  • cook_time: 直近のクック所要時間 (ミリ秒)
  • cook_frame: このオペレータが最後にクックされたフレーム番号
  • warnings: このオペレータの警告数
  • errors: このオペレータのエラー数

SOP 共通情報 📐

  • num_points: 出力ジオメトリの点数 (メタボール 1 個につき 1 点)
  • num_prims: プリミティブ数 (メタボールの個数)
  • num_vertices: 頂点数 (メタボール SOP 経由で渡される頂点総数)
  • cook_time: クック処理にかかった時間 (ms)

トラブルシューティング ⚠️

よくある問題と解決策 🔧

❌ Problem: 粒子がまったく動かない/反応しない
✅ Solution:

  • Particle SOP の Force 入力にこの Force SOP の出力が接続されているか確認
  • Radial Force または Directional Force のどちらかがオンになっているか確認 (両方オフだと力が発生しない)
  • Force / Axial Force / Vortex Force / Spiral Force の数値がすべて 0 になっていないか確認

❌ Problem: 渦巻き・軸方向の力が効かない
✅ Solution:

  • Directional Force がオンになっているか確認 (このトグルがオフだと方向性の 3 種の力すべてが無効)
  • Direction ベクトルが (0,0,0) になっていないか確認 — ゼロ方向ベクトルでは方向性フォースは効きません
  • Metaball SOP の Weight が極端に小さいと中心以外で力が消えるので、メタボールの密度設定も合わせて確認

❌ Problem: 粒子の動きが激しすぎる/不安定
✅ Solution:

  • Force パラメータの数値を 1/10 ほどに小さくして段階的に調整
  • Particle SOP 側の Friction (摩擦) と Mass (質量) を上げて減衰を強める
  • Vortex Force と Spiral Force を同時に大きくしすぎると発散しやすい — どちらか片方を弱める

❌ Problem: 力場の影響範囲が想定と違う
✅ Solution:

  • Metaball SOP の半径・Weight でメタボール領域を再調整
  • 複数のメタボールを使う場合は領域が重なる位置の合成値が高くなることを意識する
  • Display モードでメタボールのアイソサーフェスを可視化し、力が及ぶ範囲を確認

参考資料 📚

その他 🔗

公式リソース 📖

この記事はLLMと共に内容を執筆、更新しています。
最新バージョンとの項目差異など、情報の不一致を見つけた心優しい方はXもしくはInsta、メールなどよりサイト管理者までご連絡ください😎


まる。

お仕事のご依頼はDM又はメールにて。
━━━━━━━━━━━━━━━━━
Python/Touchdesigner/M5Stackをこよなく愛すフルスタックエンジニア。
専門は生理心理学、趣味はヨガやサウナ、EMS電気風呂などヘルスケア全般。
脳波や筋電、心拍を中心とした生体情報のセンシング&インタラクティブアートづくりがライフワーク。

普段はワントゥーテンという会社で空間演出エンジニアをしています。
リファラル採用お繋ぎできますので、我こそはという尖った方は経歴と希望職種添えてDMください(エンジニア以外、営業職等もOK)。
ご飯行きましょう。

↓日常垢
Instagram:@malmal0v0

まる。をフォローする
その他の記事はこちら
Math Combine POP 完全ガイド | 使い方・パラメータ解説【TouchDesigner】
ZED Select TOP 完全ガイド | 使い方・パラメータ解説【TouchDesigner】
ZED POP 完全ガイド | 使い方・パラメータ解説【TouchDesigner】
Window COMP 完全ガイド | 使い方・パラメータ解説【TouchDesigner】
Widget COMP 完全ガイド | 使い方・パラメータ解説【TouchDesigner】

タイトルとURLをコピーしました