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

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

Force Radial POP が中心点から放射状・螺旋状にポイントへ力を加える様子を示す図

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

概要 📖 – ポイント群に放射状・軸方向・螺旋・平面の力を加える物理フォース

Force Radial POPは、中心点 (Position) と主軸 (Direction) を基準に、放射状・軸方向・螺旋・平面の 4 種類の力を合成して各ポイントに加える、POP パーティクル用の物理フォース演算ノードです。Radial / Axial / Spiral / Planar の 4 力をそれぞれ独立に有効化・強度設定でき、S Curve や Inverse Distance といった距離減衰モデルを組み合わせることで、爆発・渦・流れ場など多彩な力学現象を 1 ノードで構築できます。

主な用途 🎯

  • Radial 力で中心点からの放射状の押出・引込 (爆発の衝撃波、磁場吸引、ブラックホール表現)
  • Axial 力で軸方向に沿った推進力を生成 (ジェット噴射・風洞シミュレーション・流れ場)
  • Spiral 力で軸まわりの渦・螺旋運動を作る (竜巻・銀河・渦巻きパーティクル)
  • Planar 力で平面に向かう / 平面から離れる引力を表現 (水面への落下・床に吸着する重力)
  • Falloff (S Curve / Bias Power / Inverse Distance) で距離減衰を細かく制御し自然な力場分布を構築

データフロー 🔄

入力: Particle POP などポイント群

Force Radial POP (Position 中心 + Direction 軸 + Radial/Axial/Spiral/Planar 力の合成)

力ベクトルが各ポイントに適用された POP を出力

Tips

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

まる。
まる。

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


パラメータ解説 ⚙️

Force Page 📋

Specification POP .specpop 🔗

ポイントごとに独立した力源を定義する参照 POP:

  • Specification POP: specpop — 各ポイントが 1 個の独立した力源 (中心位置・方向・各種強度) を表す POP への参照。指定すると Position / Direction / Strength 等のパラメータは無視され、参照 POP の各ポイントの属性が代わりに使われる

Position (力の中心座標) .pos 📍

力場の中心となるワールド XYZ 座標:

  • Position X: posx — 力場中心のワールド X 座標
  • Position Y: posy — 力場中心のワールド Y 座標
  • Position Z: posz — 力場中心のワールド Z 座標

Direction (主軸ベクトル) .direction 🧭

Axial / Spiral / Planar 力の基準となる主軸ベクトル:

  • Direction X: directionx — 主軸ベクトルの X 成分
  • Direction Y: directiony — 主軸ベクトルの Y 成分
  • Direction Z: directionz — 主軸ベクトルの Z 成分

Radial Force (放射状の力) .radial 🌟

Position を中心とする放射状の力 (外向き押出 / 内向き引込):

  • Enable Radial: radial — 放射状 (Radial) の力を有効化するトグル
  • Radial Strength: radialstrength — 放射状の力の強度。正値で中心から外向きに押出 (爆発)、負値で中心へ引込 (重力源・ブラックホール)

Axial Force (軸方向の力) .axial 🚀

Direction 軸 + Axis Rotation で決まる方向への推進力:

  • Enable Axial: axial — 軸方向 (Axial) の力を有効化するトグル
  • Axis Rotation X: axialrx — Direction を基準とした軸方向の X 軸まわり 3D 回転 (度)
  • Axis Rotation Y: axialry — Direction を基準とした軸方向の Y 軸まわり 3D 回転 (度)
  • Axis Rotation Z: axialrz — Direction を基準とした軸方向の Z 軸まわり 3D 回転 (度)
  • Axial Strength: axialstrength — 軸方向に沿って加わる力の強度。Direction + Axis Rotation で決まる方向に各ポイントを押す

Spiral Force (螺旋・渦の力) .spiral 🌀

Direction 軸 + Spiral Rotation で決まる軸まわりの渦・螺旋力:

  • Enable Spiral: spiral — 螺旋状 (Spiral) の力を有効化するトグル
  • Spiral Rotation X: spiralrx — Direction を基準とした螺旋軸の X 軸まわり 3D 回転 (度)
  • Spiral Rotation Y: spiralry — Direction を基準とした螺旋軸の Y 軸まわり 3D 回転 (度)
  • Spiral Rotation Z: spiralrz — Direction を基準とした螺旋軸の Z 軸まわり 3D 回転 (度)
  • Spiral Strength: spiralstrength — 螺旋力の強度。軸まわりに各ポイントを回す力 (渦・竜巻・銀河の腕)

Planar Force (平面方向の力) .planar 🟦

Position と Direction が定義する平面方向への引力 / 斥力:

  • Enable Planar: planar — 平面方向 (Planar) の力を有効化するトグル
  • Planar Exponent: planarexponent — 平面からの距離に対する強度の指数。値が大きいほど離れたポイントに対する力が急峻に変化する
  • Planar Strength: planarstrength — 平面方向の力の係数。正値で平面に向かって引き寄せ (床への重力)、負値で平面から離れる方向に押出

Falloff (距離減衰モデル) .falloff 📉

中心からの距離に応じて力の強度を減衰させる関数の選択

項目 内部名 説明
S Curve .scurve S 字状の滑らかな減衰。中心付近で plateau、外周で滑らかにゼロへ向かう
Bias Power .power Bias パラメータで内側 / 外側のどちらに偏らせるかを制御する冪関数減衰
Inverse Distance .inversedistance 1 / distance^exponent 型の逆距離減衰 (重力・磁力の物理モデル)
None .none 減衰なし。Radius 内のすべてのポイントに均一な強度が適用される

Falloff Tuning (S Curve / Bias / Inverse Distance パラメータ) .fallofftuning 🎚️

Falloff モードを微調整するパラメータ群:

  • Steepness: falloffsteepness — S Curve モード時の S 字の急峻さ (大きいほど急峻に切り替わる)
  • Bias: falloffbias — S Curve モード時に減衰の中心を内側 / 外側どちらに偏らせるか
  • Exponent: falloffexponent — Inverse Distance モード時の距離の指数 (値が大きいほど近距離での力が急峻に強い)
  • Radius: falloffradius — 力場の作用半径。この距離を超えるポイントには力が加わらない (もしくはほぼゼロに減衰)
  • Plateau: falloffplateau — 中心から減衰が始まらない "平らな" 内側領域の半径
  • Limit Near-Range: fallofflimitrange — 中心に近すぎるポイントで力が発散するのを防ぐ近距離リミットのトグル (Inverse Distance で 1/0 発散を回避するのに有効)

Global Page 🌐

Global Force (全体方向の力) .globforce 💨

シーン全体に一様にかかる力 (重力・一定風など):

  • Global Force X: globforcex — シーン全体に一様に加わる X 方向の力
  • Global Force Y: globforcey — シーン全体に一様に加わる Y 方向の力 (一般的に重力)
  • Global Force Z: globforcez — シーン全体に一様に加わる Z 方向の力
  • Global Force Multiplier: globforcemult — Global Force ベクトルにかける倍率。プリセット力に対して全体強度を一括スケーリング

Wind Speed (全体風速) .windspeed 🌬️

シーン全体に一様な風速ベクトルと倍率:

  • Wind Speed X: windspeedx — シーン全体の X 方向風速
  • Wind Speed Y: windspeedy — シーン全体の Y 方向風速
  • Wind Speed Z: windspeedz — シーン全体の Z 方向風速
  • Wind Speed Multiplier: windspeedmult — Wind Speed ベクトルにかける倍率

Map Page 🗺️

Mapping (属性 → パラメータ写像) .map 🔁

別 POP の属性をポイント単位でフォースのパラメータに割り当てる写像ブロック:

  • Mapping: map — 属性 → パラメータ写像ブロックの開始。複数の Mapping を積み重ねて、属性ごとに異なるパラメータへ流せる
  • OP: map0op — 写像元の OP 参照。デフォルトの _in0 は入力 POP 自身を指す
  • Element: map0element — 写像元 OP のうち、写像する属性 (またはその成分。例: P.x)

Parameter (写像先) .map0parm 🎯

写像先となるこの POP のパラメータをメニューから選択

項目 内部名 説明
globforce (Global Force) .globforce Global Force ベクトル (XYZ 一括) に書き込む
globforcex .globforcex Global Force の X 成分のみに書き込む
globforcey .globforcey Global Force の Y 成分のみに書き込む
globforcez .globforcez Global Force の Z 成分のみに書き込む
globforcemult (Global Force Multiplier) .globforcemult Global Force 全体の倍率に書き込む
windspeed (Wind Speed) .windspeed Wind Speed ベクトル (XYZ 一括) に書き込む
windspeedx .windspeedx Wind Speed の X 成分のみに書き込む
windspeedy .windspeedy Wind Speed の Y 成分のみに書き込む
windspeedz .windspeedz Wind Speed の Z 成分のみに書き込む
windspeedmult (Wind Speed Multiplier) .windspeedmult Wind Speed 全体の倍率に書き込む

Combine Operation (合成方法) .map0combineop

属性値と既存パラメータ値の合成方法

項目 内部名 説明
Set .set パラメータ値を属性値で 上書き
Multiply .mult パラメータ値に属性値を 乗算
Add .add パラメータ値に属性値を 加算

Common Page 🔧

Bypass .bypass 🚫

POP の処理をスキップして入力をパススルーする設定:

  • オン: 最初の入力 (input1) をそのまま出力にパススルー、POP 内部の処理を無効化
  • 用途: デバッグ時に特定 POP の効果を一時的に外して比較する際に使用

Free Extra GPU Memory .freeextragpumem 🧠

蓄積した GPU メモリの解放:

  • Free Extra GPU Memory パルス: 出力ポイント数が増減を繰り返した際に確保されたままの GPU メモリを明示的に解放するパルスパラメータ
  • 用途: 大規模パーティクル系で出力サイズが大きく変動した後、未使用メモリを返却して VRAM を節約

Delete Input Attributes .delinputattrs 🗑️

出力属性の絞り込みパターン:

  • Delete Input Attributes パターン: 出力に残したい属性名のパターン (例: P N Cd) を指定。指定外の属性は破棄される
  • 用途: 下流で不要な属性を切り落として分岐ブランチを軽量化、メモリ・帯域を節約

実践アイデア 💡

Example 1: 爆発の衝撃波 (Radial 押出 + S Curve 減衰) 💥

Particle POP (debris) → Force Radial POP (radial=on, radialstrength=+200, falloff=scurve, falloffradius=5.0) → Feedback POP

爆発の中心位置に Position を合わせ、Radial 力+200 の強度で外向きに発生させる例。S Curve Falloff で中心は plateau、Radius 端で滑らかにゼロになる自然な衝撃波分布を作る。Particle POP で生成した debris ポイントを放射状に飛び散らせる構成。

  1. Particle POP で破片に相当するポイント群を生成 (位置・速度初期化)
  2. Force Radial POP を後段に接続し、pos を爆発の中心 (例: 0,0,0) に
  3. radial をオン、radialstrength = +200 で外向き押出
  4. falloff = S Curve、falloffradius = 5.0、falloffplateau = 1.0 で中心 1m は plateau
  5. 後段に Feedback POP を置き、力ベクトルを毎フレーム速度に積分して飛び散らせる

Example 2: 竜巻 / 渦 (Spiral 力で軸まわりの旋回) 🌀

Particle POP (連続発生) → Force Radial POP (spiral=on, direction=(0,1,0), spiralstrength=+50, planar=on, planarstrength=-10)

Direction を Y 軸 (0, 1, 0) に、Spiral 力を正値で有効化することで、Y 軸まわりの渦・螺旋運動を生成する。さらに Planar 力を負値で加えると Y=0 平面から離れる方向 (上方向) にもパーティクルが押し上げられ、上昇する竜巻状の流れを作れる。

  1. Particle POP で地表付近 (Y=0 周辺) にポイントを連続発生
  2. Force Radial POP の directiony = 1.0、ほか 0 で主軸を Y 軸に
  3. spiral をオン、spiralstrength = +50 で渦の強度を設定
  4. planar をオン、planarstrength = -10 で Y=0 平面から離れる上昇成分を追加
  5. falloff = Bias Power、falloffradius = 8.0 で渦の作用範囲を制限

Example 3: Radial引込で重力源・ブラックホール 🕳️

Particle POP → Force Radial POP (radial=on, radialstrength=-300, falloff=inversedistance, fallofflimitrange=on)

Radial Strength に大きな負値を入れて中心へ向かう引力場を作り、Inverse Distance 減衰で物理的に正しい 1/r^n 型の重力源を再現する例。Limit Near-Range をオンにして中心付近での力の発散を防ぐのがポイント。

  1. Particle POP で広域にポイントを生成 (球状分布など)
  2. Force Radial POP で radial オン、radialstrength = -300 (内向き引込)
  3. falloff = Inverse Distance、falloffexponent = 2.0 (物理的 1/r^2)
  4. fallofflimitrange をオンにして中心の力発散を回避
  5. falloffplateau = 0.5 で中心 0.5m はプラトー領域に

関連オペレータ 🔗

類似機能OP 🔍

  • TODO

組み合わせ推奨OP 🔄

  • Particle POP — パーティクル生成・寿命・初期速度を管理する POP。Force Radial で加える力の対象ポイントを供給

前処理・後処理POP 🎯


Info POP情報 📊

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

POP固有情報 ✨

  • num_verts: POP に含まれる頂点 (vertex) 数
  • num_points: POP に含まれるポイント数
  • num_prims: POP に含まれるプリミティブ数

汎用オペレータ情報 🔄

  • total_cooks: プロセス開始からのクック回数
  • cook_time: 最後のクック時間 (ミリ秒)
  • cook_frame: 最後にクックされたフレーム番号
  • cook_abs_frame: 最後にクックされた絶対フレーム番号 (アプリケーション起動からの累積)
  • cook_start_time: 最後のクック開始時刻 (ミリ秒)
  • cook_end_time: 最後のクック終了時刻 (ミリ秒)
  • cooked_this_frame: 現フレームでクックされたか (0 / 1)
  • warnings: 警告数
  • errors: エラー数
  • cpu_memory / gpu_memory: OP が確保している CPU / GPU メモリ使用量

POP 出力情報 📊

  • num_points: Force Radial POP が出力するポイント数 (通常は入力 POP と同数)
  • num_attributes: 出力 POP が保持する属性の総数 (force 属性などが付加される場合あり)

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

よくある問題と解決策 🔧

❌ Problem: Force Radial POP を接続してもポイントが動かない / 力が見えない
✅ Solution:

  • 後段に Feedback POP を置いて力を速度・位置に積分しているか確認 (Force 単体はベクトルを書くだけで位置を変えない)
  • radial / axial / spiral / planar のいずれかが少なくとも 1 つオンになっているか確認
  • falloffradius が小さすぎてポイントが作用半径外の可能性。falloffradius を大きくするか falloff = None で試す
  • 対象ポイント群を供給する Particle POP 等が実際にポイントを出力しているか Info DAT で num_points を確認

❌ Problem: 中心付近でパーティクルが極端な速度になって暴れる
✅ Solution:

  • falloff = Inverse Distance のとき 1/r^n が中心付近で発散するのが原因。fallofflimitrange をオンにする
  • falloffplateau0.5〜1.0 程度の値を入れて中心に “安全帯” を作る
  • radialstrength / axialstrength / spiralstrength の絶対値を一段下げて全体強度を抑制
  • Feedback POP 側で最大速度クランプや空気抵抗 (drag) を併用して発散を抑える

❌ Problem: Spiral 力をかけても螺旋にならず単純な軸方向の動きになる
✅ Solution:

  • direction ベクトルが (0,0,0) になっていないか確認。Spiral / Axial / Planar は Direction が基準軸
  • spiral がオン、spiralstrength非ゼロであるか確認
  • spiralrx / spiralry / spiralrz で軸の傾きを足し、Direction とのなす角がポイント分布に対して斜めになるよう調整
  • Radial 力が支配的すぎる可能性。radialstrength を小さくして Spiral 成分が相対的に強く見えるよう調整

❌ Problem: Map (属性 → パラメータ写像) で値が反映されない
✅ Solution:

  • map0op が正しい OP を指しているか確認。デフォルトの _in0 は入力 POP 自身
  • map0element に指定した属性名が写像元 OP に実在するか Info DAT で確認 (大文字小文字を含めて完全一致)
  • map0parm が書き込みたい先のパラメータと一致しているか (例: 風速 X だけに写像したいなら windspeedx)
  • map0combineopSet 以外 (Multiply / Add) のとき、元のパラメータ値とのスケール関係を確認

参考資料 📚

その他 🔗

公式リソース 📖

この記事は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をコピーしました