
概要 📖 – ポイント群に放射状・軸方向・螺旋・平面の力を加える物理フォース
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 を出力
初心者の方は、以下日本語書籍も手元にあると安心です。

実際の案件事例まで踏み込んで紹介されていて、効率よくスキルアップするなら必携の二冊です!
パラメータ解説 ⚙️
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 ポイントを放射状に飛び散らせる構成。
- Particle POP で破片に相当するポイント群を生成 (位置・速度初期化)
- Force Radial POP を後段に接続し、
posを爆発の中心 (例: 0,0,0) に radialをオン、radialstrength= +200 で外向き押出falloff= S Curve、falloffradius= 5.0、falloffplateau= 1.0 で中心 1m は plateau- 後段に 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 平面から離れる方向 (上方向) にもパーティクルが押し上げられ、上昇する竜巻状の流れを作れる。
- Particle POP で地表付近 (Y=0 周辺) にポイントを連続発生
- Force Radial POP の
directiony= 1.0、ほか 0 で主軸を Y 軸に spiralをオン、spiralstrength= +50 で渦の強度を設定planarをオン、planarstrength= -10 で Y=0 平面から離れる上昇成分を追加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 をオンにして中心付近での力の発散を防ぐのがポイント。
- Particle POP で広域にポイントを生成 (球状分布など)
- Force Radial POP で
radialオン、radialstrength= -300 (内向き引込) falloff= Inverse Distance、falloffexponent= 2.0 (物理的1/r^2)fallofflimitrangeをオンにして中心の力発散を回避falloffplateau= 0.5 で中心 0.5m はプラトー領域に
関連オペレータ 🔗
類似機能OP 🔍
- TODO
組み合わせ推奨OP 🔄
- Particle POP — パーティクル生成・寿命・初期速度を管理する POP。Force Radial で加える力の対象ポイントを供給
前処理・後処理POP 🎯
- 前処理: Particle 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をオンにするfalloffplateauに 0.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)map0combineopが Set 以外 (Multiply / Add) のとき、元のパラメータ値とのスケール関係を確認
参考資料 📚
その他 🔗
- TouchDesigner Wiki — POP 概要
- TouchDesigner Wiki — Category:POPs
- TouchDesigner Wiki ホーム
- TouchDesigner 公式 Forum
- Facebook — TouchDesigner Help Group

